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

新手上路,请多包涵

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

 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。

原文由 user8012596 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

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

请尝试增加财产价值 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);

原文由 Girdhar Singh Rathore 发布,翻译遵循 CC BY-SA 4.0 许可协议

我正在使用 spring boot,我遇到了同样的问题,我的解决方案是获得这样的连接“ DataSourceUtils.getConnection(dataSource) ”。所以我从 dataSource.getConnection() 更改为 DataSourceUtils.getConnection(dataSource)

原文由 Andres Rincon 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