Сброс подключения к БД при загрузке Spring во время выполнения после закрытия соединения

#java #database #spring-boot #database-connection

#java #База данных #весенняя загрузка #database-connection

Вопрос:

Я получаю сообщение об ошибке connection reset в моем запущенном приложении spring boot для базы данных db2. При перезапуске приложения соединение начинает работать.
Если я получаю connection closed сообщение или connection reset ошибку, мне нужно повторно подключиться к базе данных во время выполнения.

Каков будет наилучший способ сделать это? Я использую пул соединений Hikari, есть ли какое-то свойство, которое позволяет проверять подключение к базе данных .. если нарушено .. затем повторно подключиться. Или какая-либо конфигурация загрузки spring, например @RefreshScope, воссоздает компонент после изменения конфигурации. Любой компонент spring boot, который может помочь в этом случае?

Спасибо за помощь.

Комментарии:

1. Включите проверку соединения в режиме ожидания.

2. Спасибо.. Я хотел знать, как и в spring boot, у нас есть свойство property @RefreshScope для автоматического повторного создания компонента в случае изменений конфигурации. Есть ли что-нибудь доступное для закрытых соединений? Или мне нужно написать свои собственные методы, которые проверяют, закрыто ли соединение, а затем снова создают соединение с базой данных.

3. Как указано, включите проверку подключения для незанятых подключений.

4. Привет, М. Дейнум, спасибо за ответ.. Я установил idleTimeout как 120000, а maxLifetime как 130000, ConnectionTmeout как 300000.. Все еще получаю соединение, помеченное как неработающее исключение. Как мне включить проверку соединения в режиме ожидания? Мой драйвер поддерживает jdbc4, поэтому не задавал запрос проверки

Ответ №1:

У меня такая же проблема, я пытаюсь настроить параметр для hiraki, но все равно получаю соединение закрытым. Вы можете попробовать этот способ по этой ссылке https://www.linkedin.com/pulse/spring-boot-retry-database-connection-startup-abdelghani-roussi?articleId=6723332249346981888