了解 Tomcat 连接池设置
Understanding the Tomcat Connection Pool settings
我想知道我对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会等待1000ms(maxWait)然后抛出TimeOutException。在某个时间段内,只有 40 个连接处于忙碌状态,当其中一个空闲时,它将被销毁,因为池中几乎有 30(maxIdle)个空闲连接。我对吗?
如果我是,那么将 maxIdle 和 maxActive 设置为不同值的目的是什么?
In some period of time only 40 connections are busy, and when one of them is free it will be destroyed because pool almost has 30(maxIdle) free connections.
当40个连接忙,其中一个变为空闲时,变为空闲,导致如下状态:
39 busy connections
1 idle connection
maxActive
设置指定在任何给定时间任何状态下可能存在的最大连接数。 maxIdle
设置更具体,仅确定空闲连接的最大数量。
假设 maxActive
设置为 100,并且在某个时刻所有这些连接都存在并且很忙,那么如果几分钟后它们都空闲,您不想保留这 100 个空闲连接,因为它们除了消耗资源外没有做任何事情。
这就是 maxIdle
设置发挥作用的地方。它告诉连接池不要持有超过 X 数量的空闲连接。如果设置为 30,则丢弃 100 个空闲连接中的 70 个连接。
我想知道我对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会等待1000ms(maxWait)然后抛出TimeOutException。在某个时间段内,只有 40 个连接处于忙碌状态,当其中一个空闲时,它将被销毁,因为池中几乎有 30(maxIdle)个空闲连接。我对吗?
如果我是,那么将 maxIdle 和 maxActive 设置为不同值的目的是什么?
In some period of time only 40 connections are busy, and when one of them is free it will be destroyed because pool almost has 30(maxIdle) free connections.
当40个连接忙,其中一个变为空闲时,变为空闲,导致如下状态:
39 busy connections
1 idle connection
maxActive
设置指定在任何给定时间任何状态下可能存在的最大连接数。 maxIdle
设置更具体,仅确定空闲连接的最大数量。
假设 maxActive
设置为 100,并且在某个时刻所有这些连接都存在并且很忙,那么如果几分钟后它们都空闲,您不想保留这 100 个空闲连接,因为它们除了消耗资源外没有做任何事情。
这就是 maxIdle
设置发挥作用的地方。它告诉连接池不要持有超过 X 数量的空闲连接。如果设置为 30,则丢弃 100 个空闲连接中的 70 个连接。