以下の Tomcat JDBC 接続設定があるとします。
<Resource name="jdbc/pc4"
maxActive="200"
maxIdle="100"
minIdle="50"
initialSize="50"
maxWait="15000"
auth="Container"
type="javax.sql.DataSource"
username="....."
password="....."
testOnBorrow="true"
testWhileIdle="true"
validationQuery="select 1"
driverClassName="com.mysql.jdbc.Driver"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
url="jdbc:mysql://server_address/db_name?autoReconnect=true&autoReconnectForPools=true&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8&socketTimeout=300000" />
そして、次の MySQL パラメータ:
max_connections = 100000
wait_timeout = 31536000
interactive_timeout = 31536000
接続プールには常に少なくとも 50 のアイドル接続があると予想されます。
しかし実際には、サーバーの起動時に 50 の接続があり、しばらくすると、最後の接続を除くすべての接続が切断されます。
構成に誤りがありますか?
環境:
- Linux 3.4 64 ビット
- OpenJDK 7
- トムキャット7
- MySQL 5.5