2012-09-10 27 views
1

在我的應用程序中,我遇到了連接池連接泄漏的問題。非活動連接池的數量

大約每3周池限制是筋疲力盡,應用服務器需要重新啓動。從我的應用程序的'.Net數據提供程序的Sql服務器'觀察性能計數器我注意到有時計數器NumbeOfInactiveConnectionPools的值在短時間內(大約30秒)增加1,並且它們回落到原來的值。偶爾會增加1而不會減少。長期價值變爲1.然後繼續增加1並減少。其結果是,現在長期的價值是2

難道這是連接泄漏的原因嗎?有人可以向我解釋這個計數器是什麼意思,當連接池變爲不活動時?我發現櫃檯的描述,我發現here,但它很差。

+0

所有的連接都實現'using'語句嗎? – msmucker0527

+0

您是否超過了池中的連接數或池數?我沒有完全明白。什麼是症狀?你有什麼例外嗎? –

+0

@ msmucker0527:是的,我處理所有連接。 –

回答

0

NumberOfInactiveConnectionPools似乎並不有什麼做與當前連接數。 您必須監視活動連接池的數量和活動連接的數量。

我不明白你爲什麼會需要重新啓動應用程序服務器(在你的應用程序在IIS託管?) - 你可能沒有自由連接了 - 但你應該有他們的時間。

不幸的是超過池的大小可以由窮人的應用設計造成的。 你應該檢查你的異常是否總是被一些特定的代碼部分拋出,或者它是否隨機發生。

如果它總是相同的代碼 - 你應該重新設計這種功能。 如果它是隨機的,則將連接字符串中的MaxPoolSize更改爲更大的數字。