sql-server - Spring Boot 2.0 Hikari 自动连接不起作用
问题描述
我正在使用 spring-boot、Hibernate 和 MsSql。我将我的应用程序部署到服务器上,它可以正常工作一段时间,之后它的数据库将断开连接并且无法重新连接。在日志中,它显示 Hikari 正在尝试连接但无法连接。
我正在从外部文件中读取数据库属性并获得数据库连接。我是否需要在某个地方指定 Hikari 数据库属性,否则它会自动执行。
in application.properties specified
spring.datasource.hikari.connection-timeout = 20000
spring.datasource.hikari.minimum-idle= 10
spring.datasource.hikari.maximum-pool-size= 10
spring.datasource.hikari.idle-timeout=600000
spring.datasource.hikari.max-lifetime=1800000
spring.datasource.hikari.auto-commit =true
Caused by: java.sql.SQLException: HikariPool-2 - Interrupted during connection acquisition
at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:200) ~[HikariCP-3.4.1.jar:?]
at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:161) ~[HikariCP-3.4.1.jar:?]
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:128) ~[HikariCP-3.4.1.jar:?]
at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:158) ~[spring-jdbc-5.2.2.RELEASE.jar:5.2.2.RELEASE]
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:116) ~[spring-jdbc-5.2.2.RELEASE.jar:5.2.2.RELEASE]
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79) ~[spring-jdbc-5.2.2.RELEASE.jar:5.2.2.RELEASE]
... 116 more
org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLTransientConnectionException: HikariPool-2 - Connection is not available, request timed out after 30000ms.
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:82) ~[spring-jdbc-5.2.2.RELEASE.jar:5.2.2.RELEASE]
解决方案
推荐阅读
- php - 在 Codeigniter 查询中正确使用撇号和引号
- arrays - 字符串的未定义方法“推送”
- http - HTTP/1.1 正文长度计算
- javascript - DRY Javascript 适合真正的新手
- python - DRF:无法通过管理界面发布或创建新对象
- java - 在 Collectors.groupingBy 中考虑 null 和空记录相同
- python - 我该怎么做才能停止收到一些“本地未绑定”错误消息?
- unity3d - Unity Asset Bundles 使用旧数据重建
- python - Blender中骨骼的顺序与Python中不同
- c# - 在 C# 中将面板置于最前面