Application Session Pre-Launch feature greatly reduces the application launch time for end users.
Generally when user launches any RDSH application, Horizon client establishes the session with backend RDSH application with a message “Connection server is preparing your application” and then launches the application from it. This usually takes some time to load the application (Mostly under a minute or so).
With session pre-launch feature, Horizon client launches the session to RDSH application (Not application itself just session) even before user actually launches the application from Horizon client. So initial connection process is already done by the time user actually launches the application.
Now that’s interesting right, When I came across this feature, I was like,
- What does it mean?
- Will it open Application automatically for user?
- How does it work exactly?
- Does this work in cloud pod architecture?
I presume that you might also be thinking the same if not worked already with this. So let us dig into it and understand how this feature works.
First of all we will setup RDS Farm settings and an application pool in Horizon with session pre-launch option set to enabled. By the way, I am using Horizon 7.7 in my test lab.
We’ll go through each of below steps one by one to better understand how pre-launch is configured and how it works.
- Setting up pre-launch timeouts in farm settings (Optional as there are default timeouts defined in this)
- Setting up App pool with Pre-Launch
- Setting up Horizon Client settings
- Testing the session prelaunch
Let’s get started then…….
Setting up pre-launch timeouts in Farm settings
- Login to Horizon admin console and navigate to Farms under Resources as shown below.
- Select your farm and click edit to change farm settings for pre-launch timeouts as in image below.
- Under Farm Settings, verify the Pre-Launch session timeout & Empty Session timeout values and modify if required in your environment.
- Pre-Launch session timeout
- Determines the amount of time that pre-launch session is kept open. The default is 10 minutes.
- If the end-user does not start any application in Horizon Client, the application session is disconnected once pre-launch session times out.
- If you want to end the pre-launch session after timeout, you must set the Log off disconnected session option to Immediate as shown below.
- Empty Session Timeout
- Determines the amount of time that an empty application session is kept open.
- An application session is considered to be empty when all the applications that run in the session are closed.
- While the session is open, users can open applications faster.
- You can save system resources if you disconnect or log off empty application sessions.
- Select Never, Immediate, or set the number of minutes as the timeout value.
- The default is After 1 minute. If you select Immediate, the session logs off or disconnects within 30 seconds.
Now that we are done with timeout settings, let’s move to next steps.
Setting up application pool with session pre-launch
- Login to Horizon View admin console and navigate to Application Pools under Catalog menu and click Add button in top middle screen as shown below.
- This pops up the Add Application pool window as in image below
- Select the application that you want to publish from list or add manually and put a checkmark for prelaunch enabled as shown in below screenshot and click next. I will use VLC media player for this example.
- Edit the ID (Internal name) and Display name (Shown in Horizon client) fields as you desire. I just kept ID default and display name changed to VLC Player.
- In above image, note that I have kept checkmark for Entitle user marked, so click finish and entitlement window will pop-up as shown in below screenshot. Click Add to select the users.
- Search for user or group to be added, and select the entry and click OK to add entitlement as in image below
- Click OK to complete entitlement as shown below.
- Application pool with VLC is ready now and can be seen under application pools.
- As you can see in below screenshot, pool has available status and also green check mark for Pre-Launch. Also we have done the user entitlement.
Great, we have our Application pool configured with session pre-launch enabled. Let’s try to connect & see if it works or needs more configurations.
- Launch horizon client and connect to your connection server.
- Do not launch any desktop pool or application. Just let it be logged in to connection server.
- Once client is connected, let us check session monitoring details in Horizon admin console for any ongoing connection.
- And it seems that nothing is going on here under session as yet.
- Let us check our RDS host server and see if anything there.
- And as expected, here also we don’t have any users or sessions connected right now.
- That clearly means we need few more configurations to be done.
And here we go with next step…..
Setting up horizon client settings for Session Pre-Launch.
In order to use session pre-launch feature, we need to enable it in Horizon client as well.
- Launch Horizon client by double clicking the desktop icon and double click to connect to your connection server if already added. Else, add connection server from top New Server link in horizon client window.
- Enter your credentials to and click login or hit enter to get authenticated.
- Once logged in, click the gear icon in top left corner as shown below. By the way as you can see, my application is already in the list as we have done the entitlement.
- On the settings page, navigate to Applications and from Reconnect behaviour, select option Reconnect automatically to open applications and click OK to apply the settings as shown in below screenshot.
That is it folks. It’s all we need to do to enable Session Pre-launch. However, we will need to reconnect the horizon client for new settings to effect.
So Click two plugs icon in top right corner to disconnect and click ok to logoff as shown below.
.With this done, now is the time to see how exactly this feature works.
Testing Session Pre-Launch
- Launch Horizon client and login with user credential to whom application pool was entitled. DO NOT LAUNCH ANY CONNECTION 🙂
- If you notice in above screenshot, I am just logged in to my Horizon client. I have not launched any desktop pool or Application. As you can see in my taskbar, it shows only, regular apps along with Horizon client and no sign of VLC player.
- Since we have not launched any application, let’s check how it looks like on our horizon admin console and RDS host.
- Connect to your horizon admin console and navigate to Sessions under monitoring as shown below.
- Here if we check the session details, well that’s a surprise, as in screenshot below, I can see my session running to my RDS server for an application though I have actually not launched my application yet.
- Let’s check it further on RDS host now. Connect to your RDS server and open task manager on it and check the users tab as shown below. And here also we have another surprise. We have our user connected here as well
- Let us check the Details tab now and there it goes again. We can see all processes associated with our test user except VLC Player.
- I still haven’t launched my application yet. So let’s do that now from horizon client.
- Double click the application icon (VLC in my case) in horizon client.
- And to my surprise, it was launched in just 2-3 seconds roughly that too in a lab environment. It can vary a little in your environments but still it should be quick.
- Let’s quickly check on RDS host now on Users tab in task manager.
- And in details tab,
So basically, our statement in the beginning stands true that session (Session only not application itself) is started to RDSH application the moment user connects horizon client to connection server.
Now, that is something worth a try. Give it a try folks. From end user perspective, it is really cool to have applications launched so quickly. It can really set user satisfaction to high levels. Also, with timeout settings in place, we don’t need to worry about session staying forever.
Session Pre-Launch feature can be used in cloud pod architecture as well. With global entitlements, by enabling the pre-launch policy when you create or modify the global application entitlement.
All the application pools in the global application entitlement must support the session pre-launch feature, and the pre-launch session timeout must be the same for all farms.