spring-boot:数据库中断后jdbc重新连接

Posted

技术标签:

【中文标题】spring-boot:数据库中断后jdbc重新连接【英文标题】:spring-boot:jdbc re-connection after db outage 【发布时间】:2016-12-10 11:10:49 【问题描述】:

我正在使用带有 jdbc 模板 (postgres) 的 spring-boot 和数据源。在我的服务中,我愿意

@Autowired
public MyDao(DataSource dataSource) 
    this.jdbcTemplate = new JdbcTemplate(dataSource);

及以后的jdbcTemplate().query(...);。一切都按预期工作,但是当我重新启动数据库时,它停止工作。看起来数据源没有重新连接。我得到了:

org.postgresql.util.PSQLException: This connection has been closed.

我在添加时遇到了同样的错误:

spring:
  datasource:
    testOnBorrow: true
    validationQuery: select 1

如何让数据源自动重连?

【问题讨论】:

见***.com/questions/30451470/…(虽然是关于mysql,但设置也适用于其他驱动程序)。 【参考方案1】:

实际上我发现它在添加后确实重新连接:

spring:
  datasource:
    testOnBorrow: true
    validationQuery: select 1

我只需要等待默认的validationInterval 30 秒

【讨论】:

您能否接受您的回答,以免问题显示为未回答?谢谢!

以上是关于spring-boot:数据库中断后jdbc重新连接的主要内容,如果未能解决你的问题,请参考以下文章

连接中断后如何自动重新连接Oracle连接池?

spring-boot jdbc 到 db2 的连接获取读取超时

使用 JDBC 连接到 Athena 时找不到合适的驱动程序

Spring-Boot:如何设置 JDBC 池属性,例如最大连接数?

在 spring-boot 集成测试中使用 H2 数据库的 JDBC 连接错误

spring-boot web 应用程序在一段时间后失去连接到 MySQL / RDS 的能力