Tomcat连接池的maxActive和maxIdle有什么区别?

tomcat连接池有一个名为maxActive的设置和一个名为maxIdle的设置,我的问题是。

  1. 这两种设置有什么区别?
  2. 在真实的示例场景中,对于maxActive而言,其值可能与对maxIdle而言有所不同?

由于某种原因,这些文档对我来说没有意义。根据http://tomcat.apache.org/tomcat-7.0-doc/jdbc-

pool.html上的文档,apache

dbcp和tomact 7 jdbc-pool上都存在maxActive和maxIdle

maxActive(int)可以同时从此池分配的最大活动连接数。默认值为100

maxIdle(int)始终应保留在池中的最大连接数。默认值为maxActive:100定期检查空闲连接(如果启用),并且空闲时间超过minEvictableIdleTimeMillis的连接将被释放。(另请参见testWhileIdle)

回答:

maxActive是直接的。maxIdle可以用这种方式进行解释-

假设您有100个最大活动连接,并说将maxIdle设置为80。假设没有请求发送到数据库,则仅测试80个连接(通过validationquery)并将其保持活动状态。其他20个将关闭。因此,在任何时候您只能有80个空闲连接。

您可能希望将其设置为其他数字,以防止其他(不必要的)连接发送到数据库。因为数据库服务的每个连接都会消耗资源(如内存)。

但是,假设您已将maxActive大小设置为100,并且几乎所有时间都在使用所有100,则此设置显然无关紧要。

以上是 Tomcat连接池的maxActive和maxIdle有什么区别? 的全部内容, 来源链接: utcz.com/qa/430364.html

回到顶部