This article explains session sharing and discusses some common scenarios.
Session sharing is the ability of a seamless published application to be executed over the same connection as other seamless applications that are already running on the same server, under an existing Session ID of a user.
Session sharing occurs if there is an open seamless session and another seamless application is launched and published to the same server as the first session. Consequently, additional published applications work in the same order. Session sharing for managed applications is enabled by default in all Citrix Presentation Server and XenApp versions.
Note: The session sharing check is done prior to the connection going through load balancing.
By default Load Balancing takes precedence over Session Sharing on a fully loaded server. New connections are routed to other less busy servers, rather than have their sessions shared with existing connections. To toggle this behavior a registry enhancement option is available using a seamless flag value called DISABLE LOAD CHECK, see CTX101644 – Seamless Configuration Settings for further information.
Support for Session Sharing
Session sharing is a feature of the ICA client. It occurs when you run an application as a seamless application, and the published application properties or preference settings, are equalized for all applications that require to session share.
Ensure all applications are published with the same settings. Varying results might happen when applications are set for different requirements, such as Encryption or Appearance.
Some properties that must match on both Applications for Session Sharing to function are:
Access Control Filters (for SmartAccess)
Citrix currently does not support session sharing on the PocketPC client, meaning WinCE for certain handheld devices, with or without the Program Neighborhood Agent. As of October 17, 2005, the Windows Based Terminal (WBT) or WinCE for terminals, version 9.x now supports session sharing.
Mobile IOS devices, such as IPHONE and IPAD, are supported for session sharing. Mac Workstations are supported for Session Sharing. Be sure to use the latest Online Plug-in for MAC or Receiver for Mac available for download.
Example of Session Sharing
Each application is published separately (Word, Outlook, Access, and Excel) in Microsoft Office Suite to a load-balanced server farm with five servers. Implying you have a published application for WinWord.exe, Outlook.exe, Access.exe, and Excel.exe.
A user logs on to WinWord, potentially accessing any server in the farm (Server 3 for this example) and now the user wants to import an Excel spreadsheet. The user launches the published application for Excel.
According to the rules of session sharing, if the first application is launched as a seamless application and if Excel is also published on Server 3, Excel runs as another program within the same session, as opposed to a new session being launched on this server or another server. From Citrix Server Administration, only one session and one license in use.
Disabling Session Sharing
In some instances, session sharing needs to be disabled. It could be for security reasons and another common cause is for using Packeteer’s Packet Shaping products with ICA.
To disable session sharing, the following registry key must be present.
Caution! Refer to the Disclaimer at the end of this article before using Registry Editor.
Add the following value to disable this feature (this value does not exist by default):
Value: SeamlessFlags = 1
To re-enable the feature, delete this key.
Reconnecting to a Disconnected Session with a New Application
The same client name launches the new application in the disconnected session of the original application. The feature works as follows:
When a new seamless application is launched and there are disconnected sessions for this client, the browser checks whether or not any of those sessions are on a host that also publishes the new application and directs the client to that host.
Wsxica.dll on the host causes a reconnect to a suitable session. The seamless module, Seamls20.dll, launches the application in the reconnected session.
The feature is on by default and can be disabled on each server by adding a value to the following registry key:
Type: ReconnectWithNewApplication = 0
Session Sharing and Novell Directory Services
Session sharing works correctly with Novell Directory Services (NDS) users only if the application permissions are assigned at a user or container level. Session sharing does not work if assigned at the group level.
Session Sharing and ICA desktops
When using ICA published desktops for an ICA connection, the following scenarios are the expected result:
When an ICA desktop is the first application launched it creates its own unique Session ID; subsequently when a seamless application is launched by the same user, a new Session ID will be created for the seamless application launched on that same server.
For the same user:
– published applications cannot share sessions with published desktops
– published applications cannot launch on the same server as published desktops
Any additional seamless applications that are then launched by this one user will session share on the second session ID that was created.
When a Seamless application is the first application launched by a user it will create a new Session ID. If that user then launches an ICA desktop on the same server it will create its own unique, new Session ID.
When a user launches an ICA desktop as the first application it creates its own unique Session ID. Then, if that same user uses the installed Citrix Online Plug-in (or Receiver for Windows) from within the ICA desktop to launch seamless applications to the same (or different farm), a new unique Session ID is created for the seamless application launched.
CTX125820 – Session Sharing Fails in Published Desktops