Troubleshooting Application Streaming Issues

CITRIX KNOWLEDGE SHARE PAGE - CTX113304

Issues that occur when profiling applications for streaming
Creating a profile consists of running the application installation inside the profiler application wizard. Citrix recommends that you install the profiler application on a computer that matches the target computer’s operating system, language, and boot-drive letters. It is possible to have the profiler computer running an older operating system than the target computer; however, this might cause problems during the streaming process. It is possible to select multiple targets during the profiling process.

Errors that occur during the profiling process are often related to the specific application being profiled. Ensure that the latest profiler software and any updates are installed.

If an application fails during the profiling process, consider the following troubleshooting actions:

  1. There are certain kinds of applications that cannot run in an isolation environment and therefore cannot be streamed. These applications are described in the section called Known limitations for Application Streaming.
  2. Check the Event Log on the profiler computer. For example, if the application attempted to install a service, such an application is not supported by this feature and there would be errors written to the Event Log.
  3. While a package is being profiled, the files are kept in the \Temp directory located in \Documents and Settings\username\Local Settings\Temp\Citrix\ Packager. Check for an application error log or Dr Watson error log. The logs must be written to the \Program files folder in the \Temp directory. For example, \Documents and Settings\username\Local Settings\Temp\Citrix\ Packager \TGT_1\650240f3-4789-4b8a-b850-ae22c3d9ca3d\Device\C\Program Files\.
  4. Try to profile a very simple application like WinZip or Adobe Reader to ensure that the profiling process works.
  5. See CTX114663 - Application Streaming Delivery and Profiling Best Practices for more troubleshooting information on profiling.

Application-specific issues

For application specific issues it is best to understand the application and what it needs to do.

  1. Install the application locally to compare the registry keys, files, and folders that are created during a standard installation. Compare those with the entries that are created when the application is profiled.
  2. You should always ensure that the computer being used for profiling is a clean computer that does not have any applications installed or has the same applications and components as the target computer. For example, if the profiling computer already has certain components installed, the profiling process might not install those components into the profile. If the target computer does not have that component installed locally, the streaming process will fail.
  3. Profile the application on another computer and compare the Sandboxdata.xml files that are created on both computers. The data comparison could show that there is something installed on the profiler computer causing the problem.
    If the application requires a reboot, use the virtual reboot option in the profiling wizard. See CTX112638 -
    Explanation of the Virtual Reboot Feature in the Streaming Profiler for a detailed explanation of the Virtual Reboot feature.
  4. Verify that the application can be executed in the Run Application screen in the Profiler wizard. Some applications require that they be launched to complete the installation. Isolation environment rules specify how applications running in an isolation environment access system resources, such as files, registry entries, and named objects. The default rules for isolation environments are adequate for most environments. However, after profiling an application, you can create new rules and modify existing rules for application-specific issues.

Issues that occur when publishing a streamed application

Application publishing is done using the Access Management Console. Applications can be streamed to the client desktop or to the Presentation Server desktop. Where an application will be streamed is defined during Application Publishing process.



Image A

  1. Publishing a streamed application is similar to publishing an installed ICA application because they both use the same wizard and write to the IMA data store.
    If there are issues with application enumeration in the Application Publishing wizard, verify that the Icons.bin file was created in the profile package. This file is used to store the application icons that will be used during application publishing. The actual application icons can be seen in the Profiler in the properties of that application on the Applications tab. You can manually add the .exe file and its icon if it is not discovered automatically.
  2. Errors that occur during application publishing are often related to IMA, XML, or MFCOM. Verify that those services are working by publishing an already installed ICA application in the Access Management Console.

Failure to enumerate streamed applications on the client

  1. In the Access Management Console expand the Web Interface node and select the Program Neighborhood Agent or Web Interface site URL. Select Manage Application Types. Verify that the appropriate option is selected as follows (See Image B).
    • If streaming to the Presentation Server, select the Dual mode streaming option during the Web Interface or Program Neighborhood Agent site configuration.
    • If streaming to the client desktop, select either Dual mode streaming or the Streaming option during the Web Interface site or Program Neighborhood Agent site configuration. If the wrong option is selected, the appropriate application icons will fail to enumerate for the user.


Image B


  1. Verify that the user has access to the published application.
  2. Verify that the Citrix XML service and the IMA service are working.

Streaming the application

Once the application is profiled and published, it is ready for streaming. The streaming process is handled by the Streaming Client. The Streaming Client does not have a user interface and is only a service installed on a Windows computer called Citrix Streaming Service. After the application icon is enumerated by the Program Neighborhood Agent or the Web Client, the streaming process begins once the user clicks on the application icon. When streaming to the Presentation Server, the Streaming Client must be installed on the Presentation Server. When streaming to the client, the Streaming Client must be installed on the client computer. The Streaming Client is installed by default on the server running Citrix Presentation Server 4.5 or later. Only version 10.x and later of the Program Neighborhood Agent and Web Client are supported for application enumeration when streaming.

