我正在使用spring-boot和oracle数据库。
关于访问http://localhost:8888/health健康端点,我得到以下响应:
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