【IT168 服务器频道】Windows Server 2008的TS Seesion Broker在以下几个方面做了改进:
1、windows server 2008标准版也有TS Session Broker的功能,相对于Windows Server 2003只有企业版只有这个功能来说,很多人的抱怨得到了平息;
2、提供了一个负载匀衡的机制,可以指定服务器的负载量;
3、提供了一个改进的维护模式,当你要维护一台终端服务器时,你可以设置不允许新的用户登录,而只允许存在会话的用户,即便是断开,也可以成功连接,以便保存数据,最后会话注销。
但是如果你纯粹的使用Session Broker自带的这些功能配合DNS轮循做负载匀衡,你就会发现这样的一个问题,如果其中一台TS异常离线了,那么客户端就无法连接TS Farm中去了,主要原因是:
1、如果用户己经在一台TS服务器上登录过,那么他的这个会话信息将记录在Session Broker服务器的数据库当中;
2、当用户因为服务器离线时,用户试图连接断开的会话,结果是查询Session Broker服务器当中己经有一台服务器了,于是用户的请求将重定向到该TS服务器;
3、因为该TS服务器己经离线,而且是DNS轮循,客户端有缓存,那么用户的连接请求最终将以失败告终。
以上的这一些,都没有什么大的问题,问题就在于,如果有一台TS服务器离线了,是否有一种机制将这台TS服务器从session broker数据库中除名,以便不要影响用户的正常使用。
实际上Session Broker提供了这样的一种功能:
1、客户端连接TS farm,其中一台服务器TS1响应这个请求,客户端经过验证;
2、TS查询Session Broker服务器上的数据库,发现在另外一台TS2服务器上己经有了该用户的会话,就是请求重定向到TS2;
3、因为TS2己经是离线状态,客户端的连接等待也只能是等到白头,最终换来的还是TS2的无声回应;
4、此时,Session Broker就会启动一种ping的机制,去检测TS2是否响应,这个过程,默认会重复三次,三次以后,还没有响应,那么Session Broker就将TS2移出Session Broker的数据库。
5、当然,这个默认两分钟是可以调优,自己玩的,怎么玩,在Session Broker服务器上找注册表
HKLM\SYSTEM\CurrentControlSet\Services\Tssdis\Parameters
1、pingMode,这一个必须是0
2、TimeServerSilentBeforePing,在客户端的请求被重定向到TS2后,多少秒,开始启动ping机制;
3、TimeBetweenPings,每次ping多长时间;
4、NumberFailedPingsBeforePurge,ping尝试的次数;
参考文档
Session Broker Heartbeat Solution
原文:http://blogs.itecn.net/blogs/softice/archive/2009/09/16/ts-session-broker-ts-server.aspx