我正在我的Oracle数据库应用程序上使用ODP
。我已注册到OracleConnection.StateChange
事件以查看连接状态。当我断开数据库连接时,事件会触发,但例如,如果互联网连接丢失,则无法执行任何操作。
如何通过StateChange
事件处理这类(互联网失败等)情况?
或者我是否必须创建一个线程来定期检查connnection state
?
如果是,我如何检查连接,因为我检查了状态,即使我拔掉网线,它似乎也是打开的。
问候。
答案 0 :(得分:2)
常见的方法是在连接用于某些事情之前发出一个不昂贵的sql语句。在oracle上,它类似于'从双选中选择1',在ms-sql'select 1'上。此sql强制往返服务器并报告与服务器的连接丢失。
JBoss正在使用名为check-valid-connection-sql的东西。其他人有其他名字。