Spring Boot JPA-配置自动重新连接
我有一个不错的Spring Boot" title="Spring Boot">Spring Boot JPA Web应用程序。它部署在Amazon Beanstalk上,并使用Amazon
RDS保留数据。但是,它不经常使用,因此在一段时间后由于以下异常而失败:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:从服务器成功接收到的最后一个数据包是79,870,633毫秒之前。
成功发送到服务器的最后一个数据包是79,870,634毫秒之前。大于服务器配置的“
wait_timeout”值。您应考虑在应用程序中使用连接之前使连接有效性到期和/或对其进行测试,或者增加服务器为客户端超时配置的值,或者使用Connector
/ J连接属性’autoReconnect = true’来避免此问题。
我不确定如何配置此设置,也无法在http://spring.io(虽然这是一个很好的网站)上找到有关此信息。有什么想法或指向信息的指针?
回答:
我认为引导正在DataSource
为您配置。在这种情况下,并且由于您使用的是MySQL,因此您最多可以将以下内容添加application.properties
到1.3中
spring.datasource.testOnBorrow=truespring.datasource.validationQuery=SELECT 1
如djxak在注释所指出的,用于四个连接池弹簧引导支撑1.4+定义了特定的名称空间:tomcat
,hikari
,dbcp
,dbcp2
(dbcp
被弃用的1.5)。您需要检查使用的连接池,并检查是否支持该功能。上面的示例是针对tomcat的,因此您必须在1.4+中编写如下代码:
spring.datasource.tomcat.testOnBorrow=true spring.datasource.tomcat.validationQuery=SELECT 1
请注意,使用的autoReconnect
是不建议:
不建议使用此功能,因为当应用程序无法正确处理SQLExceptions时,它具有与会话状态和数据一致性相关的副作用,并且仅设计用于无法配置应用程序来处理由以下原因导致的SQLExceptions时使用失效和陈旧的连接正确。
以上是 Spring Boot JPA-配置自动重新连接 的全部内容, 来源链接: utcz.com/qa/406007.html