当前位置:主页>仓库管理软件> 列表

各位,ScktSrvr.exe的问题,有什么办法么? 找商品库存管理软件

销售管理软件版1楼: 因为Dcom发布时候比较麻烦,相信很多人都选择了使用Socket的方式。
但是,用Socket的话,就要运行ScktSrvr.exe
ScktSrvr.exe真的是一个会找麻烦的家伙,每隔几天就罢工一次。
特别是当在线用户超过200的时候,ScktSrvr.exe一定会挂掉。
后来,把用户分区,搞两台机器运行ScktSrvr.exe,但是运行时间长了,还是一样会死掉。
我用的是D2006自带的ScktSrvr.exe 超时时间设定为10分钟。

对于这样的问题,有什么好的解决办法么?

2楼: 可以采用其他Midas控件,第三方的控件有很多,如’阿思塔‘ 如p3管理软件上机练习

3楼: 看看一些 如财务软件

4楼: 你用什么操作系统做服务器?

5楼: 服务器是win 2003 单cpu 1G内存

6楼: 正常时候的CPU,内存的早用率很正常。但是某个时候ScktSrvr就停止响应了。重新启动它又可以正常工作。

销售管理软件版7楼: 也许改用Asta会是一个好方法,我测试一下。

8楼: 一般来说同时在线用户超过200个的话不适合使用scktsrvr的了,因为它为每个连接启动一个服务线程,而windows对一个进程内的线程数有一个限制,超过这个限制则会导致进程崩溃,这个限制大概就是200多一点。


你可以尝试一下设置负载平衡,拖一个tsimpleobjectbroker控件到socketconnection所在的容器,设置一下它的objectbroker属性。
至于这个负载平衡管不管用,我不得而知,因为我也没有用过。

9楼: 现在是分区了,每个连100个,情况好点没那么容易死了,但是也还是一样会死掉。
所以估计用了负载平衡以后,也好不到那里去。

10楼: 你到http://www.2ccc.com/article.asp?articleid=1665下载那个Borland Socket Server的补丁试试,我对照过D2006和这个补丁的修改的部分,D2006绝大部分已经按补丁的方法修复了,但超时那里好像还没有按照补丁的方法修改过,试试加上超时的限制

11楼: 关注,我正在开发的系统用的也是socket server。还没开发完,不知效果如何?

12楼: 怕什么,再做个小程序,只干一件事,每天没人的时候把那个ScktSrvr.exe给KILL了,然后再启动这个程序就行了,要不写到程序中去也行 如商品库存管理软件

13楼: D2006的那个,当超时时,会把超时的连接踢掉的。
D2005的不会踢掉。这个前段时间做过测试。

销售管理软件版14楼: asta效果要好些,但对程序要改动挺大,如果你已开发完成了的话。

15楼: 我用asta3做了一下测试。
我继承了一个的线程类来做测试,里面建立一个TAstaClientSocket,一个TAstaClientDataSet对象,线程事件中,每隔1秒去读10条数据回来。
我建立了10个这样的线程做测试,服务器使用Asta知道的ADO服务器。
但是,我运行我的代码的时候它报一个SmartWaite的异常,说应该在主线程里面进行同步。
于是我,修改了一下我的代码,通过主线程同步调用我的线程函数。但是程序一运行,服务器就死锁了。
有没有朋友对Asta做过测试,测试代码应该这么写?
线程的代码。

procedure TAstaTestThread.Execute;
begin
{ Place thread code here }
while True do
begin
Sleep(3000);
Synchronize(GetDate);
Sleep(100);
if not Active then
Break;
Sleep(100);
end;
end;

取数据的函数

procedure TAstaTestThread.GetDate;
begin
FDataSet.Close;
FDataSet.SQL.Clear;
FDataSet.SQL.Add(''SELECT TOP 10 * FROM bb'');
if Active then
FDataSet.Open;
end;

16楼: 听扩种。。。。

17楼: 结帐了。

18楼: 多人接受答案了。