【发布时间】:2021-12-24 13:36:16
【问题描述】:
我们现在在运行负载测试时面临 JDBC 连接问题。它运行了几个小时,但突然线程开始进入挂起状态。 我检查了代码,但找不到我们故意泄漏任何连接。只有我在日志中看到的烟雾与我们进行的 JPA 调用有关。但它仍然没有回答为什么我们没有遇到连接问题。任何建议都会有所帮助。
技术栈 - 我们正在使用 Spring Boot 2.4.7、Hibernate 5.4.25、Hikari CP 3.4.5、JPA 2.2
日志 -
1 [LogType:Usage] DEBUG [payment-service,,] [15] [HikariPool-1 连接添加器] [com.zaxxer.hikari.pool.HikariPool] HikariPool-1 - 添加了连接 org.mariadb.jdbc。 MariaDbConnection@44a351b0
- [HikariPool-1 管家] [com.zaxxer.hikari.pool.ProxyLeakTask] 在线程 http-nio-8080-exec-10 上为 org.mariadb.jdbc.MariaDbConnection@44a351b0 触发了连接泄漏检测,堆栈跟踪如下 \ u2028java.lang.Exception:检测到明显的连接泄漏\u2028 at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:128)\u2028 at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl. java:122)\u2028 在 org.hibernate.internal.NonContextualJdbcConnectionAccess.obtainConnection(NonContextualJdbcConnectionAccess.java:38)\u2028 在
- [LogType:Usage] [com.zaxxer.hikari.pool.ProxyLeakTask] 之前报告的线程 http-nio-8080-exec-10 上泄露的连接 org.mariadb.jdbc.MariaDbConnection@44a351b0 返回到池中(未泄露)
- [HikariPool-1 连接更紧密] [com.zaxxer.hikari.pool.PoolBase] HikariPool-1 - 正在关闭连接 org.mariadb.jdbc.MariaDbConnection@44a351b0:(连接已超过 maxLifetime)
但在这两者之间,我们看到负载测试开始失败 ->
[LogType:Usage] DEBUG [14] [HikariPool-1 管家] [com.zaxxer.hikari.pool.HikariPool] HikariPool-1 - 池统计信息(总数=15,活动=15,空闲=0,等待= 75)
配置 - connectionleakthreshold - 3000(我们尝试使用 30000 但发现相同的行为) 连接超时 - 30000
【问题讨论】:
标签: java spring hibernate jdbc hikaricp