当前位置: 首页 > 知识库问答 >
问题:

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

濮阳宁
2023-03-14

我将Spring Boot和数据源与jdbc模板(postgres)一起使用。在我的服务中,我做到了

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

以及以后的jdbcTemplate()。查询(…) 。一切正常,但当我重新启动数据库时,它停止工作。看起来数据源没有重新连接。我得到:

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

当我添加以下内容时,出现了相同的错误:

spring:
  datasource:
    testOnBorrow: true
    validationQuery: select 1

如何使数据源自动重新连接?


共有1个答案

胡利
2023-03-14

实际上,我发现它在添加以下内容后确实重新连接:

spring:
  datasource:
    testOnBorrow: true
    validationQuery: select 1

我只需要等待默认的validationInterval30秒

 类似资料:
  • 我有一个Java后端的Web应用程序,它使用Tomcat jdbc-pool进行数据库连接。这工作罚款。 然而,在将其导出到其他位置之前,我正在尝试万无一失,最近发生了一个场景,有人重新启动了SQL Server数据库服务,但没有重新启动Tomcat服务。这导致了SQLException:,直到我重新启动Tomcat,迫使jdbc池数据源重新连接。 我在Tomcat jdbc池文档中寻找某种配置,

  • 在从sping-引导1.5. x切换到sping-引导-2. x后,当db连接关闭时,我的Spring应用程序会不断尝试重新连接到数据库。我甚至无法调用运行状况检查endpoint。 这只发生在spring-boot-2.x中 它可能会尝试重新连接,但就我而言,它不应该阻止整个应用程序。 application.yml pom.xml 当数据库关闭时,我得到以下错误的泛滥。 错误

  • 我有一个Spring Boot(1.5.17)Web应用程序,其Tomcat JDBC连接池(8.5.34)配置如下: 现在,如果我重新启动数据库服务器(SQL server),我会得到exception,连接池未恢复。 那么我做错了什么?

  • 主要内容:1. 导入JDBC包,2. 注册JDBC驱动程序,数据库URL配置,创建连接对象,使用具有用户名和密码的数据库URL,关闭JDBC连接安装相应的驱动程序后,现在是时候来学习使用JDBC建立数据库连接了。 建立JDBC连接所涉及的编程相当简单。 以下是基本的四个步骤 - 导入JDBC包:使用Java语言的语句在Java代码开头位置导入所需的类。 注册JDBC驱动程序:使JVM将所需的驱动程序实现加载到内存中,从而可以满足JDBC请求。 数据库URL配置:创建一个正确格式化的地址,指向要连

  • 我添加了org.apache.tomcat.jdbc.pool.PoolProperties。每次DB重新启动时,应用程序都是不可用的,因为已建立的连接仍然存在。我得到以下错误: 组织。postgresql。util。PSQLException:此连接已关闭 我试着在游泳池上使用一些其他设置,但没有效果。。。 谢谢你的帮助!

  • MySQL长连接 MySQL短连接每次请求操作数据库都需要建立与MySQL服务器建立TCP连接,这是需要时间开销的。TCP连接需要3次网络通信。这样就增加了一定的延时和额外的IO消耗。请求结束后会关闭MySQL连接,还会发生3/4次网络通信。 close操作不会增加响应延时,原因是close后是由操作系统自动进行通信的,应用程序感知不到 长连接就可以避免每次请求都创建连接的开销,节省了时间和IO消