2014-11-21 952 views
2

我正在使用spring-boot和oracle數據庫。檢查數據庫健康狀況時收到「RecoverableDataAccessException」的原因是什麼?

在訪問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。它詳細描述了這個問題,但是它提供了非常簡短的解決方案部分。

正如我們在上面提到的消息來源所見,這是新狀態中的一個問題。一旦我觀察到,即使此異常是作爲響應返回的,應用程序仍會將記錄插入到數據庫中。

我們該如何解決上述異常以及它對正在運行的啓動應用程序有何影響?

回答

3

您需要配置Tomcat JDBC連接池以測試連接。這應防止數據庫運行狀況指示燈因連接斷開而卡住。

您可以通過向application.properties添加一些配置來完成此操作。例如:

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

非常感謝@ andy-wilkinson。這正是我所期待的。 – 2014-11-25 04:09:31