我的C#代碼使用SqlConnection
連接到SQL Azure。有時我會面對以下幾點:我如何知道實際的SQL Server客戶端連接池利用率?
System.InvalidOperationException
Timeout expired. The timeout period elapsed prior to obtaining a connection
from the pool. This may have occurred because all pooled connections were
in use and max pool size was reached.
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(
DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(
DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.SqlClient.SqlConnection.Open()
// my code calling SqlConnection.Open()
我想找到爲什麼我面臨這個例外。這個例外可能是因爲我已經耗盡了連接池,但我不完全確定,如果我確定我想知道我是如何到達那裏的。
我的代碼可以獲得最大池大小和當前池利用率(已用和未用連接數)嗎?
[最大池大小設置和聯合會在Windows Azure中的SQL數據庫(http://blogs.msdn.com/b/cbiyikoglu/archive/2012/09/07/max-pool- size-setting-and-federations-in-windows-azure-sql-database.aspx) – Habib 2013-05-06 11:07:46
@Habib:那是每個連接,它並沒有說我已經有多少個連接。 – sharptooth 2013-05-06 11:10:14