【发布时间】:2014-04-18 08:22:13
【问题描述】:
这是我当前的配置
<Resource
name="jdbc/data"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/TABLE_NAME"
username="USER_NAME"
password="PASSWORD"
initialSize="10"
maxActive="50"
suspectTimeout="120"
minIdle="10"
maxIdle="20"
maxWait="1000"
testOnBorrow="true"
timeBetweenEvictionRunsMillis="30000"
minEvictableIdleTimeMillis="60000"
validationQuery="SELECT 1 FROM DUAL"
validationInterval="40"
removeAbandoned="true"
removeAbandonedTimeout="100"
/>
这是在全局上下文中,因此多个应用程序可以使用它。 我对参数有点困惑。需要一些细节。 我的理解是
initalSize 池启动时创建的连接数。
maxActive 一次最多可以激活 50 个连接。
minIdle 10 个连接在不使用连接时保持空闲,否则在maxwait 之后关闭
maxIdle 20 个连接可以存储为空闲。
但是当我启动 tomcat 服务器时,我可以看到有 30 个 IDLE 连接永远存在。为什么会发生这种情况?我错过了什么吗?根据我对连接池的理解,应该只创建 10 个连接并且可以保持空闲模式。 mysql my.cnf
【问题讨论】:
标签: java tomcat tomcat7 connection-pooling