客户端非正常断线,服务器的资源释放问题(200分)

  • 主题发起人 主题发起人 apiao
  • 开始时间 开始时间
A

apiao

Unregistered / Unconfirmed
GUEST, unregistred user!
有一分层系统,下有四个客户端。由于通讯原因经常非正常断线,而服务器端好像监测不到
客户端的断开,资源得不到释放,将服务器的CPU资源占到99%,系统反映极慢。不知如何
解决。
1,怎样监测客户端的非正常断线。
2,怎样释放服务端相应的资源。
谢谢 ,分不够还可以在加
 
如果用的是dcom,好像有自动扫描的属性。
如果不是,可以试者一段时间扫描一下。
 
http://www.borland.com.cn/support/
 
to sword_liu:
是DCOM,请问如何实现。
to Chenlili:
请问上面有答案吗?,我没找到。
 
如果是dcom,好办啊。可以限制阿adoquery的commandtimeout=30,然后再函数体加上
try
.....
(原函数)
setcomplet;
except
setabort;
raise;
end;
然后再检查一下可能走不到except中的语句,加判断:
if ....=false then

begin
...
setabort
raise;
end;
 
客户端定时发送特定消息...服务器段监测, 如在规定时间内接收不到, 则认为断线.
 
to LiZhongYu:
你的方法好像是在客户端实现的,可我想让服务器知道下面的客户端是否非正常断开。
另:ADOQuery是在远程数据模块上吧,客户端能用吗?
to tseug:
你的方法值得一试,成功后一定加分。
但是:服务器知道后如何释放相应客户端的资源呢???????
 
如果用socket做聯接的話
可以設定用戶在多長時間內沒對后台進行操作則段開聯接![:D]
 
定期往服务器发送字节,如果服务器长时间检测不到,说明断线
 
可是如何在服务器将为这个客户端建立的资源释放掉??????
 
有没有谁做过这方面的程序呀,可以拿出来,大家参孝一下好吗??
zcm1975117@21cn.com
 
唉,是比较难。看了以前的贴子,大多是不了了之。。。
这个问题让用户十分恼火,我的手机费也蹭蹭往上窜[:(]
 
诊断客户端是否在线:客户端定时发送信息给服务端
清除实例: 执行 YourServerSkeleton._release
 
to qiu_peking:
清除实例,您能说细一点吗? 谢谢
 
在XXX_TLB.pas文件的TYourServerSkeleton中建立定时检测功能,一旦检测到客户端断线了就
清除自己_realise。
 
to qiu_peking:
不好意思,我知道如何检测客户端断线了,可是如何清除自己?烦请您写几行代码吧
 
现在不是在力争无状态吗? 为什么还会有这样的问题?
 
to wlmmlw:
我也想这么作。但有几个问题:
我的客户端访问十分频繁,主要是实时更新数据。建立连接是不是耗费时间。
如何建立无状态连接,断开连接后如何释放相应的资源!!!由转回我的问题上了[:(]
 
无状态连接不需要释放相应资源,因为都是公用资源,根本没有资源可放。
如果不是无状态就要,DCOM的释放我不知道,CORBA的我倒会一点。
 
后退
顶部