Internal session state not updating
Note: I have no solution to this problem. So this might not be exactly helpful to you but here's the technical background, as far as I understand it:
This sounds like I problem I've had in the past.
If session reconnect does not work then the server tries to start a new terminal server session. And you're usually not allowed to start more than one. (This is usually manually configured by the admin.) So you get that popup. (And I don't know of way to tell my client to FORCE reconnect. You just tell your client to "connect" and then some backend logic, that I do not understand, decides if you wind up with a reconnected or a new session.)
Now why does reconnect not work?
There are 2 states for a Terminal server session: "active" and "disconnected". (See screenshot.)
And my Citrix installation would not allow reconnect to active
sessions. Reconnect to disconnected
sessions worked fine.
Now NORMALLY the terminal server SHOULD detect a session interruption and change session state from "active" to disconnected" automatically. It's just that it did not do this in my case.
Also NORMALLY reconnect-to-active-sessions SHOULD work just as well as reconnect-to-disconnected-sessions. But didn't.
Now there are some stupid workarounds that I know of:
- Wait until the server finally notices on its own. And places the session in "disconnected state".
- Call an admin. Have them start task manager and make them do right click and then "disconnect" on your username. (Note that this will NOT actually end your session. Just place it the "no screen or keyboard are currently attached to that session" state.)
- Configure terminal server ICA protocol options to have an "idle timeout" of 15 minutes or say. And then select "disconnect" as the idle timeout action. (So basically: when somebody does not move their move their mouse for 15 minutes, this applies.) (You can do the same for Microsoft RDP. There the GPO setting is called
Set time limit for active but idle Terminal Services sessions
.)
The result of each of these workarounds is the same: session state changes from "active" to "disconnected". And a reconnect-to-disconnected-session USUALLY works.
If anyone finds out how to fix this, then I'd love to know.
Further info: CAG and SR.
But there's many moving parts and I don't understand them all. For example it gets more difficult if you introduce a Citrix-Access-Gateway (CAG) Encryption/Loadbalancing-Gateway into the mix and if you introduce "Citrix Session Reliability" (SR) into the mix.
CAG: I think there might be an issue where the frontend connection from the user to the CAG is gone but the backend connection from the CAG to the terminalserver is still considered good.
SR: And with SR the Terminal server basically accepts a connection on port 2598 and then talks TO ITSELF on port 1498. So even if the client connection to 2598 is gone, then the internal connection (from localhost) to 1494 will still be considered good. Now it SHOULD notice at some point, but I don't know when.
Further info: Citrix blog
Here's an official Citrix blog post that goes into the backend configuration and lists the Citrix Terminology: