Hikari 和借用选项测试

rob*_*del 7 spring datasource apache-commons-dbcp spring-boot hikaricp

我使用带有Hikari连接池、jpa 和 postgres 的spring boot 2 。

是否有任何理由继续使用这些选项

spring.datasource.testOnBorrow=true
spring.datasource.validationQuery=SELECT 1
spring.datasource.testWhileIdle
Run Code Online (Sandbox Code Playgroud)

use*_*900 5

不,它们是Hikari连接池的未知属性,因此不需要,

它们仅存在于您不再使用的Tomcat JDBC 连接池(在旧的 Spring 引导中使用)中。

不同属性的解释

DBCP testOnBorrow=false rollbackOnReturn=false enableAutoCommitOnReturn=false

问题:

testOnBorrow=false 增加了应用程序连接断开的可能性 rollbackOnReturn=false + enableAutoCommitOnReturn=false,就像上面的 C3P0“补救”可能会导致消费者之间的事务流血或导致锁被长时间持有

HikariCP 差异化器

在从池中返回连接之前使用 isValid() 测试连接,通过优化绕过检查连接是否在过去 1000 毫秒内使用 跟踪连接状态(和事务状态),并仅在非连接的情况下执行 rollback() -自动提交未提交更改的连接