代码之家  ›  专栏  ›  技术社区  ›  membersound

如何在Spring中自动重新连接数据源连接?

  •  2
  • membersound  · 技术社区  · 7 年前

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

    我测试如下:

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

      无法打开JPA EntityManager进行交易;嵌套的异常是javax。坚持不懈PersistenceException:

      通用域名格式。mysql。jdbc。例外情况。jdbc4.MySQLNonTransientConnectionException:连接关闭后不允许任何操作。

    • 启动mysql服务

    • 执行查询:仍然异常!

    问题:我怎样才能知道春天 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
    
    2 回复  |  直到 7 年前
        1
  •  1
  •   Lara    7 年前

    我正在使用连接池,如 HikariCP 自动重新连接。

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

        2
  •  0
  •   membersound    7 年前

    我的错,我有一个错误的配置。以上配置是自动重新连接所需的全部内容。