2012-09-02 96 views
6

我面臨着以下問題:當我們可以使用ClearAllPools方法?

連接池已達到連接

我跟所有建議的最大數量。問題不像以前那樣,但很少發生!

我使用Using statement與我所有的連接和讀者。

最近我遇到以下錯誤,我不得不重置iis來解決我的問題。


Connection Pool has reached the maximum number of connections. at IBM.Data.Informix.IfxConnectionPool.ReportOpenTimeOut() 
at IBM.Data.Informix.IfxConnectionPool.Open(IfxConnection connection) 
at IBM.Data.Informix.IfxConnPoolManager.Open(IfxConnection connection) 
at IBM.Data.Informix.IfxConnection.Open() 
at DB_Connection_s.DB_Connection.GetUserSystems(String emp_num) 

現在我讀到這個方法ClearAllPools()。但我不知道什麼時候使用這個方法。而如果這被視爲一個很好的解決方案,以防止have to重置IIS修復請求時間出問題了?

+2

你能配置連接池的大小嗎? Informix數據庫服務器與IIS運行在同一臺機器上嗎?如果是這樣,您是否使用Informix的共享內存連接?如果您正在使用共享內存連接到本地Informix服務器,那麼您可能已經超過了Informix配置管理的同時連接數。然後,您需要增加該配置並重新啓動Informix。如果您使用的是除共享內存連接之外的其他內容,則以同樣的方式不存在連接上限。 –

+0

'' –

+0

這是在'web.config'中 –

回答

1

當您沒有任何活動連接時,您可以調用ClearAllPools()。

還檢查了http://www.codeproject.com/Articles/46267/Connection-Pooling-in-ASP-NET

確保應用程序正確,一致地關閉所有的數據庫連接。

確保數據庫聯機。

增加連接超時。

錯誤模式表明連接長時間「泄漏」。要解決此問題,請確保您的應用程序正確且一致地關閉所有數據庫連接。

異常並不表示數據庫處於脫機狀態。異常表示連接池問題。

相關問題