2011-09-12 47 views
0

我有一個windows服務regulary(每10秒)做很多數據庫活動。我已驗證所有連接都已關閉(正在使用)。過了一段時間(數天或數小時)我得到這個錯誤:Sysprocesses表 - 它會幫助我調試連接池問題嗎?

Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occured because all pooled connections were in use and max pool size was reached.

我發現,我應該檢查sysprocesses表,發現是我的代碼運行時,它正在創造大量新的條目(我真的很確定我正在關閉連接)

問題是:在我的情況下,它是在同一個用戶做同樣的查詢全部,應該有一個新的條目幾乎每個服務滴答?其他服務不具有此行爲。

或者可能在sysprocesses表中看不到任何有用的信息?

Larsi

回答

1

sysprocesses中已被棄用,所以如果你在使用2005+ sys.dm_exec_requests視圖,sys.dm_exec_connections和sys.dm_exec_session。

這會給你更好的關於你的連接信息。

+0

好的,謝謝。你能解釋他們之間的關係嗎?對於每個請求我似乎都只有一個連接進入新會話。這是正確的嗎? – Larsi

+0

如果您查看sys.dm_exec_connections上的BOL頁面,您可以看到DMV之間的關係。 http://msdn.microsoft.com/en-us/library/ms181509.aspx –