如何修复java.sql.SQLException:isValid()返回false

时间:2019-06-12 03:01:34

标签: java spring

我遇到有关池连接的问题。 在服务器上构建ap AIP。如果很长时间没有任何请求发送到我的应用程序(大约2h),我将向我的应用程序发送一个新请求。我遇到这样的问题:

DEBUG o.a.c.d.PoolableConnectionFactory - Failed to validate a poolable connection.
java.sql.SQLException: isValid() returned false
    at org.apache.commons.dbcp2.PoolableConnection.validate(PoolableConnection.java:283)
    at org.apache.commons.dbcp2.PoolableConnectionFactory.validateConnection(PoolableConnectionFactory.java:362)
    at org.apache.commons.dbcp2.PoolableConnectionFactory.validateObject(PoolableConnectionFactory.java:347).

我已将此问题修复为ERROR: Cannot create PoolableConnectionFactory (isValid() returned false)。但是没有完成。

我的属性配置:

spring.datasource.dbcp2.initial-size=7
spring.datasource.dbcp2.max-total=20
spring.datasource.dbcp2.pool-prepared-statements=true
spring.datasource.test-while-idle = true
spring.datasource.test-on-borrow=true
spring.datasource.validation-query = SELECT 1
spring.datasource.time-between-eviction-runs-millis = 60000
spring.datasource.hikari.connectionTimeout=30000
spring.datasource.hikari.idleTimeout=60000
spring.datasource.hikari.maxLifetime=180000

请帮助我。

1 个答案:

答案 0 :(得分:0)

您应该在配置中添加验证查询。

hikari.testOnBorrow=true
hikari.validationQuery=SELECT 1