一尘不染

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

tomcat

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)


阅读 1054

收藏
2020-06-16

共1个答案

一尘不染

maxActive是直接的。maxIdle可以用这种方式进行解释-
假设您有100个最大活动连接,并说将maxIdle设置为80。假设没有请求发送到数据库,则仅测试80个连接(通过validationquery)并将其保持活动状态。其他20个将关闭。因此,在任何时候您只能有80个空闲连接。
您可能希望将其设置为其他数字,以防止其他(不必要的)连接发送到数据库。因为数据库服务的每个连接都会消耗资源(如内存)。
但是,假设您已将maxActive大小设置为100,并且几乎所有时间都在使用所有100,则此设置显然无关紧要。

2020-06-16