java Hikari:由于连接已关闭,无法验证连接

vtwuwzda  于 2023-04-19  发布在  Java
关注(0)|答案(2)|浏览(535)

我通过play框架和mariadb客户端使用hikari pool连接,自从我定期更新它们(play 2.6.5 -〉2.6.6和mariadb 2.1.1 -〉2.1.2,但不确定是否相关)以来,我遇到了以下错误:

HikariPool-1 - Failed to validate connection org.mariadb.jdbc.MariaDbConnection@31124a47 (Connection.setNetworkTimeout cannot be called on a closed connection)
    at com.zaxxer.hikari.pool.PoolBase.isConnectionAlive(PoolBase.java:184)
    at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:172)
    at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:146)
    at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:85)
    at play.api.db.DefaultDatabase.getConnection(Databases.scala:142)
    at play.api.db.DefaultDatabase.withConnection(Databases.scala:152)
    at play.api.db.DefaultDatabase.withConnection(Databases.scala:148)

我发现了一个相关的问题here,并试图将idleTimeout和maxLifetime更改为2和5分钟,但错误仍然发生。
我使用的是HikariCP 2.7.1,play 2.6.6和mariadb-java-client 2.1.2

368yc8dk

368yc8dk1#

虽然您写道,通过更改maxLifetime值无法成功解决此问题,但我想指出,它实际上对我有效。将其值设置为590000已从我的日志文件中删除了警告。
客户端的maxLifetime(毫秒)值应该小于MySQL示例的wait_timeout(秒)值。这样客户端将总是在数据库尝试之前终止连接。相反,客户端将尝试对关闭的连接进行操作,您将在日志文件中获得上述警告。
要查看MySQL示例的wait_timeout值,可以使用以下查询:
SHOW VARIABLES like '%timeout%';
MariaDB的默认值maxLifetime应该是28800,但我注意到600可以就位,因为正在加载MySQL配置文件。
我应该注意到,除了50maximum-pool-size之外,我没有其他显式的hikari配置。
我的灵感来自于:https://github.com/brettwooldridge/HikariCP/issues/856顺便说一下。其他非常有用的资源是:https://github.com/brettwooldridge/HikariCP#configuration-knobs-baby和https://mariadb.com/kb/en/library/server-system-variables/#wait_timeout

fnx2tebb

fnx2tebb2#

尝试配置“keepaliveTime”配置。
spring.datasource.hikari.keepaliveTime=240000

  • “此属性控制HikariCP尝试保持连接活动的频率,以防止它被数据库或网络基础结构超时。此值必须小于maxLifetime值。“keepalive”仅在空闲连接上发生。当针对给定连接的“keepalive”时间到达时,该连接将从池中删除,“pinged”,然后返回到池。'ping'是以下之一:调用JDBC4 isValid()方法,或执行connectionTestQuery。通常,池外的持续时间应以个位数毫秒甚至亚毫秒为单位进行测量,因此对性能的影响很小或没有明显的影响。允许的最小值为30000ms(30秒),但最好是分钟范围内的值。默认值:0(已禁用)"*

https://github.com/brettwooldridge/HikariCP#configuration-knobs-baby

相关问题