Spring Boot JDBC连接池testOnBorrow和testWhileIdle跟踪和最佳设置

时间:2018-12-31 18:55:48

标签: java sql-server spring tomcat jdbc

我们有一个Spring Boot微服务架构,问题是池中的连接有时会陈旧,并且/ health检查失败,这就是我要通过设置testOnBorrow来解决此问题的方式,以便在连接之前进行测试被退回。

以下属性应最终解决问题

spring.datasource.tomcat.testOnBorrow=true 
spring.datasource.tomcat.validationQuery=SELECT 1 
spring.datasource.tomcat.validationInterval=30000
spring.datasource.tomcat.testWhileIdle = true
spring.datasource.tomcat.timeBetweenEvictionRunsMillis=30000
spring.datasource.tomcat.minEvictableIdleTimeMillis=60000
spring.datasource.tomcat.validationQuery = SELECT 1

在努力推动这一变化之前,我试图确保所有这些事情都正确进行。 即使连接长时间处于空闲状态,我也没有在任何日志中看到 SELECT 1

所以有两个问题:

  1. 是否可以在特定时间查看Java日志/ db日志中执行的验证查询,从而确保已解决问题。

  2. Tomcat JDBC Connection Pool Documentation

  3. 中所述,用于testOnBorrow(validationInterval)和testWhileIdle(timeBetweenEvictionRunsMillis)的连接验证的最佳设置应该是什么?

0 个答案:

没有答案