考虑以下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-bit - OpenJDK 7 - Tomcat 7 - MySQL 5.5