Note: The Program Neighborhood client is not supported with streaming.

  • Ensure that the latest Streaming Client is installed. The latest client is located at Citrix Downloads.
  • Verify that the Citrix Streaming Service is running and was started by the user account called Ctx_StreamingSvc. This user account has specific rights and permissions needed to run the Citrix Streaming service as explained in the section on User rights for the Citrix Streaming Service user account.

User rights for the Citrix Streaming Service user account

The account used to start the Citrix Streaming Service is called CTX_StreamingSvc. This account is a local user account and is part of the Users group only. On the computer with the Streaming Client installed, verify that the Ctx_StreamingSvc user has rights to the following objects:

  • Registry:
    Full Control: HKEY_LOCAL_MACHINE\SOFTWARE\CITRIX\RADE
    Full Control: HKEY_LOCAL_MACHINE\SOFTWARE\CITRIX \RadeCache
  • Files:
    Read and Execute: <systemroot>\Program Files\Citrix\Radecache
    Read and Execute: <systemroot>\Program Files\Citrix\Streaming Client
    Read and Execute: <systemroot>\Program Files\Citrix\Deploy
    Full Control: <systemroot>\Program Files\Citrix\RadeCache
    Full Control: <systemroot>\Windows\Fonts
    Full Control: <systemroot>\Windows\Registration
  • File share:
    Read: File share where the profile package is located.

The client-side processes involved with streaming

The following list describes the components that are used when streaming an application to the client computer or a Presentation Server desktop and the order in which the events occur.

  1. When attempting to launch a streamed application the RADE Launcher process called raderun.exe is invoked through a File Type Association with a file that has a .rad extension. The .rad file is downloaded to the client after clicking on the application icon. This file contains details for application execution such as the location of the profile package, and so on. See CTX114673 - How to Find the .Rad File that is Used to Launch a Streamed Application for more details on how to locate the .rad file.
  2. Raderun.exe performs a remote procedure call into radesvc.exe (Citrix Streaming Service). Using Task Manager, verify that the raderun.exe process is running. The raderun.exe process should start and then disappear after application execution.
  3. After the .rad file is downloaded, radesvc.exe parses the .rad file for the location of the .profile file. The .profile file is located in the application profile package. The .profile file details how to execute the application.
  4. Radesvc.exe gets the appropriate .cab file that matches the target platform from the .profile file. Verify that the application you are attempting to execute was profiled for the correct target operating system. During the profiling process, you are asked to select the target operating system and the language. A separate .cab file is created for each selected target operating system. It is best to install the profiler application on a computer that matches the same operating system, boot drive letter, and language as the intended target operating system.
  5. Radesvc.exe creates a new isolation sandbox instance and ensures that the application executable is extracted in the cache location. The isolated files are stored in \Program Files\Citrix\Radecache. Verify that the application files are located in the \Radecache directory.
  6. Radesvc starts the application executable for that application. Verify that the application has access to all its requirements inside and outside the isolation environment.
    For example, if the application relies on the Java Runtime Environment (JRE), .NET Framework, or specific files or registry entries, ensure that they are installed into the same profile package as the application or that they already exist on the target computer. See the earlier section called
    Application-specific issues. To verify whether the target computer has certain prerequisites before application execution, you can use the Pre-analysis feature available during the profiling process.

Performance issues

Application Streaming is basically a file copy to a local directory on a client or server. The application executes from that local copy. The local cache directory is \Program Files\Citrix\RadeCache. This location is called the Install Root. When users make modifications to the application, those files are stored in the users profile under \Documents and Settings\<User>\Application Data\Citrix\RadeCache. This location is called the User Root. The default Install Root cache size is 1GB. Once the cache is full, older files are purged to make room for files to be streamed. To change the cache size or location, use the ClientCache.exe utility located in \Program Files\Citrix\Streaming Client\. This utility can only be used to modify the Install Root and not the User Root.

