tomcat连接池验证间隔

问题描述 投票:2回答:1

我在我的应用程序(java应用程序)中使用tomcat连接池(tomcat 7)连接到Azure机器上的远程Oracle数据库。我的连接池配置如下:

PoolProperties p = new PoolProperties();
p.setUrl(connString);
p.setUsername(user);
p.setPassword(password);
p.setDriverClassName("oracle.jdbc.OracleDriver");
p.setValidationQuery("SELECT 1 from dual");
p.setValidationInterval(1 * 60000/2);
p.setTimeBetweenEvictionRunsMillis(1 * 60000/2);
p.setTestOnBorrow(true);
p.setTestWhileIdle(true);
p.setMinIdle(10);
p.setInitialSize(10);

但是看一下捕获文件,我发现没有像我预期的那样每30秒检查一次连接。正确检查一个连接,在配置3次(180秒)后检查其他连接。然后再次只检查一些连接,一段时间后它似乎在配置周期的两倍(每60秒)稳定。

我使用不同的配置时间和不同的池大小测试它,都有一个不稳定期,每次只检查部分连接,最终在每两次配置的时间检查所有连接时稳定。我错过了什么? 谢谢,

尼尔

java tomcat connection-pooling
1个回答
1
投票

从文档

验证间隔 - 我们不必每次都使用连接验证,我们可以在借用或返回连接时执行此操作,只是不比我们可以配置的间隔更频繁。

我假设验证间隔是检查之间的最短时间,并取决于连接的使用频率。

© www.soinside.com 2019 - 2024. All rights reserved.