Midas服务器的稳定和连接数(300分)

  • 主题发起人 主题发起人 jeffzxc
  • 开始时间 开始时间
J

jeffzxc

Unregistered / Unconfirmed
GUEST, unregistred user!
我用D5开发了一个应用服务器,连接共享池为20个,我做了一个测试如下:
环境:康伯服务器,524M内存
测试1:250个客户端接入,每10秒访问两次数据库,(如果中间断链自动重新和服务器
注册建链)。测试结果:客户端开始都能正常运行,而且加入新的客户端注册
很快, 但是运行一段时间后,服务器端的socksvr.exe程序计数紊乱,user
显示不出任何当前连接,部分客户端程序异常出现读内存错误,但大部分客
户端是正常运行的。
测试2:100个客户端接入,每10秒从16万的数据表中读取不同的1000条记录,(如果
中间断链自动重新和服务器注册建链)。 测试结果:客户端开始都能正常运行,
但是运行一段时间后,服务器端的socksvr.exe程序挂死,所有客户端都无法
和服务器连接,也不能注册新的客户端。
问题:1、我发现运行一段时间后,客户端和服务器都会断链,为什么?
2、从以上两个测试结果看,似乎Midas服务器(socksvr.exe)稳定性很差,长
时间运行多客户端情况下根本不能满足要求。是这样吗?
3、客户端最大登陆个数和服务器的配置大概有怎样的关系,请有开发经验的朋
友赐教。
4、希望与有三层丰富开发经验的朋友建立联系,共同探讨此类问题我的E_mail:
jeffzxc@chinaren.com
 
Jeff:
你用的引擎是什么﹐如果是BDE是不好的﹐這東西有怪毛病,用ADO吧
>>连接共享池为20个
你用了MTS技朮么﹐如果是的話不應該有這種問題﹐如果你是自己寫代碼實現Pooling,
是Object Pooling還是Connection Pooling,Delphi自己的那個Demo只是大概的一個
Pooling的例子﹐所以才放在demo里的。要注意控制同時的連接數﹐并且經常釋放掉
不用的死連接

>>康伯服务器,524M内存
哈哈﹐我當初測試用HP的﹐2G內存﹐照死不誤
 
我在调试状态下进行跟踪发现,sql语句的执行乱了套了,明明执行了一条查询1000条记录
的操作,但返回的确是以前的记录.
socksvr中user显示的用户最新活动时间根本就不刷新.
朋友们快出售帮忙呀,我都快搞疯了,老板给的时间紧哪.
 
》sql语句的执行乱了套了,明明执行了一条查询1000条记录
注意到MIDAS 是无状态的,你使用了POOLing,你需要在取数据使reset,即总是从开始位置取。
参考:App_GetRecord 接口的说明。
 
哦,看来情况很严重哦,不知道用了DBExpress又如何呢.
 
to jeffzxc:
20个连接共享池(服务器socksvr.exe)你是如何做的?
Delphi自己的那個Pooling的例子用SocketConnection根本没法连接上去。
给个建议,我可以给分。
 
to jeffzxc:
用SocketConnection连接答案我已经找到了。
答案公布在(http://www.delphibbs.com/delphibbs/DispQ.asp?LID=294601)
现在你这个“Midas服务器的稳定和连接数”问题解决没有?可以继续讨论。
有满意的答案,我继续加分。
 
問題
1.加一個session為每一次請求建立一個單獨進程!
2.不是;在後台的datamodule的
initialization
TComponentFactory.Create(ComServer, Tpp,
Class_pp, ciMultiInstance, tmApartment);
刪除tmApartment這一項) 這樣只要你的服務器內存夠大跑多少個client端都沒問題!
3.跑一個client端佔用sever一部份內存!
 
服务器内存耗尽。
服务实例清除有问题。
 
Alongsun@sina.com
 
我在用BCB5做多层结构系统时,我在Server端加入了一个取得服务器IP地址的方法:GetServerIP它的参数是vIP:Variant *,IN方式,并在服务端实现了这个方法,
加入的代码如下:
*vIP="192.168.0.01";最后我注册成功。
可是在我开发客户端程序时,我用TSocketConnection
当取得它的服务时我是这样做的:
Variant* vip;
SocketConnection1->AppServer.GetServerIP(vip);
Edit1->Tex=vip;
可 是我在运行程序时出错,没有编译通过。
它说getserverIP不是variant的成员
getserverIP is not a memober of variant
请问?
我该如何去调用这个方法呢?
请各位大侠多多指教?
小生的QQ:65466700(24小时在线恭候)
MAIL: alongsun@sina.com
 
我也遇到了两同的问题。
1/这种情况一定会发生。
2。通过优化数据传输,减少网络连接次数,减少调用次数,减少频繁调用。
3。我试过如果服务器断用tsession,有人异常断线后连结释放不掉。我加入定时器每次
远程数据模块建立时开始计时,不过好像不好用,可能要在线程中动态建立的好。
4,我觉得程序优化这是和两层共同的,其次考虑异常继线资源的释放
 
后退
顶部