三层客户端死机(不定期无响应)的问题 ( 积分: 200 )

  • 主题发起人 主题发起人 fccu
  • 开始时间 开始时间
F

fccu

Unregistered / Unconfirmed
GUEST, unregistred user!
现在正在做一个三层结构的应用系统,出现一个很奇怪的现象!
客户端不定期出现无响应情况!
通过跟踪到的SQL语句来分析,中间层服务器已经将取得数据的所有SQL语句执行完毕,但客户端却停止响应!
并且还有一个更奇怪的现象!
在经常出现客户端无响应的机器上,安装一个delphi开发环境,在编译情况下运行该客户端程序,始终出不会出现无响应情况,而直接运行刚才编译的程序,则又会出现无响应的情况出现!
各位大侠有没有遇到过类似的情况,怎么解决的?
开发环境,delphi6.0 + MS-SQL 2000 + Socket通信!
服务器为单CPU,直接用delphi自带的Socket Server!
 
现在正在做一个三层结构的应用系统,出现一个很奇怪的现象!
客户端不定期出现无响应情况!
通过跟踪到的SQL语句来分析,中间层服务器已经将取得数据的所有SQL语句执行完毕,但客户端却停止响应!
并且还有一个更奇怪的现象!
在经常出现客户端无响应的机器上,安装一个delphi开发环境,在编译情况下运行该客户端程序,始终出不会出现无响应情况,而直接运行刚才编译的程序,则又会出现无响应的情况出现!
各位大侠有没有遇到过类似的情况,怎么解决的?
开发环境,delphi6.0 + MS-SQL 2000 + Socket通信!
服务器为单CPU,直接用delphi自带的Socket Server!
 
这个就怪了,你有没有在客户端放一个midas.dll的文件
 
TO:delphigbg
有呀。
 
用SocketConnection的确会有这种情况,偶认为是Socket Server的Bug.
 
我也正想把ScktSrvr集成到应用服务器中去,请问有没有修改的成功案例参考一下?
 
手工启动scktsrvr.exe,不要在服务中启动
 
看看我写的三层程序,有源码,也许有点帮助。
www.startor.cn
 
我也遇到过这样的问题,最后用一个意外的办法解决的
把服务器程序和sql server分在两台机子上面就解决了
你试试,肯定可以
 
TO:xianguo
在客户的服务器里手工启动ScktSrvr,好像不大可能实现。
因为客户如果意外重启了电脑而没有手工启动ScktSrvr的话,客户端就用不了。
 
TO:victor_zh
今天我们公司集中精力测试了一下,
不管应用服务器和数据库服务器是否在同一台电脑上,客户端都不会死机。
但在客户那里却意外的出现了死机,而客户只有一台服务器,其他电脑不会固定开着,不好做为应用服务器。
 
客户的电脑重新安装操作系统试验一下,不知道是什么东西作怪只有这么办了
 
我就是这么做。
开始的时候也是手工启动,挺正常的;后来嫌麻烦,改成启动服务的方式,老出毛病;再后来只好改回”自动启动“方式:
1、将ScktSrvr.exe写到注册表的run里
2、修改注册表,系统重启时自动登录
 
运行 scktsrvr /install 将它注册成2K的服务,开机即可启动。不用改注册表那么麻烦。
用了几年,从来没出问题。
 
TO fccu
公司测试时,是否真正模拟了客户的实地环境,比如服务器配置、客户的真实数据等等。
 
TO fccu
1。公司测试时,是否真正模拟了客户的实地环境,比如服务器配置、客户的真实数据,
还有客户操作程序的频度(会造成多个客户端同时提交)
2。是否提交大数据量(包括多个客户端同时提交),
传送致使Borland Socket Server堵塞致死!
3。可以查证一下,当程序出现无响应情况时,数据连接是否断了。
 
可能内存有问题,建议换
 
我在调试程序时也发现,用编译环境没有问题,但同一台机器在可执行时,就会有问题的现象。后来看了一下代码,代码中也确实是有问题的,但始终不明白为什么在编译环境就没有问题。
 
这个问题我前不久刚遇到过。。
解决如下。
将midas.dll与客户端.EXE放在一起
在客户端注册midas.dll
在运行那里键入命令:regsvr32 路径/midas.dll
 
试试TMultiProcess
下载地址:
http://free2.savalo.com/def
 
后退
顶部