2012-12-10 34 views
6

私は一度に2000クライアントを処理するために使用したマルチスレッドアプリケーション(サーバー)で作業しており、各スレッドでMySQLデータベースのデータベース接続を個別に開きます。だから私は接続プーリングを有効にしました。私は多くのブロックを検索し、接続を使用した後、それを閉じてプールに戻し、他のスレッドが使用することを確認します。一方、 では、接続の作成に時間がかかることがわかっています。だから私の質問はなぜ接続プーリングで接続を閉じるべきかということです。接続を開いたままにしたり閉じたりする方がよいでしょうか?C#接続プールでオープン接続を維持する必要があります

答えて

6

は、我々は、接続作りは時間のかかるプロセス

正しいことを知っている - 私たちは、接続プールを持っている理由です。彼らは接続を維持しているので、新しいものを作成しません。

は、なぜ我々は、他のスレッドが使用するので、彼らはプールに戻され

を接続プール内の接続を閉じる必要があります。

接続は高価なリソースなので、できるだけ早く開いて使用して閉じたいので、プールに戻って他のスレッドが利用できるようにします。

+0

お返事ありがとうございました。 –

1

プールされている接続を「閉じる」とすると、接続が完了し、プールで再び接続を使用できるということになります。

Closeを呼び出すと、接続が物理的に切断されることはありません。プールには、接続が物理的に閉じられたときを判断する独自のロジックがあります。

+0

リチャードありがとうございました。私は、接続を閉じる際に接続が物理的に閉じていると思っていました。しかしそれはそうではありません。今私は接続のプールについてはっきりしています:) –

関連する問題