小编典典

HikariPool-1-连接不可用,对于极小的负载服务器,请求在30000ms后超时

java

我有一个用于测试的小型Java应用程序。我最近搬到了日香。我注意到的是,我不断收到此错误。

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。


阅读 5291

收藏
2020-11-13

共1个答案

小编典典

由于网络延迟或某些查询执行时间过长(超过30000毫秒),因此数据库未在(30000毫秒,这是默认的connectionTimeout属性)内未获得连接。

请尝试增加财产的价值connectionTimeout

YML配置示例:

spring:
  datasource:
    hikari:
      minimumIdle: 2
      maximumPoolSize: 10
      idleTimeout: 120000
      connectionTimeout: 300000
      leakDetectionThreshold: 300000

Java Config示例:

HikariConfig config = new HikariConfig();
        config.setMaximumPoolSize(20);
        config.setConnectionTimeout(300000);
        config.setConnectionTimeout(120000);
        config.setLeakDetectionThreshold(300000);
2020-11-13