Tomcat接続プールのライフサイクルについての理解が正しいかどうかを知りたい。Tomcat接続プール設定の理解
例えば、私は次の設定があります。
<Resource name="jdbc/appname" auth="Container"
type="javax.sql.DataSource" maxActive="100"
maxIdle="30" maxWait="1000"
username="username"
initialSize = "5"
password="password"
driverClassName="jdbc.driver.name"
url="jdbc:protocol://hostname:port/dbname"/>
私のアプリケーションがデプロイされると、それはすべてのこれらの接続は、Tomcatが(作成し、新しい接続をプールに追加忙しいとき、5つの接続(初期サイズ)を持っています6)、この新しい接続制限はmaxActive(100)であり、101個のリクエストが来ると、tomcatは1000 ms(maxWait)を待ち、TimeOutExceptionをスローします。ある期間では40の接続のみがビジー状態になり、そのうちの1つが空いている場合、プールには30(最大)の空き接続がほとんどないため、破棄されます。私は正しい?
もし私がいたら、maxIdleとmaxActiveを異なる値に設定する目的は何ですか?
ありがとうございます。「30に設定すると、100個のアイドル接続の70個の接続が切断されます。」 70の接続が切断され、30の接続がアイドル状態になることを意味しますが、30の接続がすべてビジー状態のときは、新しい接続が作成され、応答後に自動的にアイドル状態になります。 –
@АлмасАбдразакはい、すべての接続が作業を中断しなくなったときにすべての接続がアイドルになり、maxIdle設定が存在して何もしない接続の最大量を決定します。 –