【发布时间】:2018-03-23 23:42:05
【问题描述】:
我想知道我对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"/>
部署我的应用程序时,它有 5 个连接(初始大小),当所有这些连接都忙时,tomcat 创建并添加一个新连接(6)到池中,这个新连接限制为 maxActive(100),当 101 个请求时来了,tomcat 会等待 1000 ms(maxWait) 然后抛出 TimeOutException。在某个时间段内,只有 40 个连接处于忙碌状态,当其中一个空闲时,它将被销毁,因为池中几乎有 30(maxIdle)个空闲连接。我对吗?
如果我是,那么将 maxIdle 和 maxActive 设置为不同的值的目的是什么?
【问题讨论】:
标签: java tomcat database-connection