Wilco van Bragt - LinkeIn Wilco van Bragt - Twitter rssa 

Advanced Citrix Load Balancing Scenarios with Worker Groups

In the article Citrix Load Balancing Policies explained I described where and how to use Citrix Load Balancing. One of the most used scenarios is redirecting user to a specific group of servers defined in a Worker Group. At some customers we were also using Citrix Load Balancing for that use case, but during those projects some additional concepts were introduced and we should get it working with the already defined Load Balancing Policies. In this article I’m going to describe the scenarios and how that can be accomplished with the defined Load Balancing policies.

Load Balancing Policies and silos outside configured Worker Groups

Load Balancing Policies are often mistaken with Load Evaluators. With Load Balancing you can divide your users to different Worker Groups (for example when you have more data centers). See my article Citrix Load Balancing Policies explained for more information about Load Balancing. In the case I was working with this situation the customer had several data centers spread over different locations. Most back-ends systems of the end-user are located in one data center, so we would like to assign the user to a server in his data center. However some applications were offered out of the main data center. When those applications need to be accessed by users out of one of the other data centers the application was not available. This is logical as the Load Balancing Policy is always checked and the policy redirected the user to his own data center (where no servers are available hosting those applications, as this was only offered out of the main data center). If you don’t taken Load Balancing into account it’s difficult to understand that the user can not start the application. Luckily the solution is not that difficult as you can add more Worker Groups to a Load Balancing policy. To accomplish that user from all data centers can access the application from the main data center we created a Worker Group with the servers hosting this application. This Worker Group was added to the Load Balancing Policy.

In this case Citrix will check the Load Balancing Policy when the application is requested by the end-user. In the Worker Group with the highest priority there are no servers available hosting the application, to the policy automatically will mention the second Worker Group with the servers hosting that application. For the other applications which are available on servers in the first worker group, will be started in the local data center.

Desktops and Published Applications (based in the same image) and different Worker Groups

This scenario is pretty comparable with the first one. The customer has several locations where Load Balancing was used to redirect the user to his own data center where his back-end systems were located. Just as above some applications were offered from the main data center. Different was that the customer would like to see that those applications were started on the same systems as the Desktop was offered for the user from the main data center (so a single image) and the server should both hosting the Published Desktop as the Published Applications. However they stated before if there are no resources available within the data center of that user, the user should not be forwarded for a Desktop session in another data center (it was just sized for the amount of users per location). We tried to figure it out if this was possible. The actual question was if the worker groups were just used to define which servers could be used or that the actually worker group is also used to check if the Desktop/Application is published on this worker group.

Concretely we already had the Worker Groups per datacenter (WG VanBragt.Net DataCenter Main and WG VanBragt.Net DataCenter 4 in this example) and added an additional Worker Group (WG VanBragt.Net Central Application). On the Published Desktop the Worker Groups WG VanBragt.Net DataCenter Main and WG VanBragt.Net DataCenter 4 were assigned. On the Published Application we assigned the Worker Group WG VanBragt.Net Central Application. In the Worker Group WG VanBragt.Net Datacenter Main and WG VanBragt.Net Central Application the same server was added. On the Load Balancing Policy for DataCenter 4 we have WG VanBragt.Net DataCenter 4 as priority 1 and WG VanBragt.Net Central Application.



With this set-up the question was what will happen if no servers in WG VanBragt.Net DataCenter 4 are available and a user of that Data Center will start the Published Desktop.

And the results are………. the Published Desktop will start on one of the server defined in the WG VanBragt.Net Central Application as those servers are both hosting the Published Desktop as the Published Application. During the Load Balancing process only the servers are determined that could be used for assigning a session to the user. It’s not used to see if the Published Resource is actually assigned to that Worker Group. In this case this solution does not meet the requirements for this customer. Because in this way the user will get a Desktop session in another datacenter (I know you can discuss this requirement, but that’s another story).

For this case you should create a separate image for central applications hosted on other Citrix XenApp Sessions Host.


In this article I showed some advanced scenario using the Citrix Load Balancing policies and how the Load Balancing actually works. Although every situation is different it shows some examples to deal with Citrix Load Balancing policies.