Because the application profile package is copied from a file server, then extracted and executed locally, the main bottlenecks are the file server where the package is copied from and the network. The file copy is done using the Service Message Block (SMB) protocol. If application streaming is slow, it may be because of a lack of resources on the file server where the package is being streamed from, network latency between the file server and the computer being streamed to, or the size of the application being streamed. For information on the profile size of particular applications see CTX114838 - Citrix Application Streaming - Sample Package Sizes. To assist in identifying whether a file system bottleneck on the file server is the issue, use the following procedure.

  1. Open the Performance Monitor on the file server.
  2. Go to Server > Work Item Shortages and Server > Blocking Request Rejected. The Work Item Shortages show if there are file requests that are pending but have not been worked on in the queue, which means the file server is taxed with many requests and it has a long standing queue. The Blocking Requests Rejected section tells whether any of those queued requests (file requests) have been dropped due to timeouts. Timeouts happen due to low hardware specifications on the servers.
  3. Copy a directory from the file server to the target computer to compare the performance of a standard file copy process.

Using Raderun for troubleshooting

There are numerous Application Streaming troubleshooting utilities that can be used. One of those utilities is called Raderun. It is included with the install of the Streaming Client. The switches below can be placed in the registry which will affect all applications that are streamed to that client computer. For more information on how to use Raderun see CTX115191- How to Use Raderun to Manually Stream an Application.

To enable the Raderun switches in the registry, create a new string value under HKEY_LOCAL_MACHINE\Software\Citrix\Rade\ called RadeRunSwitches and list the switches below as the values. Multiple switches can be used but they must be separated by a space, for example:
RadeRunSwitches Reg_SZ -x -D


Note: If the target computer with the Streaming client installed has a 64-bit Windows operating system, add the registry value to Wow6432node which is the 32-bit section of the registry. HKEY_LOCAL_MACHINE\Software\Wow6432Node\Citrix\Rade\

List of Raderun Switches that can be placed in the registry:

-c clear the execution cache before the application opens
-C clear the execution cache and per-user cache before the application opens
-d clear the execution cache after the application terminates
-D clear the execution cache and per-user cache after the application terminates
-x execute a command prompt for every launched application (This is useful for debugging.)
-e pre-streams all files for the application to the client. (This pre-streams all application files instead of just the files that are needed at execution time. This is used when all components of an application are needed before the application can start).



Note
: Adding the -e switch uses a larger amount of space on the client hard drive because all applications that the user has access to are pre-streamed and not just a particular application.


Debugging client-side issues

To assist in identifying errors that occur during the streaming process, enable the client-side debug console in the registry of the computer with the Streaming Client installed. This debug console launches inside a command prompt at application execution time. It will show all steps of the streaming process such as .rad file download, license check out, file extraction requests, and so on. For directions on how to enable the client debug console see the article CTX112472 - How to Enable the Streaming Client Debug Console.

Monitoring Streamed Sessions

Applications that are streamed to the Presentation Server desktop create an ICA session and can be monitored and managed like any other type of ICA session. The Streaming client needs to be installed on the Presentation Server for the stream to server process to function.

When users stream applications to their local desktop, this is not classified as an ICA session but is listed as a RADE session in the Access Management Console. A RADE session cannot be managed like an ICA session because there are different components at work behind the scenes. Refer to article CTX112637 - Heartbeat Service for Application Streaming Session Monitoring Explained for more information about RADE sessions.

Known limitations for Application Streaming

There are certain kinds of applications that cannot be profiled or streamed and therefore are not supported with the Application Streaming feature. These applications contain components that cannot be successfully isolated in an isolation environment. For example:

  • Device or kernel drivers: Isolation environments cannot isolate device or kernel drivers. For example, if the application installs and depends on a driver to function, it does not work in an isolation environment.
  • Windows services: Some applications install and rely on a Windows service to function correctly. These applications cannot be isolated. To get around this limitation, investigate the application to see if there are components that can be disabled during the installation to prevent the service from being installed and see if the application can function without it. To verify whether an application attempted to install a service, examine the Event Viewer’s Application Log. Look for messages with source CtxSbxAppMsg.
  • Windows class names or window names: Isolation environments do not isolate Windows class names or Window names. Applications that use Windows messages as an inter-process communication (IPC) mechanism are not supported with the Application Streaming feature.
  • Distributed Component Object Model (DCOM): Applications that rely on DCOM to function are not supported.
  • COM+ applications: CTX112719 - Limited Support for COM+ with Application Streaming and Application Isolation Environments discusses certain limitations of COM+ applications.

More Information

The Knowledge Center contains several documents on other environment-specific errors and issues.

CTX107864 - Troubleshooting Applications Installed into Isolation Environments

CTX112636 - Application Streaming Licensing Explained

CTX112810 - Application Streaming - FAQ

CTX112720 - Using the Strictly Isolate Rule for Application Streaming

CTX114663 - Application Streaming Delivery and Profiling Best Practices

CTX113491 - Obtaining a CDF Trace for Application Streaming Issues

Comments

Popular posts from this blog

How to publish VBScript at UNC from Streaming Package,

How to publish App-V package in XenApp 6 : {XenApp 6 –App-V integration}