如何自動踢除SDE死連接
繼上次我們介紹了通過SDE服務(wù)直連Oracle數(shù)據(jù)庫的配置和如何修改SDE最大連接數(shù)后,本節(jié)我們主要介紹如何讓服務(wù)器自動踢除SDE死連接,希望能對您有所幫助。
一、設(shè)置TCPKEEPALIVE參數(shù)為TRUE
方法一:用PLSQL或TOAD打開SDE用戶下的表SEVER_CONFIG,編輯字段CONNECTIONS值為你的最大連接數(shù)。設(shè)置字段TCPKEEPALIVE值為TRUE。
方法二:打開SDE的安裝目錄下的(一般安裝路徑為C:\arcgis\ArcSDE\sqlexe\etc)giomgr.defs文件進(jìn)行編輯,設(shè)置CONNECTIONS參數(shù)為你的最大連接數(shù)。然后設(shè)置TCPKEEPALIVE參數(shù)為TRUE。 通過命令導(dǎo)入到數(shù)據(jù)庫中:sdeconfig –o import –f C:\arcgis\ArcSDE\sqlexe\etc\giomgr.defs –i esri_sde(數(shù)據(jù)庫實(shí)例名) –s (ServerName) –u sde(用戶名) –p sde(密碼) 。 設(shè)置好后需要重啟SDE服務(wù)才能生效。
二、設(shè)置KeepAliveTime參數(shù)值
在 Microsoft Windows 設(shè)置 KeepAliveTime 為 300000.
\HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\TCPIP\Parameters\KeepAliveTime.
If the如果這個注冊表鍵值不存在,則要自己創(chuàng)建這個值.
同進(jìn)這個時間指的是毫秒.
其中當(dāng)線程資料超過corePoolSize的值時,則線程時間超過KeepAliveTime的則自動斷開,KeepAliveTime=300000。
當(dāng)TCPKEEPALIVE參數(shù)設(shè)置為TRUE后,數(shù)據(jù)庫會根據(jù)SDE服務(wù)所在機(jī)器的注冊表項(xiàng)KEEPALIVETIME所提供的響應(yīng)時間, 不斷偵測所有連接是否為無效連接,如果為無效連接,則自動刪除該連接。 對默認(rèn)安裝操作系統(tǒng)的機(jī)器而言KEEPALIVETIME注冊表項(xiàng)是沒有的。 如果沒有話,服務(wù)器不會主動發(fā)送KeepAlive數(shù)據(jù)包來確認(rèn)空閑連接是否依然毫無變化。也就不會進(jìn)行刪除操作。 所以上面提到的無效連接會越來越多??梢栽谌缦侣窂街校篖ocal_Machine\system\CurrentControlSet\Services\Tcpip\Parameters 添加DWORD項(xiàng):KeepAliveTime。 如果不設(shè)置值的話默認(rèn)為兩小時。具體時間可以看情況而定。一般推薦為5分鐘。然后重啟機(jī)器(一定要重啟,注冊表的新加項(xiàng)才生效)。
關(guān)于SDE連接Oracle數(shù)據(jù)庫的知識就介紹到這里了,希望通過這幾次的介紹,能讓您對SDE連接Oracle數(shù)據(jù)庫的知識會有一個比較深刻的理解吧!您的收獲將是我們最大的快樂!
【編輯推薦】