我正在使用 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 .它详细描述了问题,但它非常简短地提到了解决方案部分。
正如我们在上述来源中看到的那样,这是新状态下的问题。一旦我观察到即使响应返回此异常,应用程序仍继续将记录插入数据库。
我们如何解决上述异常及其对正在运行的启动应用程序的影响?
最佳答案
您需要配置Tomcat JDBC 连接池来测试连接。这应该可以防止数据库运行状况指示器因连接断开而卡住。
您可以通过向 application.properties 添加一些配置来实现。例如:
spring.datasource.test-on-borrow: true
spring.datasource.validation-query: SELECT 1 FROM DUAL
spring.datasource.log-validation-errors: true
关于spring-boot - 检查数据库健康时收到 "RecoverableDataAccessException"是什么原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27058614/