当前位置: 首页 > 知识库问答 >
问题:

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

邵逸明
2023-03-14

我有一个用于测试的小型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。

共有3个答案

柳钟展
2023-03-14

在我的例子中,代码没有关闭连接。

尝试使用资源修复它:

try (
    Connection connection = dataSource.getConnection();
    Statement statement = …
) {
…
}

程举
2023-03-14

我使用的是spring boot,我也面临同样的问题,我的解决方案是获得如下连接“DataSourceUtils.getConnection(dataSource)”。所以我从数据源更改。getConnection()数据源utils。getConnection(数据源)

海信鸥
2023-03-14

由于网络延迟或某些查询执行时间过长(超过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);
 类似资料:
  • 问题内容: 我有一个用于测试的小型Java应用程序。我最近搬到了日香。我注意到的是,我不断收到此错误。 以下是我最初对hikari的设置。 它几乎没有用在我的两个设备上,我保证在最后我确实将其关闭。所以我不知道为什么它会不断出现错误?可能是问题所在,或者我需要更改某些设置吗? 我的hikari版本是HikariCP-2.6.1.jar。 问题答案: 由于网络延迟或某些查询执行时间过长(超过3000

  • 我在SpringBoot 2.0中使用标准的HikariCP实现。1份申请书。但是过了一会儿,我一遍又一遍地犯同样的错误 HikariPool-1-连接不可用,请求在30000ms后超时 我首先检查了代码,如果有任何未关闭的连接或丢失的事务注释,但我没有找到任何东西。我也试图增加游泳池,减少我application.yml的时间,但这似乎没有任何效果。 奇怪的是,HikariCP似乎只创建了4个池

  • 我得到连接不可用错误msg与下面的配置xml映射。请建议我在beolw代码中做错了什么,或者这是另一个问题。根据我的调查,这是HikariCP、HiberNate和Spring Batch的一个intregation问题。2.0.3 5.1.64.0.0.RELEASE3.0.0.RELEASE3.0.0.RELEASE0.5 2.3.2 4.3.5。最终 错误:-- 请帮帮我。

  • > 在CentOS 7.8.2003版本上新安装了elasticsearch和kibanaLinux kibana服务显示 Elasticsearch版本是:7.9.2 Kibana版本 服务处于活动状态,没有错误 网络。主办 弹性搜索。主机在/etc/kibana/kibana中没有注释。yml fire walld已停止并禁用 Kibana日志显示无法连接到Elasticsearch。错误:在

  • 我最近开始在我的项目上遇到错误,它调用第三方 api,通常需要 40 秒。看起来来自 hikaripool 的数据库连接被父线程劫持,不可用于其他并发请求 下面是实现的概述 DB插入(业务逻辑) 恢复板调用(40秒) DB更新(业务逻辑) 高并发的一些错误 我试图在本地模拟,发现这些错误与生产相同 光配置 模拟生产逻辑的服务方法 编辑1: 现在向调用此服务方法的api(hikari cp 1中的2

  • 我在GKE上有一个LoadBalancer类型的服务,它指向运行nginx的GKE部署。我的nginx将所有超时设置为10分钟,但在收到响应之前必须等待处理的HTTP/HTTPS请求在30秒后因500个错误而被切断。我的设置: 显然,在LoadBalancer的某个地方有30秒的默认设置。 在浏览了大量文档之后,我在Google上只找到了一个步骤,其中概述了如何在GKE使用的类型为LoadBala