我在春季启动应用程序中面临Connection close Exception。
这是我的数据库配置:
# 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:Broken pipe
我已经看到很多关于启用autoReconnect的主题,但据我所知,不建议这样做。
答案 0 :(得分:0)
我将默认数据源提供程序更改为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