ArcGIS on Citrix

=Requirements for ArcGIS Desktop Support on Citrix=

Though the following compiled list of settings is based on accumulated knowledge of past incidents that should be used with ArcGIS Desktop to be considered "supportable" in a Citrix environment. Organizations may opt to ignore these guidelines however Esri Support may be forced to prescribe one or more of the guidelines below to resolve cases involving Citrix deployments.


 * ArcGIS Desktop 10.x (or Higher)
 * ArcGIS Desktop 10.x is the first version of ArcGIS that is officially supported on Citrix environments.
 * Disable Folder Redirection at the Terminal Server Level
 * This setting prevents clients from pulling massive data sets from Citrix Client to Citrix Server for processing. This also prevents problems with authored map documents containing unusable data references like: "\\c$\".  This setting also encourages the best practice of working with centralized, managed file shares instead of storing data sets on un-managed local file systems across the organization.
 * Allow ActiveX at the Local Intranet Zone (Group Policy)
 * This is a hard-line requirement for ArcGIS Desktop to function correctly. Several dockable windows, features, and other UI components of ArcGIS Desktop leverage ActiveX and will not display correctly if this is disallowed.
 * Allow ICA (Citrix) Access to Users
 * This is a basic requirement for Citrix clients to function, and is also necessary for ArcGIS Desktop to function properly within a Citrix environment.
 * Allow only 16-bit rendering at the Terminal Server Level
 * This setting is required to be considered "supportable" by Esri primarily because rendering levels beyond 16-bit have proven unreliable within Citrix environments.
 * Local Printer Mapping via IP Address on Citrix Server
 * This setting helps to mitigate complications with locally mapped printers on the Citrix server.
 * Configure the published application to delay launching ArcMap until after printer drivers have loaded
 * This setting will mitigate issues with printing in ArcMap; specifically when the printed document prints on the wrong printer.
 * Turn off the dockable window shadows in ArcGIS Desktop 10.0
 * http://support.esri.com/en/knowledgebase/techarticles/detail/38474
 * ArcGIS Desktop must be "installed" on the XenApp server (instead of "streamed" to XenApp)
 * ArcGIS Desktop is designed and tested as an installed product; we cannot guarantee the application will function properly unless the ArcGIS Desktop is installed and on the server.
 * XenApp hosted applications must be configured to run as "Hosted" applications (instead of Streamed to client)
 * ArcGIS Desktop is built and tested to run as a locally installed and run software package; we cannot guarantee the reliability of ArcGIS Desktop unless it is run this way.
 * Applications must not use "Citrix Memory Optimizations" such as shared DLLs
 * Shared DLLs across multiple sessions has been proven unstable with certain Microsoft security patches and ArcGIS Desktop products.

Best Practices with Citrix & ArcGIS
Support for Remote Desktop Services (RDS) and Citrix XenApp

Summary
This document provides support information, known limitations, and high-level best practices related to deploying ArcGIS Desktop in a Remote Desktop Services (RDS) / Citrix XenApp environment. It is not meant to be an implementation guide but provide essential information related to key aspects of deploying ArcGIS Desktop with Citrix XenApp. The scope includes Citrix XenApp only and does not include information on related Citrix technologies such as XenDesktop, XenClient, XenServer, etc. Further, it will not address details regarding the referenced technology as this information will soon be available on Esri’s Enterprise Resource Center: http://resources.arcgis.com/content/enterprisegis/10.0/about

Support Overview
Deploying ArcGIS Desktop with RDS and Citrix XenApp has been a popular solution with a steadily growing Esri user base. Traditionally, support for this environment was limited to standard desktop support within Esri Technical Support or through Esri Professional Services. In the Spring of 2011, Esri took this one step further and officially certified ArcGIS Desktop 10 within a Citrix XenApp 6 environment. Specific ArcGIS Desktop supported environments is available on the ArcGIS Desktop 10 System Requirements page: http://resources.arcgis.com/content/arcgisdesktop/10.0/arcgis-desktop-system-requirements

Key Best Practices
The following information represents key best practices in relation to utilizing ArcGIS Desktop with Citrix XenApp. It is not an exhaustive list but represents several fundamental best practices that are critical to the success of deploying ArcGIS in this environment.

Supported XenApp Version
The certification of XenApp 6 with ArcGIS 10 does not imply that this is the only working solution available. Operating with this combination will however ensure that Esri Tech Support has that configuration available for reproducing issues (i.e., they may or may not have a Presentation Server 4.5 configuration to utilize since it is not an officially supported configuration). In general, all editions of Citrix XenApp are known to “work” with ArcGIS Desktop. However, it is recommended that at least version 4.5 (Presentation Server) be used so that display and compression enhancements such as HDX 3D Progressive Display can be leveraged. In addition, it is recommended that the latest certified release be utilized so that the most current features of both XenApp and Windows 2008 R2 can be leveraged. At the time of this writing, the current XenApp release is 6.5 and no known issues exist with using it with ArcGIS Desktop 10.

