我們有一個使用ODP.Net從ASP MVC頁面連接到oracle數據庫的網頁。在應用程序池因任何原因而回收的情況下,如果用戶負載過重,則會比內部oracle類中的連接超時錯誤少。C#應用程序池回收時連接超時到oracle數據庫
內部異常:堆棧跟蹤:在OracleInternal.ConnectionPool.PoolManager`3.Get(的ConnectionString csWithDiffOrNewPwd,布爾bGetForApp,字符串affinityInstanceName,布爾bForceMatch)
我們如何處理這種情況?可能是這個錯誤的原因是什麼?
我不認爲這與應用程序池回收有關。問題是你已經達到最大池大小。很可能您忘記在代碼中的某個地方關閉連接,導致連接沒有返回到池以滿足其他請求,或池的大小太小 –
當您忘記關閉連接時,連接將最終關閉,但它僅在GC收集這些對象時纔會發生。因此,有很多連接不會長時間返回到池中,並且會導致達到最大池大小。 –
我正在使用USING塊進行連接,因此連接正在關閉。這個問題有時只會發生,如果連接沒有關閉,我們應該經常看到它? – Zeus