13

私は.NET SqlClient Data Providerを使用してSQLサーバーに接続するクライアントサーバーアプリを持っています - かなり標準的なものです。デフォルトでは、接続プーリング マネージャがデータベース接続を閉じてプールから削除する前に、接続をアイドル状態にしておく必要があるのはどれくらいですか? これを制御する場合、どの設定ですか?

このMSDNドキュメントは、

接続プーラーは、接続が長時間アイドル状態になった後、またはサーバーとの接続が切断されたことをプーラーが検出した場合に、接続をプールから削除します。

4

2 に答える 2

8

数年前の答えは状況でしたが、今ではソースを参照して要約を書くことができるように変更されています:)


古い答え

この優れた記事では、リフレクションを使用して接続プールの内部動作を明らかにすることで、私たちが知る必要のあることを説明しています。

私の理解では、「閉じた」接続は半ランダムな間隔で定期的にクリーンアップされます。クリーンアッププロセスは2分から3分50秒ごとのどこかで実行されますが、「閉じた」接続が適切に閉じられる前に2回実行する必要があります。したがって、「閉じられた」7分40秒後、基になるSQL接続は適切に閉じられるはずですが、2分ほどの短さになる可能性があります。執筆時点では、プロセスで作成された最初の接続プールのタイマー間隔は常に3分10秒であるため、通常、ADOオブジェクトでClose()を呼び出した後、3分10秒から6分20秒の間でSQL接続が閉じられます。 。

明らかに、これは文書化されていないコードを使用しているため、将来変更される可能性があります。または、その記事が作成されてから変更される可能性もあります。

于 2013-01-02T15:21:07.840 に答える
0

これを通過してください:

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring%28VS.80%29.aspx

一部

「次の表に、ConnectionString 内の接続プール値の有効な名前を示します。」

あなたの興味があるようです。

于 2009-07-16T11:17:21.013 に答える