急救:三层结构中,客户端退出后即无法连接服务器

cimssoft 2006-12-21 07:06:32
目前在做一个管理系统,采用三层结构,客户端采用SocketConnection,差不多有10几台客户端在使用系统。
每次在客户使用一段时间之后,就会出现客户端退出后即无法连接服务器,新的客户端也无法连接服务器,会出现无限时间等待,但如果已经连接上的客户则可以正常使用。
重启服务器之后又可以,但一段时间之后又会出现相同的问题。并且非常频繁,差不多每天都会有相同的问题?

请问如何解决?
...全文
596 46 打赏 收藏 转发到动态 举报
写回复
用AI写文章
46 条回复
切换为时间正序
请发表友善的回复…
发表回复
cimssoft 2007-01-14
  • 打赏
  • 举报
回复
ScktSrvr的Fix后的版本是可以使用的,采用SocketConnection连接的技术还是比较成熟的!大家可以放心使用!
如果我们在本身程序设计上,对数据的处理比较完善的话,数据的传输执行效率还是比较不错的!
cimssoft 2007-01-14
  • 打赏
  • 举报
回复
上次走得太匆忙了!没能急时结贴!
今天才赶回来,先把贴结了吧!
目前,应该说不是ScktSrvr的问题了,经过这段时间来的检查,
还是我的服务器这边的程序设计上有点BUG,主要是集中在客户端的数据批量提交上!
cimssoft 2006-12-29
  • 打赏
  • 举报
回复
oh!上帝,祝我好运吧!我实在是受不了!
cimssoft 2006-12-29
  • 打赏
  • 举报
回复
我现在用的都是Delphi7的了,而且ScktSrvr都是Fix后的版本,但还是不行!
明天去买Delphi2006试试!
9807146wang 2006-12-29
  • 打赏
  • 举报
回复
楼主QQ是多少,希望和你交流一下。多谢了。我的是310076689;
ycl6040862 2006-12-28
  • 打赏
  • 举报
回复
老版本的 Scktsrvr 是不支持多CPU的,换个高点版本的 Scktsrvr 就可以了.
踢踏 2006-12-28
  • 打赏
  • 举报
回复
我现在也碰到Scktsrvr的问题,跟楼主有点不一样。

可能跟双CPU有关系,可以先用普通的机器充当一下应用服务器,进行测试
cimssoft 2006-12-27
  • 打赏
  • 举报
回复
我也希望能尽早解决这个问题!同时也谢谢各位指点!

周末要回一趟安徽老家了,很想女儿了!呵呵,题外话!
也快要到元旦了!提前祝兄弟姐妹们新年快乐,身体健康!年底分红不要手软哦!呵呵!

周末前结贴!
cimssoft 2006-12-27
  • 打赏
  • 举报
回复
不知谁有Delphi2006的SockSvr.exe的执行文件和相关源程序,可不可以发给我一份!

真的是太急了!我也没有Delphi2006!这几天一定要解决这个问题啊!都拖了几个星期了!
而且周末还得回一趟老家(家里有事要办),弄得没办法向客户交待啊!
madyak 2006-12-26
  • 打赏
  • 举报
回复
好象双CPU是有问题,网上有专门修正过的版本
cimssoft 2006-12-26
  • 打赏
  • 举报
回复
1.换DCOM不知能带来多大的问题,我也没测试过
2.源程序端会有多大的改动,因为这个系统算是一个中型的系统了!
她关系到企业的大部分部门,十几个主模块(上百个子模块)的生产型企业应用实时管理系统。
3.当初选用SocketConnection时,主要考虑的是客户的老板需要远程访问(通过ADSL远程访问)

所有目前时间上也不允许采用DCOM了!

目前我正在分析socket的源程序,希望能找出解决的办法!

在其中我有查到,如果应用服务器端如果是一个以上的CPU的,好像会出问题的!
而且我现在客户的服务器也正好是双CPU的!会不会真的是这个原因造成的呢!
呵呵,不行的话,让他们加一台应用层服务器试试,与数据库服务器物理分离!

我会急时的发布解决问题的过程!

如果大家有兴趣的话,可以多来这里坐一下!
阿发伯 2006-12-26
  • 打赏
  • 举报
回复
我刚开始回复就说过,我以前碰到过这种问题,改用DCOM连接就好了,现在看来,应该还是这个问题,还是改DCOM吧!
耙子 2006-12-26
  • 打赏
  • 举报
回复
socketconnection 本来就有原代码的。
hydonlee 2006-12-26
  • 打赏
  • 举报
回复
SocketConnection有BUG...不建议用了.

我公司在用的当时居然是问 borland拿到源码后自己处理的...来解决连接后不能再连接的问题.

用COM+吧.
cimssoft 2006-12-26
  • 打赏
  • 举报
回复
回复:madyak(无天) 把ADOConnection放在远程数据模块上
-------------------------------------

呵呵,那我还不如用二层呢!问题的关键应该不是出在这里!关于弹出的提示,客户端系统都可以解决掉,关键是客户端不定时的不能连接服务器的问题!
madyak 2006-12-26
  • 打赏
  • 举报
回复
把ADOConnection放在远程数据模块上
cimssoft 2006-12-26
  • 打赏
  • 举报
回复
呵呵,是啊,急啊!今天我在本地测试的时候发现了一个问题!

我同时开启了10几个测试程序,用定时器向服务器数据库表中插入一条记录!
会不时的弹出“连接忙不能执行其它命令”
我在跟踪服务器的过程中,发现了一个问题:

服务器跟踪过程中,会造成所有客户端不能正常使用,我会任务管理器强行退所有客户端!
这时就出现了与客户端相同的情况:所有客户端在应用服务器中已经注销,
可在Socket Server中,所有的连接都没有Disconnet掉!然后新的用户应不能再登陆了!

可为什么在实际应用中,为什么也会出现这样的情况呢!

如果不是在服务器跟踪过程中,则运行很长时间都没问题,只是会不时的弹出“连接忙不能执行其它命令”,不影响服务器和客户端任何操作!
阿发伯 2006-12-26
  • 打赏
  • 举报
回复
楼主还没搞定阿!改用DCOM连接试试。
cimssoft 2006-12-26
  • 打赏
  • 举报
回复
兄弟们,很急啊!客户哪里基本每天都会出现这种情况!实在是受不了了!
早知道三层这么多问题,当初用两层就好了!

可我们应该多扩展一下自己知识!三层毕竟有它很多优越的地方吧!

可现在这种情况,实在是让人受不了!
BES 2006-12-25
  • 打赏
  • 举报
回复
估计最大的可能是你的Socket Server代理服务器的配置出了问题

一般来说Socket Server的默认端口是211,而且允许的最大连接数是10,请将它(Thread Cache Size 这一栏代表最大允许的客户端连接数)改大一些如200,然后Apply一下
加载更多回复(26)

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