Use of Server Virtualization
Virtualizing Citrix XenApp is a recent trend in a general sense as many of Citrix’ customers have successfully virtualized a variety of applications. To date, virtualizing XenApp with Esri ArcGIS Desktop has shown to be problematic in terms of performance and scalability while virtualizing ArcEngine based applications have shown some success. The lack of adequate performance may be related to the sheer size of the full ArcGIS Desktop application coupled with the overhead associated with server virtualization. Therefore, virtualizing XenApp servers should be approached with caution, particularly for industries with higher levels of performance requirements (e.g., utilities). Therefore, it is recommended that prudent proof of concept testing be undertaken before deciding to move forward with server virtualized XenApp servers running ArcGIS Desktop. Deploying ArcGIS on top of a virtualized server is not considered a best practice at this time.

Use of Application Virtualization
Citrix XenApp provides two methods for delivering applications, namely session virtualization and application virtualization. Session virtualization is the most common method where a remote session is established and the application executed remotely from a server. In this configuration, the application is installed onto the server in a similar manner as a typical desktop. Application virtualization focuses on virtualizing the application itself. The application is “sequenced” into a special format that prepares it for streaming to the client. The application along with supporting registry information and other components essentially are wrapped up 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. However, deploying ArcGIS Desktop as a virtualized application has shown to be troublesome in terms of performance. Poor performance is often exhibited when performing tasks such as starting applications where it can take minutes to start ArcGIS. The exact cause is unknown but believed to be due to the large application footprint which results in large amounts of overhead as the application works between the isolated virtualized application environment and the host operating system. Therefore, at this time, using application virtualization with ArcGIS Desktop is not considered a best practice.

Use of Imagery in Displays
Imagery is often used to provide a basemap reference with displays planned to be deployed via Citrix XenApp. Imagery is processed differently than vector displays within thin-client displays resulting in increased network usage for imagery based displays. Vector displays utilize what are known as GDI Primitives, or essentially draw commands, that are sent down to the client for local rendering. For example, drawing a blue circle on a red background does not require that all the blue and red colored pixels be sent down to the client. Instead, GDI commands are used to send rendering instructions to the client to paint a red background and then place a blue circle in a specific location. This results in minimal network impact thus the concept of “thin” computing. Images, however, cannot be processed using draw commands and therefore require that large amount of pixel information be sent down to the client for rendering resulting in a significant increase in network traffic. To assist with reducing traffic and improving performance, the Citrix HDX 3D Progressive Display policy can be utilized. This allows the administrator to include progressive compression (i.e., compress the display while in motion) along with control over normal “at rest” compression. Citrix provides best practices regarding how to best utilize these settings. It is recommended to use the HDX 3D Progressive Display policy when deploying imagery across WAN or Internet environments.

3D Computing
The original intent of remote computing was to keep the impact to the network as lean as possible. Graphic intensive and 3D displays were not the focus of application delivery via XenApp or VDI in general. Because of this, the technology was somewhat limited in terms of effectively delivering 3D graphics remotely.

That has changed with work by Nvidia to support shareable GPUs in virtualized environments and adoption of Nvidia GRID cards and drivers by VMWare and Citrix. Esri has extensively tested ArcGIS Desktop, including Pro and CityEngine in VMWare View and Citrix XenDesktop with great results. While the UX and VM/server density are managed by vGPU profiles it's easily possible to get a great UX from ArcGIS Pro with 2D and 3D data.

Currently Citrix XenApp is dependent on the underlying OS, normally Windows Server, to manage the DirectX or OpenGL calls of all the hosted sessions. At the moment Windows Server doesn't do that well.

Additional Reading for ArcGIS & Citrix
Citrix XenApp & Best Practices for ArcGIS

http://support.esri.com/en/knowledgebase/techarticles/detail/39490

Licensing ArcGIS Desktop on Citrix
Citrix functions by running multiple copies of the same process (ArcMap.exe) on the Citrix server. This presents a problem for those wanting to control the license type loaded with an ArcMap session (ArcView/Editor/Info) because the license selection is global for the entire server and not-user or process specific.

Further, since Concurrent Use licensing is the only supported licensing method for Citrix environments, instead of publishing (Citrix) ArcMap.exe within Citrix, a batch file must be created and published (Citrix) as follows:

ArcView.bat

Set Esri_SOFTWARE_CLASS=Viewer C:\Program Files\ArcGIS\bin\ArcMap.exe

ArcEditor.bat

Set Esri_SOFTWARE_CLASS=Editor C:\Program Files\ArcGIS\bin\ArcMap.exe

ArcInfo.bat

Set Esri_SOFTWARE_CLASS=Professional C:\Program Files\ArcGIS\bin\ArcMap.exe

Publishing Specific ArcGIS Desktop Map on Citrix
As above, you'd want to publish (Citrix) a batch file, with the following additional line:

ArcInfo.bat

Set Esri_SOFTWARE_CLASS=Professional C:\Program Files\ArcGIS\bin\ArcMap.exe \MyMap.mxd

=ArcPAD on Citrix=

NOT OFFICIALLY SUPPORTED

ArcPad has worked in this environment, but is also dependent on using ActiveSync and Virtual COM Port mapping and everything running on same Citrix box. I think this doc will explain it better than I can, http://support.citrix.com/article/CTX821115. I have also ‘borrowed’ from this presentation in the past.

= Citrix Servers for Testing =

Citrix Servers for Testing