2011-03-15 4 views
0

maxPoolSizeは何のためになっているのですか? minPoolSizeとは何ですか?データプーリングのプロパティを理解する

データベースに使用するプロパティ値を知る方法を教えてください。

EDITED

私は、HibernateとWindows OS上bitronixとの接続は、Oracle 10gを使用しています。

+0

これは、使用しているデータベース、プラットフォーム、および言語を知るのに役立ちます。ありがとう、 – Oded

答えて

1

minPoolSizeは、いずれも使用されていない場合でも常に開いているデータベース接続の最小数です。一方、maxPoolSizeは同時接続の最大数を表します。今:

  • 使用minPoolSizeは常にあなたは要求が低負荷でシステムに到着したときに新しいネットワーク接続を確立するのを待つ必要はありませんように(でもアイドル時)開かれた数の接続を維持します。これは、基本的に「緊急のために」待っている接続のセットです。

  • maxPoolSizeははるかに重要です。システムに負荷がかかり、一部の要求がmaxPoolSize + 1接続を開こうとすると、接続プールは拒否され、順番に要求が破棄されます。一方、このパラメータを高い値に設定すると、容量が限られているため、アプリケーションからデータベースサーバーへのボトルネックがシフトします。

+0

だから、bitronixを使ってoracleにmaxPoolSizeを設定することをお勧めしますか?誰がdbに同時に接続するか、そしていつ接続を閉じるかを決定しますか? – Dejell

+0

まあ...測定。いくつかの値を超えると、パフォーマンスの向上やパフォーマンスの低下に気づくことはありません。また、同時接続の最大数は、同時HTTP接続の数に関連付ける必要があります(ほとんどの時間、要求にバインドされたJDBC接続を使用するWebアプリケーションについて説明していると仮定します)。接続を閉じるとき:アプリケーションがアイドル状態になると、接続プールはアイドル状態の接続を処理し、それらを完全に閉じます(少なくとも 'minPoolSize'を残してください)。 –