Какова причина возникновения "RecoverableDataAccessException" при проверке работоспособности базы данных?
Я использую 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. В нем подробно описывается проблема, но очень кратко упоминается часть разрешения.
Как мы видим из вышеупомянутого источника, это проблема в новом состоянии. Как только я заметил, что хотя это исключение было возвращено в ответ, приложение продолжало вставлять записи в базу данных.
Как мы можем устранить вышеупомянутое исключение и как это повлияет на работающее загрузочное приложение?
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