Windows 2003 now addresses this problem with Session Directory. Session Directory is a database that keeps track of sessions on terminal servers in a cluster and provides the information used at connection time to connect users to existing sessions. With session directory when a connection attempt is made to the cluster, the server that receives the request first checks with the session directory server to see if the user has an existing connection on another server. If so the session directory informs the server of this and it directs the client to the appropriate server that contains the existing session. If the user does not have an existing session, then the session is launched from the server that received the initial request. In both cases after the connection is established the session directory is then updated. Session Directory is not enabled by default. You must perform the following steps to set up Session Directory properly:
Terminal Servers Requirements Terminal servers are required to be running Windows Server 2003, Enterprise Edition, or Windows Server 2003, Datacenter Edition, to participate in a Session Directoryenabled farm. After completing these steps all servers will become members of the cluster and use the session directory. Note this can also be accomplished via a GPO and that would be a more efficient method of configuration as opposed to configuring each terminal server individually. Although Session Directory does improve things over Windows 2000 Terminal Services it still might not provide the flexibility and effectiveness you want. So in most cases after an environment has outgrown the ability to use machine-based load balancing the company will turn to a third-party software provider like a Citrix, New Moon Systems, or Jetro Platforms to provide application-based load balancing. All of these products will allow for load balancing to be performed at the application level. This allows for dissimilar servers in the farm and the ability to take advantage of dissimilar hardware. Using one of these third-party tools you can configure the system to ensure the client always connects to a server capable of running the specified application with the most resources available at that particular point in time. |