FAQ: What are the best practices for running ArcMap in a Citrix XenApp environment?


What are the best practices for running ArcMap in a Citrix XenApp environment?


This knowledgebase article provides support information, known limitations, and high-level best practices related to deploying ArcMap in a Citrix XenApp environment. It is not meant to be an implementation guide, but rather to provide essential information related to key aspects of deploying ArcMap with Citrix XenApp. Additional consultative support for designing, deploying, and troubleshooting ArcMap within a Citrix environment is available from Esri Consulting Services.

This document is specific to Citrix XenApp and does not include information about other related Citrix technologies such as XenDesktop and XenServer. Furthermore, this document does not include best practices for ArcGIS Pro or ArcGIS Runtime.
Certified XenApp configurations

Since the mid to late 1990’s Esri customers have been deploying ArcGIS products on shared-hosted configurations. Citrix XenApp, by far, has been the predominant shared-hosted solution. ArcMap, for the most part, is abstracted from the XenApp solution and executes on the underlying operating system in a similar manner as running it natively on the supported operating system. The key difference is the use of a shared operating system environment and a thin-client protocol, namely the ICA protocol, to deliver the application experience to the end user’s device. To date, there has not been a known configuration where a given version of ArcMap does not run on a given version of Citrix XenApp. However, to increase confidence with the use of XenApp, for several years now Esri has been certifying ArcGIS with XenApp. Like other software vendors, Citrix is delivering incremental functionality at an increased pace and is releasing new versions of XenApp multiple times per year. Because of this, it is not practical for Esri to certify every possible combination and it will be necessary to balance the need for the latest functionality with the confidence level associated with using a non-certified configuration. It is important to consider that non-certification of an environment does not necessarily mean it is not supported. Refer to the Supported Environment Policy for additional information.

Details regarding ArcMap supported environments are available on the associated ArcGIS Desktop System Requirements pages.
User Profiles

A typical Citrix XenApp deployment with ArcGIS leverages roaming profiles, allowing for a similar user experience regardless of which server the user is assigned. Esri does not require anything beyond the standard best practices published by Microsoft and Citrix for managing profiles. However, there are cases where some changes in profile management are desired. The following cases are examples of profile-related modifications.

  • Changing the Cache Path

    The default cache path (C:\Users\<user>\AppData\Local\ESRI\Local Caches) is in the user’s profile which may not be desirable for profiles due to size concerns. The Cache Path can be changed by setting a new string value “Cache Path” at HKCU\Software\ESRI\Desktop10.x\Settings. If the settings key does not exist, it can be added. This key and string value can be created or viewed by opening ArcMap and navigating to Customize > ArcMap Options > Display Cache. From there, the Cache path can be modified. For example, the cache path can be set to a redirected portion of the profile so that it is not copied in or out constantly, or to avoid bloating the profile.
    Managing your local display cache

  • Redirect Default Home Folder and Geodatabase Location

    With some deployments it is desired to change the default home folder and geodatabase location from the user’s profile to a common location on a file share.
    Support Services Blog - Want to redirect your Default Geodatabase?
    How To: Set the default Home folder and geodatabase location for new map documents

Supporting multiple license levels

When ArcGIS Desktop is installed, a license level is selected and this license type is utilized for all users running ArcGIS on the server. To support multiple license levels on the same XenApp server, the ESRI_SOFTWARE_CLASS environment variable can be used in conjunction with a published batch file to launch ArcGIS.

ArcGIS Online access

Since ArcGIS Desktop is running on a XenApp server in the data center, network access is often more secure, and port 80 may be blocked outbound to the internet. Port 80 is required for ArcGIS Online access and other web services, so it is important to ensure port 80 is not blocked for XenApp servers.

Avoid using client drive mapping and "special" folder redirection

Functionality, such as client drive mapping and special folder redirection, should be managed carefully to avoid remote users from unknowingly pulling massive data sets from Citrix clients to Citrix servers for processing. This also prevents problems with authored map documents containing unusable data references, such as \\c$\.

"Special folder redirection" is not the same as "folder redirection," which is a recommended practice.
Use of server virtualization

Many IT organizations desire to virtualize all servers, including XenApp servers. Historically, virtualizing XenApp with ArcGIS proved to be challenging with many deployments. However, as server and virtualization technologies have evolved, the risk associated with virtualizing XenApp servers with ArcGIS has significantly decreased. To mitigate any remaining risk, it is recommended that adequate testing be performed to ensure that expected performance goals can be met by the virtualized infrastructure, particularly when complex applications are planned.

Use of application virtualization

Citrix XenApp provides two methods for delivering applications: session virtualization (also known as hosted shared sessions), and application virtualization (also known as application streaming). Session virtualization represents the traditional method where a remote session is established and the application is executed remotely from a server. In this configuration, the application is installed onto the server in a similar manner as with a typical desktop. Application virtualization focuses on virtualizing the application itself. The application is 'sequenced' into a containerized format that prepares it for streaming to the client. The application, along with supporting registry information and other components, is essentially wrapped into a customized file structure and served from a file server on demand. The application can be accessed by a XenApp server for delivery via a remote session or directly from a desktop client. 

Deploying ArcGIS Desktop via application virtualization can occasionally be problematic, in terms of performance. Poor performance is often exhibited when performing tasks such as starting ArcGIS or loading new components, where it may take minutes to start ArcGIS. The slower performance may be related to the large ArcGIS application footprint, the large number of registry entries, and other factors that result in significant overhead related to executing the application. Therefore, using application virtualization with ArcGIS Desktop should be avoided.

3D computing and GPU usage

One of the original goals of thin computing was to minimize the impact to the network. To achieve this goal, graphic-intensive and 3D displays were not considered practical in terms of application delivery via XenApp. This has traditionally limited the use of 3D applications within a XenApp environment. However, 3D support has evolved and current XenApp editions (XenApp 6.5 with the OpenGL GPU Sharing Feature Add-on or newer versions) now support server-side GPU acceleration, including support for OpenGL applications (classic Esri 3D applications are OpenGL based). It has been shown that GPUs cannot be used to accelerate ArcMap’s GDI-based display, therefore no advantage is gained by deploying GPUs in XenApp servers for ArcGIS Desktop. For applications such as ArcGlobe, ArcScene, and ArcGIS Explorer, GPUs can be leveraged to accelerate display performance. Network traffic must be considered, as well, since it increases significantly with these types of displays. Therefore, it is recommended that these applications be tested to ensure expected performance objectives can be achieved.