Tomcat 接続プールの maxActive と maxIdle の違いは何ですか? 質問する

Tomcat 接続プールの maxActive と maxIdle の違いは何ですか? 質問する

Tomcat 接続プールには、maxActive という設定と maxIdle という設定があります。

  1. これら 2 つの設定の違いは何ですか?
  2. maxActive と maxIdle の値が異なる場合がありますが、実際のシナリオ例にはどのようなものがありますか?

何らかの理由で、ドキュメントは私には意味をなさない。maxActiveとmaxIdleは、Apache DBCPとTomact 7 JDBCプールの両方に存在している。http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html

maxActive (int) このプールから同時に割り当てることができるアクティブな接続の最大数。デフォルト値は 100 です。

maxIdle (int) 常にプールに保持される接続の最大数。デフォルト値は maxActive:100 です。アイドル接続は定期的にチェックされ (有効な場合)、minEvictableIdleTimeMillis より長くアイドル状態だった接続は解放されます。(testWhileIdle も参照)

ベストアンサー1

maxActive は簡単です。maxIdle は次のように説明できます。たとえば、最大アクティブ接続数が 100 で、maxIdle を 80 に設定したとします。データベースにリクエストが送信されていないと仮定すると、80 の接続のみが (検証クエリ経由で) テストされ、アクティブのままになります。残りの 20 は閉じられます。したがって、どの時点でもアイドル接続は 80 のみになります。
データベースへの追加の (不要な) 接続を防ぐために、これを別の数値に設定することもできます。データベースによって処理されるすべての接続がリソース (メモリなど) を消費するためです。
ただし、maxActive サイズを 100 に設定し、100 すべてがほぼ常に使用されていると仮定すると、この設定は明らかに問題になりません。

おすすめ記事