#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