Oracle Managed ODP.NET:由于网络错误,连接被强制关闭

时间:2014-02-06 12:26:38

标签: c# .net database oracle odp.net

我使用Oracle ODP.NET连接器连接到Oracle数据库服务器。

问题是由于几个不同的问题(例如网络故障或服务器强制关闭对等连接),有时会丢失连接。 这会导致未捕获的异常,因为在查询中或应用程序的空闲时间内未使用连接对象时,我无法捕获异常。

问题是当连接丢失时如何捕获Oracle连接异常? 是否有任何回调技术可以告诉我有关断线的信息?

1 个答案:

答案 0 :(得分:0)

请参阅上面关于连接池连接字符串中的Validate Connection = true的评论。

您还可以编写自己的“连接测试程序”例程,对数据库执行“从双选择sysdate”以测试连接。

这两种解决方案都需要花费往返数据库。这些解决方案都不能完全防止网络错误,因为它们可能在您测试后立即发生。

如果您不想要未处理的异常,则需要在使用ODP.NET对象时随时捕获异常。

没有可用的回调机制来阻止这种情况。

我真的不明白当你不使用odp.net对象时,你似乎在说你得到了异常。如果您遇到异常,那么您必须在那时使用odp.net对象,因此您可以捕获该代码中的异常。