【问题标题】:Spring Boot BrokenPipe / Communications ExceptionSpring Boot BrokenPipe / 通信异常
【发布时间】:2018-01-24 15:13:02
【问题描述】:

我的 Spring Boot 应用程序面临连接关闭异常。

这是我的数据库配置:

# For auto recconect it is necessary
spring.datasource.tomcat.test-on-borrow = true
spring.datasource.tomcat.test-while-idle= true
spring.datasource.tomcat.test-on-return = true
spring.datasource.tomcat.validationQuery=SELECT 1

spring.datasource.tomcat.time-between-eviction-runs-millis = 60000
spring.datasource.tomcat.min-evictable-idle-time-millis = 300000

spring.datasource.tomcat.min-idle = 10
spring.datasource.tomcat.max-idle = 100

# Maximum number of active connections that can be allocated from this pool at the same time.
spring.datasource.tomcat.max-active = 100

例外:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:从服务器成功接收的最后一个数据包是66,612,631 毫秒前。最后一个成功发送到服务器的数据包是 66,612,631 毫秒前。比配置的服务器长 'wait_timeout' 的值。您应该考虑到期和/或 在您的应用程序中使用之前测试连接有效性,增加 服务器为客户端超时配置值,或使用 连接器/J 连接属性 'autoReconnect=true' 以避免这种情况 问题。

java.net.SocketException: 损坏的管道

我看过很多关于启用自动重新连接的主题,但据我所知不推荐。

【问题讨论】:

    标签: hibernate spring-boot jdbc


    【解决方案1】:

    我将默认数据源提供程序更改为dbcp2,并修复了该错误。

    spring.datasource.type=org.apache.commons.dbcp2.BasicDataSource
    
    # For auto recconect it is necessary
    spring.datasource.dbcp2.test-on-borrow  = true
    spring.datasource.dbcp2.test-while-idle = true
    spring.datasource.dbcp2.test-on-return  = true
    spring.datasource.dbcp2.validationQuery = SELECT 1
    
    spring.datasource.dbcp2.time-between-eviction-runs-millis = 60000
    spring.datasource.dbcp2.min-evictable-idle-time-millis = 300000
    
    spring.datasource.dbcp2.min-idle = 10
    spring.datasource.dbcp2.max-idle = 100
    

    【讨论】:

      猜你喜欢
      • 2020-05-11
      • 1970-01-01
      • 2019-01-06
      • 2019-12-26
      • 2019-09-05
      • 2023-03-28
      • 2019-12-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多