【问题标题】:Hikari: Failed to validate connection because connection is closedHikari:无法验证连接,因为连接已关闭
【发布时间】:2018-03-31 12:10:19
【问题描述】:

我通过 play framework 和 mariadb 客户端使用 hikari 池连接,因为我已经更新了它们(播放 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,玩 2.6.6 和 mariadb-java-client 2.1.2

【问题讨论】:

  • 嘿@Maxence,你找到解决方法了吗?
  • @jNewbie,不...
  • 我尝试将驱动程序更改为使用 mysql 驱动程序,但仍然无法正常工作

标签: java database hikaricp


【解决方案1】:

尽管您写道通过更改 maxLifetime 值没有成功解决此问题,但我想指出它实际上对我有用。将其值设置为 590000 已从我的日志文件中删除了警告。

客户端的maxLifetime(以毫秒为单位)值应小于 MySQL 实例的wait_timeout(以秒为单位)值。这样,客户端将始终在数据库尝试之前终止连接。反之,客户端将尝试对关闭的连接进行操作,您将在日志文件中收到上述警告。

要查看您的 MySQL 实例的 wait_timeout 值,您可以使用以下查询:

SHOW VARIABLES like '%timeout%';

MariaDB 的默认 maxLifetime 值应该是 28800,但我注意到由于 MySQL 配置文件正在加载,600 可以就位。

我应该注意,除了 maximum-pool-size50 之外,我没有其他明确的 hikari 配置。

顺便说一句,我的灵感来自:https://github.com/brettwooldridge/HikariCP/issues/856。其他非常有用的资源是:https://github.com/brettwooldridge/HikariCP#configuration-knobs-babyhttps://mariadb.com/kb/en/library/server-system-variables/#wait_timeout

【讨论】:

  • 在这种情况下,我配置了更高的 wait_timeout 值。但我很困惑它是 mysql 中的 GLOBAL 还是 SESSION 变量。只有 GLOBAL 我可以改变。
猜你喜欢
  • 2019-03-03
  • 2020-03-31
  • 2015-07-12
  • 1970-01-01
  • 2015-12-22
  • 1970-01-01
  • 2019-01-10
  • 2020-06-03
  • 2013-02-05
相关资源
最近更新 更多