Clearing Hung/Disconnected Sessions Without Rebooting Windows Server 2012 R2

For this situation the setup consisted of four Windows Server 2012 R2 servers running Citrix XenApp 7.15. They host a desktop as well as several published applications.

Recently I had multiple users with disconnected sessions that just would not log off. I suspect the server was running into resourcing issues as there was a high number of sessions on there previously. As a result, these hung sessions meant that they could no longer launch the hosted shred desktop or any of the published applications. The usual course of action in this case is to reboot the server when appropriate however these users needed access sooner rather than later and I couldn’t reboot whilst other users are logged on to those same production servers.

I worked out a way around this and documented the steps below.

These are the offending sessions (below). The same processes hung within each one. Winlogon.exe appears to be the culprit. Attempting to end these via task manager doesn’t work and with taskkill results in – This is critical system process. Taskkill cannot end this process.

Log on to the affected XenApp server and run qwinsta from an elevated command prompt to find the session ID of the disconnected sessions (disc state). Note no username against the session.

Run query process /ID:[session_id] to get the PID of the hung winlogon.exe process within that session.

At this point I tried taskkill /f /t however this didn’t work.

Switching to powershell and using kill –id [PID] does the job effectively.

You can see that there are no longer any process running within that session.

I did this for all disconnected sessions.

I attempted a logoff however the sessions no longer exist, the entries in task manager must just be blank placeholders for the old sessions.

I closed and reopened task manager to confirm and sure enough the sessions disappeared.

I checked in with the users and there were able to launch published applications successfully again.

Hopefully someone finds this useful. Any comments welcome.

Ant

Avast Administration Console – Can’t Connect to Server

I recently came across an issue where the Avast Administration Web Console wouldn’t open. The error stated that it couldn’t connect to the server. Clicking the reload button made no difference.

As you can see from the screenshot it said to check that the avast! Administration Console service was running so I did and surprise surprise it wasn’t.

Starting the service was unsuccessful – it’s never that easy. I received an error stating that the service had started and stopped immediately and that some services are set to stop automatically if they’re not in use. At this point I thought it best to check the event logs.

Service cannot be started. System.Data.EntityCommandExecutionException: An error occurred while reading from the store provider’s data reader. See the inner exception for details. —> System.Data.SqlServerCe.SqlCeException: The database file is larger than the configured maximum database size. This setting takes effect on the first concurrent database connection only. [ Required Max Database Size (in MB; 0 if unknown) = 2049 ]

So we can see here that the service isn’t starting due to an issue connecting to the database. The highlighted text indicates what the problem was. I did some digging and found that the connection string sits within a file called Avast.Sbc.Service.cfg under the following directory.

I decided to modify the Max Database Size parameter to see if this would resolve the issue. I changed it to 4091 (I had tried slightly higher however it seems 4091 is the maximum).

I saved the changes (you need to run notepad as administrator to modify this) and then I tried starting the service again.

Success! Hopefully someone finds this helpful. I’m not sure if this is a permanent fix however it’s up and running for now.