Java HikariPool-1-连接不可用,对于负载非常小的服务器,请求在30000ms后超时
我有一个用于测试的小型Java应用程序。我最近搬到了hikari。我注意到的是我一直在犯这个错误Java HikariPool-1-连接不可用,对于负载非常小的服务器,请求在30000ms后超时,java,spring,datasource,hikaricp,dbcp,Java,Spring,Datasource,Hikaricp,Dbcp,我有一个用于测试的小型Java应用程序。我最近搬到了hikari。我注意到的是我一直在犯这个错误 java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 30000ms. java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not availab
java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 30000ms.
java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 30000ms.
at com.zaxxer.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:602)
at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:195)
at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:145)
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:85)
下面是我最初对hikari的设置
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/****");
config.setUsername("***");
config.setPassword("*****");
config.setMaximumPoolSize(20);
我的两个设备几乎没有被使用过,我保证最后会关闭它。所以我不知道为什么它总是出错?可能是什么问题,或者是否有一些设置需要更改
我的hikari版本是HikariCP-2.6.1.jar。由于网络延迟或某些查询执行时间过长(超过30000毫秒),您的数据库未在(30000毫秒,这是默认的connectionTimeout属性)内获得连接 请尝试增加属性的值
connectionTimeout
YML配置示例:
spring:
datasource:
hikari:
minimumIdle: 2
maximumPoolSize: 10
idleTimeout: 120000
connectionTimeout: 300000
leakDetectionThreshold: 300000
Java配置示例:
HikariConfig config = new HikariConfig();
config.setMaximumPoolSize(20);
config.setConnectionTimeout(300000);
config.setConnectionTimeout(120000);
config.setLeakDetectionThreshold(300000);
我使用的是spring boot,我也面临同样的问题,我的解决方案是获得如下连接“
DataSourceUtils.getConnection(dataSource)
”。因此,我将从dataSource.getConnection()
更改为DataSourceUtils.getConnection(dataSource)
请将hikari版本和hikari的其他设置添加到您的问题中我的hikari版本是HIKARIP-2.6.1.jar。我没有任何其他设置,除了上述问题。谢谢。您是如何初始化传递给DataSourceUtils.getConnection(dataSource)的“dataSource”参数的?如下所示:@Autowired private dataSource dataSource;