三层的问题 ( 积分: 100 )

  • 主题发起人 主题发起人 awfigsk
  • 开始时间 开始时间
A

awfigsk

Unregistered / Unconfirmed
GUEST, unregistred user!
我做了个中间层程序是放在应用服务器上,数据放在数据服务器上,数据服务器一重启,工作站再访问应用服务器就报数据库连接错误,我将应用服务器上的中间层程序也重新运行一下,工作站就访问正常了,这是为何?难道是数据服务器重启后,中间层程序就掉线,但是中间层也没有报错,对这种问题,如何解决?还请各位大富翁帮忙指点,谢谢!
 
scktsrvr.exe
 
是要重新运行scktsrvr.exe?也没用。我试过,只有重新运行中间层的程序。
 
没遇到过,关注一下这个问题
 
是这样的,其实中间层应该也断了,
 
有何办法在中间判断断线了,自动连上去?
还请指点,谢谢!
 
数据库都关了客户端报错正常,不报错还照样用才见鬼了,要非要自动连接那么试试看这个代码,中间层建议用DBExpress,比BDE,ADO快很多很多。
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if not ADOConnection1.Connected then
begin
ADOConnection1.Connected:= true;
ADOQuery1.Connection:= ADOConnection1;
DataSetProvider1.DataSet:= ADOQuery1;
end;
end;
 
设个timer,会不会太占资源?
奇怪的是,为何中间层中不会报错?我再去看看代码,是否有try..except。
先谢过!
 
别这样连,最好动态的创建连接,不会有这样的问题.
 
动态的创建连接,好象也有可能会出 现,我使用连接池时,也出现这种情况
 
你的ADOConnection1是否放在远程数据模块里面的,如果不是请将他放到这里面,然后客户连接时动态创建对数据库的连接就该不会有这样的现象了。
 
在ONexecutecomplete事件里面判断ERROR是否存在,如果存在,再判断它的错误代码是不是
断开,如果是,则关闭ADOCONNECTION,在ADOQUERY执行SQL的时候,它会自动重连
if assigned(error) then
if error.errornumber = xxxx then
connection.close;
自己测试看看错误代码是多少, 我的中间层就是这样改的
 
十分感谢各位大富翁热心帮助!
我再结合各位所指点的方法测试一下!谢谢!
 
后退
顶部