我希望了解我的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毫秒(maxWait),然后抛出TimeOutException。在某段时间内,只有40个连接正在使用,当其中一个空闲时,它将被销毁,因为池中几乎有30个(maxIdle)空闲连接。我是正确的吗?
如果是这样,那么将maxIdle和maxActive设置为不同的值的目的是什么?