簡體   English   中英

npgsql泄漏Postgres數據庫連接:監控連接的方法?

[英]npgsql Leaking Postgres DB Connections: Way to monitor connections?

背景:我正在將我的應用程序從npgsql v1移動到npgsql v2.0.9。 運行我的應用程序幾分鍾后,我得到一個System.Exception:從池中獲取連接時超時。

網絡聲稱這是由於連接泄漏(打開數據庫連接,但沒有正確關閉它們)。

所以

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

來自各種網絡文學; 診斷泄漏連接的一種方法是在npgsql上設置日志記錄,並在日志中查找泄漏的連接警告消息。 問題是,我沒有在任何地方的日志中看到此消息。

我還發現了監視npgsql連接的實用程序,但它不穩定並崩潰。

所以我手動檢查代碼。 對於創建npgsql連接的每個場所,都有一個finally塊處理它。 對於打開datareader的每個場所,都使用CommandBehavior.CloseConnection(並且處理了datareader)。

還有其他地方要檢查或有人可以推薦一種方法來尋找漏水池連接嗎?

更新:我正在以更好的方式檢查這些泄漏連接的分配位置。 請檢查我的帖子: http//fxjr.blogspot.com/2012/11/better-tracing-of-npgsql-connection.html我希望它有所幫助。

編輯:您可能想嘗試我們最新的測試版2.0.11.91。 我們添加了一些代碼來改進連接池,這可以幫助您。

嗯,這很奇怪......你應該得到一些消息。

這些消息僅在ms.net運行時確定對象時出現。 您是否有可能同時使用超過默認的最大連接數? 我的意思是,您的峰值使用量可能超過20個最大數量連接...

我希望它有所幫助。

請讓我知道你得到了什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM