三层中客户端闲置时处于死机状态,希望各位进来讨论(150分)

  • 主题发起人 主题发起人 ribuluo
  • 开始时间 开始时间
R

ribuluo

Unregistered / Unconfirmed
GUEST, unregistred user!
我们用的是三层结构,中间层用的是Borland Socket Server。
数据库服务器及中间层放于托管服务器中。
而所有客户端都通过网络连接中间层服务端。
但目前有些客户端,如果一段时间(大约20分钟以上)闲置没有使用,
即没有鼠标响应。过一段时间后,要再来使用客户端,则出现客户端死锁的情况。
一般地,点击某个界面,界面就变白,且无法恢复。
非得结束任务,重新登录才行。现在这种情况比较频繁。
而在局域网内无论闲置多长时间,都不会出现这种问题。
是不是socket的问题?
找了很多资料,都没有比较完整的答案。
请问哪位有碰到这种问题,并且有比较好的方法?
都来讨论一下。谢谢。
分不够再加。
 
希望大家踊跃发表自己的看法。
 
应该不是,我也是这么用的,也是在广域网
中间层死锁,一般是数据库死锁,查查你的数据库,
有没有要定时执行一些存储过程或者其他的什么
在广域网因为网络情况没有局域网理想,所以会出现某些程序不
能成功执行(是不是这个原因呢)
或者是(有事,下次再谈)
 
是客户端假“死”,
中间层并没有死。
持续操作的话,没有任何问题。
只有闲置一段时间,再次操作,才有可能出现这个问题。
而且在我这边的编译环境连接客户的中间层,基本上不出现这种情况。
 
会不会是闲置一段时间后,服务器就自动断开客户端的连接,然后客户端在用时就死在那里了
 
to qizhao_2001,没有你说的这种情况。
 
大家继续本话题讨论!!!
 
应该不会死。
你用我的Demo测试一下。。。
三层分布式数据库海量查询MidasDemo 2.0下载
这是个三层分布式海量数据库查询的Demo。
后端采用dbexpress,前端采用TClientDataSet。
注意此Demo还展示了一个通用查询!
MidasDemo 2.0
Change Log
修改了数据生成方式,改为直接在服务端生成,速度很快。
另外增加了数据生成时间的计算,以及查询所花的时间。
http://greengrass.edu.topzj.com/thread-11417-1-1.html
http://greengrass.edu.topzj.com/thread-11418-1-1.html
 
现在不是应该不会死,而是事实上死了。
闲置一段时间才会,持续操作不会。
TKS,我的例子我会看看。
 
你是不是用了nt service?
 
to easykoala,
nt services?你指什么?
 
设置Borland Socket Server的Inactive Timeout属性为0表示不超时
.Inactive Timeout就是多少時間後(好像是分鐘)客戶端沒有發出信息就斷開連接,這個很有用,可以清除一些“死連接”,例如,連接著的時候撥網線就會有一定機率出現服務器還在連接,但客戶端已經斷開的現象。
 
to chen_liang,你讲的情况我已经注意到了。
我现在那个timeout也是0.表示无限制。是以分钟为单位的。
请大家继续。
 
顶,
关注这个帖子,我也遇到类似这样的情况,环境和楼主的类似,只是我是在本机调试的时候就遇到客户端闲置时间长了就处于死机状态......
 
那你有找到相关的解决办法吗?
 
那你就加个timer 让他每10分钟和中间层进行一次交互吧
 
希望有更好的办法。
并且能得知问题的根本的原因。
 
周末了,大家再说说看法,就可以回去好好休息了。
 
人气不行啊。
可以设置inactive out属性值为一个较小的值。
单位为分钟。
这样在设置的时间内,客户端如果没有响应,
中间层就会清理出该连接。
试试。
 
试了一下,治标不治本。
谢谢。
结贴了。
 
后退
顶部