請問要如何實做將死掉的Session Free掉 |
缺席
|
frappe
中階會員 發表:88 回覆:114 積分:95 註冊:2008-10-21 發送簡訊給我 |
|
frappe
中階會員 發表:88 回覆:114 積分:95 註冊:2008-10-21 發送簡訊給我 |
|
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
詳見:Monitoring and Controlling DataSnap TCP/IP Connections - Detecting Graceless Disconnects
===================引 用 frappe 文 章=================== 最近在導入DataSnap發現一個問題, 中間層可能存在死掉了Session, 但該Session ServerMethods上面的TSQLConnection仍然與資料庫連線, 導致我在SQL Server的sp_who2查到一些不應該出現的連線 請問DataSnap XE要如何知道中間層產生了幾個TServerMethods, 並且有辦法把死掉的Session, 將他的ServerMethods Free掉嗎? |
lin
一般會員 發表:1 回覆:12 積分:7 註冊:2002-09-04 發送簡訊給我 |
uses
IdTCPConnection,IdWinsock2,IdContext procedure TServerContainer1.DSServer1Connect(DSConnectEventObject: TDSConnectEventObject); var Val: TCP_KeepAlive; Ret: DWord; ClientConnection: TIdTCPConnection; begin ClientConnection := TIdTCPConnection(DSConnectEventObject.ChannelInfo.Id); Val.OnOff := 1; Val.KeepAliveTime :=3000; Val.KeepAliveInterval :=3000; if WSAIoctl(ClientConnection.Socket.Binding.Handle, IOC_IN or IOC_VENDOR or 4, @Val, SizeOf(Val), nil, 0, @Ret, nil, nil)=SOCKET_ERROR then begin; DSConnectEventObject.DbxConnection.Destroy; Exit; end; end; //網路 client 掉線後 3秒,會清除
------
林 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |