【问题标题】:Springboot HikariCPSpringboot HikariCP
【发布时间】:2017-11-29 17:19:05
【问题描述】:

我在 HikariCP 中使用 springboot,但过了一段时间我的应用程序崩溃并出现错误:

org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC Connection
...

Caused by: org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC Connection

....
Caused by: java.sql.SQLTransientConnectionException: HikariPool-6 - Connection is not available, request timed out after 30000ms.

这是我的应用程序属性

spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.url=jdbc:postgresql://localhost:5432/db_dnaso
#spring.datasource.url=jdbc:postgresql://172.16.1.10:5432/db_dnaso
spring.datasource.username=postgres
spring.datasource.password=dna44100
spring.datasource.driver-class-name=org.postgresql.Driver

所以我有很多保存、查找和其他人访问数据库的权限,我如何可视化方法如何阻止我的连接?

tks

【问题讨论】:

    标签: postgresql spring-boot spring-data-jpa hikaricp


    【解决方案1】:

    您的数据库服务器似乎失去了连接。 Hikari 中属性 maximumPoolSize 的默认值为 10。这意味着它将尝试在服务器启动时创建 10 个连接,如果无法获得 10 个连接,它将无法启动,或者如果您的 db 服务器池大小在使用 Hikari 配置创建的池。 如果您能够启动 Spring Boot 服务器然后遇到此问题,请尝试启用 leakDetectionThreshold 并检查哪个连接需要更多时间并且没有返回到 Hikari 池。

    spring:
      datasource:        
        hikari:                    
          leak-detection-threshold: 2000
    

    【讨论】:

      【解决方案2】:

      启用leakDetectionThreshold,设置为 1 分钟(60000 毫秒)。您很可能在某处发生了连接泄漏……连接被借用但从未关闭(返回)。

      【讨论】:

      • 如何在 springboot 中启用它? tks
      • @brettw 是否也会终止泄露的连接,或者只是报告它
      • @shivam 它不会终止泄漏的连接,这可能很糟糕。可能是在事务真正确实成功完成之前几秒钟,检测报告了泄漏,并且连接是“未泄漏的”。期望开发人员能够快速发现并修复任何报告的泄漏。 HikariCP 不会“修补”诸如此类的编码错误,开发人员很容易忽略它们。
      【解决方案3】:

      在springboot中,可以在application.properties中设置spring.datasource.hikari.leak-detection-threshold=10000(以毫秒为单位)。

      maximumPoolSize 的默认值为10。您可以使用spring.datasource.hikari.maximum-pool-size=xx 更改它。

      【讨论】:

        猜你喜欢
        • 2018-02-28
        • 1970-01-01
        • 1970-01-01
        • 2019-01-17
        • 2016-06-20
        • 2018-01-03
        • 2019-10-13
        • 2017-11-09
        • 2022-07-05
        相关资源
        最近更新 更多