oracleconnection关闭问题

时间:2012-08-20 14:22:05

标签: c# oracle odp.net

我有一个应用程序,它使用ODP.net在OracleDatabase中的几个表中插入和更新大约10000个条目。我把这份工作分成了100个条目。

首先,应用程序打开并关闭每个条目的oracleconnection。应用程序运行正常的一些条目块,但过了一段时间(并不总是相同)它只是停止运行,它仍然使用内存但没有CPU,没有抛出错误。我发现它是在应用程序调用OracleConnection Close方法的时候。

我已将其更改为在应用程序的开头和结尾处打开和关闭以及连接,一切都很好。

虽然打开和关闭每个条目的连接的事实不是正确的方法,但我的问题是为什么它只是停在OracleConnection的Close()方法上?

有人有想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

我可以提出两个原因,我之前见过这两个原因。

首先,如果你有长时间运行的连接影响很多记录,那么由于时间的原因(或者某些东西阻止了插入/更新),连接池管理器可能会尝试重新声明&回收连接。

另一个非常难以调试的是你的连接可能通过防火墙,防火墙正在丢弃长时间运行的连接。如果是这种情况,您可能会在从池中打开新连接时遇到偶然的问题 - 它应该可用,但是当您尝试打开它时会失败(我忘记了确切的症状和错误消息,因为这是几年前)。