datasnap xe连接池_DataSnap 连接池
二、?DataSnap連接池
連接池
http://docwiki.embarcadero.com/Libraries/XE8/en/Datasnap.DSSession.TDSSessionManager
http://docwiki.embarcadero.com/Libraries/XE8/en/Datasnap.DSSession.TDSSessionManager_Methods
TDSSessionManager::GetThreadSession()->Id
TDSSessionManager.GetThreadSession.PutData('userid', userId);
userId := TDSSessionManager.GetThreadSession.GetData('userid');
DSTCPServerTransport1
KeepAliveTime默認(rèn)值為300000,也就是300秒,KeepAliveInterval默認(rèn)值為100,這是啥意思呢。KeepAliveTime是sockfd最后一次通訊后,等待了的時間,如果300秒內(nèi)沒通訊,socket棧就自己開始發(fā)送心跳探測了,如果每次都沒回答,就每隔KeepAliveInterval毫秒問一次。至于問多少次認(rèn)為是網(wǎng)絡(luò)斷開了,根據(jù)Windows?OS來定的,windows?2000,?2003是5次,vista以后問10次。也就是說,根據(jù)TDSTCPServerTransport的默認(rèn)設(shè)定,網(wǎng)絡(luò)斷了,在win7上,要300+0.1*10,也即是301秒才知道網(wǎng)絡(luò)斷了。
OS的系統(tǒng)設(shè)定更長,沒數(shù)據(jù)通訊后2小時才開始探測,每隔1秒探測一回。
SIO_KEEPALIVE_VALS值Windows的OS獨有的,Unix還是用SO_KEEPALIVE。
跑題遠(yuǎn)了,回到正題。如何監(jiān)控Session呢,TDSSessionManager提供了方法給你插入監(jiān)聽事件。
TDSTCPServerTransport.poolsize屬性,默認(rèn)值是10,大家設(shè)置多少
TDSTCPServerTransport.maxThreads屬性,默認(rèn)值是0,表示線程池內(nèi)創(chuàng)建線程的個數(shù)不設(shè)上限
總結(jié)
以上是生活随笔為你收集整理的datasnap xe连接池_DataSnap 连接池的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《linux操作系统》第06章在线测试,
- 下一篇: 将搜索二叉树转换为链表_将给定的二叉树转