问题:我打算两台机器分别放一个Scktsrvr,其中一台机器IP1装数据库1,另外一台机器IP2装数据库2,用DELPHI6做一个程序Test,把数据库1的某些数据导入数据库2。实践:我把一个Scktsrvr、数据库1、数据库2装在同一台机器IP,程序Test也写数据库1、数据库2均在其上,没有问题;但程序Test若写数据库1、数据库2分别机器IP1,机器IP2,则弹出对象不合法(E文)声明:1:与网络、路由无关;
2:开发环境:WINDOWS 2000 SERVER+SQL SERVER2000+DELPHI6.0
2:开发环境:WINDOWS 2000 SERVER+SQL SERVER2000+DELPHI6.0
这时候的test在那里(同一台机器上)?
我建议首先检查配置的问题。我曾经也是使用scktsrvr。但是因为杀毒软件等问题,没有搞定(如果没有杀毒软件则没有问题。)
在看看你作为服务器的软件有没有问题。我觉得可能服务器端或客户端少了那个dll文件。
问:test在那里?
答:同一台机器上
不可能。
在一个Scktsrvr、数据库1、数据库2装在同一台机器IP上,配置数据库1、数据库2使用同一个IP,没有任何问题。
我再重申一下,我在两台机器都启动Scktsrvr,并且其中一台装数据库1,另一台装数据库2,程序Test若写APP_IP:192.168.0.5,
MANAGE_IP:192.168.0.13则弹出对象不合法(E文)
----------------------------------------------------------------
原贴内容:
scktsrvr设置问题请赐教:客户端5至7个,我应如何设置thread cache size和timeout值,
附应用环境
windows2000+sqlserver2000+应用服务器程序+客户端应用程序以前应用程序在
thread cache size:10
timeout:0
当记录数达到300条时各客户端应用程序运行相当缓慢,为了提高速度参考网上相关贴子设置如下:
thread cache size:20
timeout:30
不料,运行效果反而大不如前.如莫名出现ERROR:read socket error之类的错误,这些好在没有影响正常使用,但要命的是速度不仅没有提升,而且出现有些客户端根本启动不起来!!!!
ScktSrvr程序的线程池的数量。
Timeout
ScktSrvr中一个客户端如果Timeout分钟没有响应的话,则关闭这个连接。Default: 0,是说没有限制时间
你的客户端的运行效果和你的程序有关,我不清楚你的程序是怎么运行的,所以也没法说的清楚。因为我看N多人也是用MIDAS技术,客户端的数量比你的要多,但好像也没这个运行效果缓慢的原因。
前段,有一个数据库的库,有6W条数据,也不算多,因为没有加索引,所以N慢无比,后来加了索引后,N快无比,看看是不是数据库的问题。"read socket error",是TSocketConnection在ScktSrvr中断开你的连接所触发时发生的错误。它是消息异步,所以try不了,可以通过继承TSocketConnection.DoError(protected)方法也取得。
TSocketConnectionEx = class(TSocketConnection)
protected
procedure DoError(E: Exception); override;
end;procedure TSOcketConnectionEx.DoError(E: Exception);
begin
if E is ESocketError then
E.Message := 'Socket出现错误,请尝试重新启动程序。';
inherited DoError(E);
end;