Java Hikari无法获取JDBC连接

Java Hikari无法获取JDBC连接,java,hikaricp,Java,Hikaricp,我们的项目中有Spring boot/Hibernate/MYSQL应用程序,并使用Hikari作为连接池。服务启动几分钟后,我们发现以下问题: org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常为org.springframework.dao.DataAccessResourceFailureException:无法获取JDBC连接;嵌套异常为org.hibernate.exception.JDBCConnection

我们的项目中有Spring boot/Hibernate/MYSQL应用程序,并使用Hikari作为连接池。服务启动几分钟后,我们发现以下问题:

org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常为org.springframework.dao.DataAccessResourceFailureException:无法获取JDBC连接;嵌套异常为org.hibernate.exception.JDBCConnectionException:无法获取JDBC连接

原因:org.springframework.dao.DataAccessResourceFailureException:无法获取JDBC连接;嵌套异常为org.hibernate.exception.JDBCConnectionException:无法获取JDBC连接

我们的数据源配置如下:


spring.datasource.type=com.zaxxer.hikari.HikariDataSource

spring.datasource.hikari.connection timeout=36000

spring.datasource.hikari.maximum pool size=2

spring.datasource.hikari.max life=1800000

spring.datasource.hikari.idle超时=60000

spring.datasource.hikari.validation超时=3000

spring.datasource.hikari.leak detection threshold=240000


这里的任何人都可以给我一些线索,谢谢

您可能有未结的交易。随着时间的推移,这些事务不断堆积,无法打开新的连接。连接超时命中,您将无法获取JDBC连接

您需要检查所有事务方法,并确保在完成后立即关闭/提交它们

我想添加一个我们遇到这些问题的特定场景。这涉及到一个用@Transactional注释的方法 在此方法中打开的数据库连接将位于打开的事务中,直到此方法退出。我们的程序的问题是,它很少进行HTTP调用,并且在HTTP调用完成之前,事务都是打开的。由于对该服务方法的调用越来越多,处于打开状态的事务比处于关闭状态的事务更多


这个故事的寓意是:打开交易,快速完成你的工作,然后关闭交易;可以通过退出标记为@Transactional的方法隐式执行,也可以通过显式调用transaction close执行

请检查此URL您能告诉我们您使用的是哪一个版本吗?HikariCP-3.2.0 Mysql 6.0.6 Spring boot 1.5.3.RELEASE Hibernate 5.0.9.Final