【问题标题】:What is the cause of "RecoverableDataAccessException" received when checking health of database?检查数据库运行状况时收到“RecoverableDataAccessException”的原因是什么?
【发布时间】:2014-11-21 09:58:18
【问题描述】:

我正在使用 spring-boot 和 oracle 数据库。

在访问http://localhost:8888/health 健康端点时,我得到以下响应:

{"status":"DOWN","error":"org.springframework.dao.RecoverableDataAccessException: ConnectionCallback; SQL []; Closed Connection; nested exception is java.sql.SQLRecoverableException: Closed Connection"}

在搜索上述问题详细信息时,我找到了此链接https://github.com/spring-projects/spring-boot/issues/1303。它详细描述了问题,但非常简短地提到了解决部分。

正如我们在上述来源中看到的那样,这是新状态下的问题。一旦我观察到即使响应返回此异常,应用程序仍会继续将记录插入数据库。

我们如何解决上述异常以及它对正在运行的启动应用程序有什么影响?

【问题讨论】:

    标签: spring-boot tomcat-jdbc


    【解决方案1】:

    您需要配置 Tomcat JDBC 连接池来测试连接。这应该可以防止数据库运行状况指示器因连接中断而卡住。

    您可以通过向 application.properties 添加一些配置来实现。例如:

    spring.datasource.test-on-borrow: true
    spring.datasource.validation-query: SELECT 1 FROM DUAL
    spring.datasource.log-validation-errors: true
    

    【讨论】:

    • 非常感谢@andy-wilkinson。这正是我想要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 2017-08-03
    • 1970-01-01
    • 2015-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多