Personal Desktop (Single Session) Session Management
Defining the session management for personal desktops in HyWorks involves multiple conditions and modules. This section aims to detail all these conditions.
Applicable Session Timeouts
The first rule to understand is that all session timeouts for remote desktop sessions or virtual applications are retrieved from the profile assigned to the user. To understand this better, consider the following case:
-
Connection Profile-1 is assigned to a user.
-
The user has a virtual application-1 assigned with connection profile-2 and a personal desktop with connection profile-3.
-
Upon user logon, connection profile-1 will be assigned to the user, and subsequently, the user's session timeouts will be determined by this profile. At the same time, regardless of the desktop or applications the user accesses, the timeouts defined in connection profile-1 (assigned to the user) will be communicated to the respective HyWorks agents on the server.
-
These agents monitor the remote session status on the server and act accordingly based on the received timeouts.
Personal Desktop Session Management Pointers
The following design facts affect the personal desktop management:
-
The desktop agent on a personal desktop does not send session connection or disconnection notifications to the controller. Therefore, a user clicking on the desktop is considered a desktop connection.
-
Desktop clients communicate session dismissal information to the Controller, which then uses this information to determine whether to remove the desktop session.
-
HyLite does not communicate session dismissals to the Controller; therefore, the Controller remains unaware of desktop session disconnections with HyLite.
-
The controller does not maintain disconnected session information; therefore, it keeps personal desktop session information as connected until it receives dismissal information, at which point it directly removes it.
-
Assignment life cycle and assignment type play some role in desktop session management; the following facts will be used in a later section of the document:
-
For a personal desktop, the assignment will be retained.
-
For floating on-login assignments, the assignment is removed only when the user logs out.
-
For floating on-connect, an assignment can be removed after a configured time of disconnected session or on user logout.
-
Session Management with VM Scale Booster (Recommended)
With the Scale Booster deployed and configured, personal desktop sessions can be better managed, as session disconnection notifications can be sent via the Scale Booster. Personal desktop sessions are listed in page Monitor > Live Sessions > Desktops. Session management with Scale Booster will be explained in this section:
Action | Status on Management Console |
---|---|
User logs-in | Not visible |
The user tries to connect | Connected |
Disconnected (User initiated or timed out) [Desktop agent updates to controller via VM Scale Booster.] |
Not visible (removed) |
User is still logged in | User session management will be triggered |
Important
The above behavior will be consistent for all types of endpoints (Desktop clients/HyLite) and desktops (Windows/Linux).
Session Management without VM Scale Booster
Here, several behavioral factors will play a vital role in determining session management in HyWorks. Let us try to understand from different perspectives:
Endpoint-type: Desktop Clients
Considering the endpoints that send the session dismissal updates to HyWorks Controller, and accordingly, session management will be done:
Action | Status on Management Console |
---|---|
User logs-in | Not visible |
The user tries to connect | Connected |
Disconnected (User initiated or timed out) [Endpoint updates the session dismissal to the controller.] |
Not visible (removed) |
User is still logged in | User session management will be triggered |
Endpoint-type: HyLite/Android Clients
Considering endpoints that do not send session dismissal updates to HyWorks Controller, the session visibility on the HyWorks Controller Management Console
Action | Status on Management Console |
---|---|
User logs-in | Not visible |
The user tries to connect | Connected |
Disconnected (User initiated or timed out) [HyLite: No updates to controller.] |
Connected |
User session logout. | Not visible (removed) |
Note
Without a scale booster, HyLite-initiated desktop sessions will remain in the HyWorks Management Console forever, until the user logs out of the user session.
Advance Session Monitoring
Some cases may cause sessions to remain active erroneously, as mentioned in the section, or due to other reasons like network disruptions, unexpected VM shutdowns, VDI deletions, or failed controller communications.
To resolve these error conditions, the HyWorks Controller offers advanced configurations, which are discussed in this section.
Supported Versions
HyWorks Controller v3.4-SP2 or later.
Advance Settings
-
HyDesk user session idle monitoring: Configure it as “2” to enable User session idle monitoring when no active RDP session is running. This is the default configuration in the latest controller, and it can also be verified.
-
Desktop Session Monitoring on RDP Status:
-
Description: Activates dedicated desktop session monitoring based on RDP connection status.
-
Options: "0" = Disabled. (Default), "1" = Enabled for both Linux and Windows DVMs, "3" = Enabled for Windows DVMs only.
-
-
Monitoring Interval:
-
Description: Specifies the interval at which the RDP status monitoring thread runs.
-
Default: 60 minutes.
-
-
Active Session Timeout:
-
Description: Sets the duration (in minutes) that a session must remain active before it is closed due to a lack of an RDP connection.
-
Default: 60 minutes.
-
Workflow
The monitoring thread periodically reviews the database to mark sessions as disconnected under these conditions:
-
Session type is a Personal desktop.
-
The desktop connection status on the management console indicates that it is active or connected.
-
The session has been active for at least the configured time (set by the Active Session Timeout setting).
-
The HyDesk user session idle monitoring is set to 2.
-
One of the following conditions is met:
-
DVM is powered off.
-
DVM does not exist.
-
DVM is responding, but the Controller detects no RDP session.
-
The controller will periodically check the database for desktop session status against the given DVM. If it finds no desktop session for the DVM, the desktop session status will be marked as disconnected.
-
Now, since no desktop sessions are associated with the user, the connection profile timeouts should handle the user session.
-
How does the controller get the desktop session status from the database:
-
With VM Scale Booster, updates are made using heartbeats.
-
Without VM Scale Booster, the Controller already performs periodic polls to retrieve agent status and other information.
-
-
-
Limitations
-
Console vs. RDP Session Differentiation: In a manual poll, the DVM agent cannot distinguish between console sessions and RDP sessions. This is only addressed in VM Scale Booster heartbeat calls. Even when a console session remains running, the user session would not be marked as disconnected on the controller.
-
Linux DVM Tool Limitations: The Linux DVM does not send RDP status to the controller during manual polls, which can impact session disconnect timing if the VM Scale Booster is not enabled. If monitoring is activated, desktop sessions may be marked as disconnected erroneously due to the default "not connected" RDP status from manual API polls.