我使用Oracle
ODP.NET
连接器连接到Oracle
数据库服务器。
问题是由于几个不同的问题(例如网络故障或服务器强制关闭对等连接),有时会丢失连接。 这会导致未捕获的异常,因为在查询中或应用程序的空闲时间内未使用连接对象时,我无法捕获异常。
问题是当连接丢失时如何捕获Oracle
连接异常?
是否有任何回调技术可以告诉我有关断线的信息?
答案 0 :(得分:0)
请参阅上面关于连接池连接字符串中的Validate Connection = true的评论。
您还可以编写自己的“连接测试程序”例程,对数据库执行“从双选择sysdate”以测试连接。
这两种解决方案都需要花费往返数据库。这些解决方案都不能完全防止网络错误,因为它们可能在您测试后立即发生。
如果您不想要未处理的异常,则需要在使用ODP.NET对象时随时捕获异常。
没有可用的回调机制来阻止这种情况。
我真的不明白当你不使用odp.net对象时,你似乎在说你得到了异常。如果您遇到异常,那么您必须在那时使用odp.net对象,因此您可以捕获该代码中的异常。