Explaining and Troubleshooting ICA Session Initialization and Published Application Launching

Summary

Citrix Technical Support often receives calls relating to the launching and abnormal disconnecting of ICA sessions. This article provides a logical process for troubleshooting connectivity problems with ICA sessions.

Connecting to a Published Application

To begin, the ICA client sends out a request for the user’s desired published application. The farm Data Collector resolves the connection to the least busy server hosting this requested application. The QFarm and Qserver commands can help determine what server is the least loaded. Use the ICA Client Connection Center or open up the resulting ICA file in a text editor to determine the chosen server for the new connection. Citrix Support sometimes asks customers to publish an individual copy of Notepad on each server in the farm in order to help pinpoint connectivity issues on specific servers. Once the logon server is determined, compare an ICA desktop connection versus a published application connection and follow the below steps.

CTX104771 – Overview of the Presentation Server Client XML Communication Process and Web Interface XML Service Load Balancing

CTX101691 – Active Server Pages error ASP 0113 and Applications are slow to enumerate within NFuse

Troubleshooting

The ICA listener waits on “ICA” string detect, Winstation state to CONNQ (Connection Request), attempts to get and verify a Windows license, accepts the connection (GINA), and queries the client configuration for available virtual channels.

1. Is the ICA-TCP listener defined in Terminal Services Configuration, enabled, and editable? If the listener does not appear in Terminal Services Configuration, check the Event Viewer for potential issues where Wsxica.dll failed to load. Wsxica.dll and RDPwsx.dll depend on TermSrv.exe. Ensure that the RDP listener does not experience similar issues.

2. For Windows 2000 environments, are listening stacks available? Wdica.sys is dependent on Termdd.sys

3. Do basic ICA connectivity tests work?

Using the following command from a command prompt should show the ICA Listener port heartbeat, as shown below:

    C:>telnet <SERVERNAME> (or <IP Address>) 1494 (or 2598)

ICAICAICAICAICAICAICAICAICAICAICAICAICAICAICAICA
ICAICAICAICAICAICAICAICAICA

4. Are you prompted with a Microsoft or Novell GINA? Enable the prompt for password check box within the ICA listener. Csrss.exe and winlogon.exe should be the only running processes in the session. Common reasons for a failure at this step are either network or Terminal Server Licensing problems. Wsxica.dll verifies a user has rights to a published application. Winlogon.exe launches userinit.exe. Userinit.exe then reads the appsetup key under:

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon

and cmstart.exe is launched.Ctxnotif.dll is loaded next in the context of the system account by Winlogon.exe. The following registry key is read:

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogonNotifyMetaFrame

5. Citrix attempts to obtain a valid Citrix License at this stage of the logon. Search the Event Viewer and then the Citrix Knowledge Base to resolve any Citrix Licensing issues.

6. The logon processes, userinit.exe (profiles), usrlogon.cmd, cmstart.exe, icast.exe, and so on, start to load. If some of the start-up processes trap, the session is destroyed before the application is presented. When passing through credentials, this is often difficult to determine, which is why Step 4 is so important. Check the Event Viewer and enable Dr. Watson. Icast.exe (application launcher) waits for Wfshell.exe to complete before launching the initial program for the published application. If Cmstart.exe is not listed under the AppSetup value in the registry, Wfshell.exe is not launched and Icast.exe times out. When the userinit.exe hangs (a Microsoft process), you cannot start a new application from the same server until the userinit.exe process has completed.

Pmonitor.exe is affecting session start-up

7. DLL loading also plays a big role. Multiple versions of the same DLL in different locations can cause problems. The following is the DLL loading order preference to check along with DLL file permissions:

    • Cu
    rrent directory of the image file

    • The process’s current directory

    • Windows system directory

    • Windows directory

    • Directory listed in PATH variable

8. Trace the session, if needed, with Citrix CDF tracing tools or networking trace tools.

9. Once the session is established, the session might become disconnected.

This document applies to:

Source: Explaining and Troubleshooting ICA Session Initialization and Published Application Launching

Leave a Reply

Your email address will not be published. Required fields are marked *