关于oracle数据库的重连问题,150!!(150分)

  • 主题发起人 主题发起人 cken
  • 开始时间 开始时间
C

cken

Unregistered / Unconfirmed
GUEST, unregistred user!
我正在用delphi编一个oracle7.3的客户端程序,用Tdatabase保持与数据库的
永久连接,保证程序能24 X 7的连续运行,我发现当在数据库服务器上关闭数据库后,Tdatabase无法产生OnDisconnect的事件,此时,Tdatabase的active依然为TRUE,但进行数据库操作则会产生异常(TDBEnegineError),问题是如何知道数据库失效,能在程序中隔一段时间自动重连,不需要人为干预?
1>我的程序如果用数据库操作,必须在给定的时间里给客户回应,否则即使
服务端成功了,客户也会认为失败.有数据库操作时在重连,晚了!
2>如何判断bde状态,好像即使oracle关闭,bde也是正常的,只有进行具体操作时,才返回错
3>我曾经想过用两个Tdatabase,其中的一个用一个单独的线程来控制,如果这个线程发现它的Tdatabase不能连接数据库(通过简单的数据库操作),则主程序也不能正常连接,他就会去重新连接主程序中的Tdatabase,但是好像解决的不是让人很满意.

 
两个建议供参考:
1、捕获异常(TDBEnegineError),给用户提示的同时,
再次进行数据库连接;
2、使用Tsession组件来保持数据库连接如何?(具体
使用办法我不太清楚)。
 
什么古怪的需求都有
 
程序中出错时捕获exception
可在程序中加入一项,用来重连数据库
 
接受答案了.
 
后退
顶部