问题:当我的spring应用程序运行时,同时数据库服务器停止/重新启动,然后数据库服务器连接丢失且从未恢复。
我测试如下:
执行查询:exception:
无法打开JPA EntityManager进行交易;嵌套异常是javax.persistence.PersistenceException:
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:连接关闭后不允许任何操作。
service mysql start
问题:如何告诉spring DataSource
在连接丢失后自动重新连接?
这是我的配置:
spring.datasource.url=jdbc:mysql://localhost/tablename?useSSL=false
spring.datasource.username=root
spring.datasource.password=rootpw
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.tomcat.validation-query=SELECT 1
spring.datasource.tomcat.validation-query-timeout=5000
spring.datasource.tomcat.test-on-borrow=true
spring.datasource.tomcat.test-on-connect=true
答案 0 :(得分:0)
我的不好,我的配置错误。上面的配置就是自动重新连接所需的全部内容。
答案 1 :(得分:0)
我使用HikariCP之类的连接池自动重新连接。
请参阅Stackoverflow上的示例:How do I configure HikariCP in my Spring Boot app in my application.properties files?