2012-04-05 102 views
11

背景:我將我的應用程序從mssql移動到npgsql v2.0.11.92。 運行我的應用程序幾分鐘或幾小時後,我得到一個System.Exception:從池獲取連接時超時。Npgsql:從池中獲取連接時超時

我在x64平臺上的x86環境中使用lib版本2.0.11.92。所有的連接都關閉,最後終止處理,但過了一段時間後,我收到錯誤消息。所以,它應該是Npgsql庫的問題。

在我的應用程序中,每隔幾秒就會在後臺發生大量查詢,但大多數情況下,它們只是按順序運行,而不是並行運行。

我使用的連接字符串是: SERVER = mydbserver;了MinPoolSize = 3; MaxPoolSize = 15; ConnectionLifeTime = 7; DATABASE =測試DB; UID =用戶; PWD =傳遞

我試圖診斷泄漏postgres在npgsql中的連接。

供參考:Npgsql庫已經有一個泄漏問題,已在最新版本2.0.11.92中修復。但我認爲還是有一些問題。

有沒有人遇到與當前庫版本(npgsql v2.0.11.92)類似的問題?

+0

這個問題依然存在?我使用2.0.14.3版本,我也得到了這個錯誤。 – IvanP 2014-02-08 11:04:03

+0

我得到了同樣的問題:在我的情況下,事實證明我沒有關閉所有代碼路徑中的連接。 – docesam 2015-08-16 08:49:12

回答

10

我有同樣的問題。解決方案是關閉連接池。您可以從C#應用程序

連接到數據庫連接字符串之前在連接字符串中做到這一點:

Pooling=false; 
+6

關閉連接池並不完全是解決方案。我們稱之爲解決方法。 – IvanP 2014-02-08 11:03:13

+0

將其關閉允許它工作,仍然需要弄清楚爲什麼連接池不起作用。 – Cody 2015-01-13 20:50:43

+0

那麼爲什麼該解決方案有效? – 2015-09-15 22:52:28

相關問題