目前在做一个管理系统,采用三层结构,客户端采用SocketConnection,差不多有10几台客户端在使用系统。
每次在客户使用一段时间之后,就会出现客户端退出后即无法连接服务器,新的客户端也无法连接服务器,会出现无限时间等待,但如果已经连接上的客户则可以正常使用。
重启服务器之后又可以,但一段时间之后又会出现相同的问题。并且非常频繁,差不多每天都会有相同的问题?请问如何解决?
每次在客户使用一段时间之后,就会出现客户端退出后即无法连接服务器,新的客户端也无法连接服务器,会出现无限时间等待,但如果已经连接上的客户则可以正常使用。
重启服务器之后又可以,但一段时间之后又会出现相同的问题。并且非常频繁,差不多每天都会有相同的问题?请问如何解决?
解决方案 »
- 请帮看下代码是那里出了问题
- 一个关于ReportMachine的简单问题
- 如何在客户端更改SQL Server 端的密码?
- 菜鸟的问题
- 谁有消息详解
- 请问Windows XP“发现新硬件”那种冒泡式提示怎样做?
- Delphi 6 的Corba开发问题
- DELPHI6写完了程序,用什么做安装程序??
- 感谢copy_paste(木石三)的帮助,给30分,还有个问题server name和hostname该如何用程序求出来?
- 关于数据库应用程序的安装
- 年终放分了,散进所有分.
- 我都要疯了,三层,客户端clientdataset+dbgrid, 在编辑dbgrid时,修改记录后,老出现:“Trying to modify read-only field”
应该不是SocketConnection的问题,如果某个客户端没有退出,则可以正常使用。但新的客户端却连接不上!觉得非常奇怪!
你的远程数据模块的DataSet是不是在设计期就是打开的?如果是,把它们全部关闭,客户端连接后,存取数据时它们会自动打开的。是不是这个原因导致连接不能释放?
1:所有的客户端连接都共享一个数据库服务器连接
2:数据库连接和数据集元件均采用ADO
3:所有的远程数据模块的DataSet都是用完后立即关闭的!
==================================================================================
很难说,你可以在应用服务器上临时加个Label显示用户连接个数,每次用户连接和退出看是否有变化
怀疑是TCP的连接没有正常关闭
正常情况哪此原因会造成相关方面的问题呢》?麻烦各位高人指点一二!
--------------------------------------------------------------------------
这种问题基本不存在!这几天都在加夜班到3-4点钟啊!
上天给我的时间真是太少了!真诚希望各位兄弟能给点在解决相关问题中的一些经验?
我会很快结贴的!先谢了!
那个10是线程池大小。
我今天现场跟踪发现,某个客户端退出之后,在应用服务器中的远程模块已经释放,
但是在Socket Server中的Users连接仍然存在!不知是何原因?据目前的情况来看,造成客户端无法连接服务器应该是这个原因造成?
但是为什么客户端退出后,应用服务器中的远程模块已经释放,而Users中的连接仍然存在呢?
会不时的弹出“连接忙不能执行其它命令”
我在跟踪服务器的过程中,发现了一个问题:服务器跟踪过程中,会造成所有客户端不能正常使用,我会任务管理器强行退所有客户端!
这时就出现了与客户端相同的情况:所有客户端在应用服务器中已经注销,
可在Socket Server中,所有的连接都没有Disconnet掉!然后新的用户应不能再登陆了!可为什么在实际应用中,为什么也会出现这样的情况呢!如果不是在服务器跟踪过程中,则运行很长时间都没问题,只是会不时的弹出“连接忙不能执行其它命令”,不影响服务器和客户端任何操作!
-------------------------------------呵呵,那我还不如用二层呢!问题的关键应该不是出在这里!关于弹出的提示,客户端系统都可以解决掉,关键是客户端不定时的不能连接服务器的问题!
2.源程序端会有多大的改动,因为这个系统算是一个中型的系统了!
她关系到企业的大部分部门,十几个主模块(上百个子模块)的生产型企业应用实时管理系统。
3.当初选用SocketConnection时,主要考虑的是客户的老板需要远程访问(通过ADSL远程访问)所有目前时间上也不允许采用DCOM了!目前我正在分析socket的源程序,希望能找出解决的办法!在其中我有查到,如果应用服务器端如果是一个以上的CPU的,好像会出问题的!
而且我现在客户的服务器也正好是双CPU的!会不会真的是这个原因造成的呢!
呵呵,不行的话,让他们加一台应用层服务器试试,与数据库服务器物理分离!我会急时的发布解决问题的过程!如果大家有兴趣的话,可以多来这里坐一下!
而且周末还得回一趟老家(家里有事要办),弄得没办法向客户交待啊!
明天去买Delphi2006试试!
今天才赶回来,先把贴结了吧!
目前,应该说不是ScktSrvr的问题了,经过这段时间来的检查,
还是我的服务器这边的程序设计上有点BUG,主要是集中在客户端的数据批量提交上!
如果我们在本身程序设计上,对数据的处理比较完善的话,数据的传输执行效率还是比较不错的!