gpt4 book ai didi

java - 如何在 Spring 中自动重新连接 DataSource 连接?

转载 作者:可可西里 更新时间:2023-11-01 09:00:04 24 4
gpt4 key购买 nike

问题:当我的 spring 应用程序正在运行时,同时数据库服务器停止/重新启动,然后数据库连接丢失并且从未恢复。

我测试如下:

  • 执行查询:OK
  • 服务mysql停止
  • 执行查询:异常:

    无法打开 JPA EntityManager 进行交易;嵌套异常是 javax.persistence.PersistenceException:

    com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:连接关闭后不允许进行任何操作。

  • 服务mysql启动

  • 执行查询:还是异常!

问题:如何让 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

最佳答案

我正在使用类似 HikariCP 的连接池自动重新连接。

请参阅 Stackoverflow 上的示例:How do I configure HikariCP in my Spring Boot app in my application.properties files?

关于java - 如何在 Spring 中自动重新连接 DataSource 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47283069/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com