试试在BeforeDisconnect事件中重新连接

解决方案 »

  1.   

    数据库连接断了,在BeforeDisconnect事件中重新连接。
    如果这样也不行,就加一个时间控间,定时连接。
      

  2.   

    我在AFTERDISCONNECT事件中加了重新连接代码,但是还是没用。我认为是中间层服务的问题,因为出现这种情况后重新在设计状态连接中间层都连接不上,这时应该还没有连接数据库吧,好像是中间层实例根本没办法激活,找不到这一服务了。各位老大,请继续指教,多谢多谢!!!!!
      

  3.   

    看看有没有进入 TCorbaConnection 的 BeforeDisconnect 事件,重新连接如果还是连接不上,那就是中间层的问题了。也有可能是中间层因为连接不上数据库使客户端产生异常。把中间层的数据库连接组件的 KeepConnection 属性设置为 True 再试试
      

  4.   

    所有方法都试过了,不行啊。各位有没有发现,DELPHI自带的例子都有这样的问题呀,中间层服务如果采用多实例的话没问题,一切正常,但是如果采用共享实例就不行了,大概隔十多分钟就不行了,具体测试方法:启动中间层服务,运行一下客户端检查有无问题,关闭客户端,等待大概15分钟时间,重新运行客户端,这时就会发现客户端程序无法连接中间层了。绝对不是数据库连接的问题,我作了一个完全不连接数据库的中间层,只提供一个方法,结果还是一样。症状表现就是中间层服务没法激活了,跟踪也没法进入中间层。
    再解决不了,我们就要翘翘了,高手高手快来!
      

  5.   

    一般网络连接都有个超时时间,到了以后SOCKET会自动断开,做个时钟在空闲时发请求就可以了
      

  6.   

    这个问题最后都没有解决,我咨询了DELPHI广州、北京技术支持到现在都没有下文,我认为这是DELPHI对CORBA支持的问题,要不DELPHI7中完全不支持CORBADATAMODULE了呢。现在我们已经改为使用IDL的动态方法,效果不错,速度比以前要快很多,而且很稳定。这个帖子就这样结了吧,见者有份!