我们有一个使用ODP.Net从ASP MVC页面连接到oracle数据库的网页。在应用程序池因任何原因而回收的情况下,如果用户负载过重,则会比内部oracle类中的连接超时错误少。C#应用程序池回收时连接超时到oracle数据库
内部异常:堆栈跟踪:在OracleInternal.ConnectionPool.PoolManager`3.Get(的ConnectionString csWithDiffOrNewPwd,布尔bGetForApp,字符串affinityInstanceName,布尔bForceMatch)
我们如何处理这种情况?可能是这个错误的原因是什么?
我不认为这与应用程序池回收有关。问题是你已经达到最大池大小。很可能您忘记在代码中的某个地方关闭连接,导致连接没有返回到池以满足其他请求,或池的大小太小 –
当您忘记关闭连接时,连接将最终关闭,但它仅在GC收集这些对象时才会发生。因此,有很多连接不会长时间返回到池中,并且会导致达到最大池大小。 –
我正在使用USING块进行连接,因此连接正在关闭。这个问题有时只会发生,如果连接没有关闭,我们应该经常看到它? – Zeus