Я создаю пользовательские проверки работоспособности для службы весенней загрузки, которая подключается к 7 различным базам данных Oracle. Я хотел построить их так, чтобы я мог использовать spring-boot-admin для мониторинга сервисов. Проблема в том, что когда сервер недоступен, например, он выходит из строя или брандмауэр настроен неправильно, тайм-аут занимает очень много времени, одну минуту. Затем Spring-boot-admin помечает сервер как недоступный, а не выключенный.
Насколько я понимаю, происходит то, что сокет никогда не соединяется, и в конечном итоге соединения попадают в другое время ожидания. В ходе проверки работоспособности я попытался настроить время ожидания сети, но, похоже, это не имеет значения. Мы используем
https://docs.oracle.com/en/database/oracle/oracle-database/18/jjuar/oracle/ucp/jdbc/PoolDataSourceImpl.html
и ojdbc7
Проверка работоспособности использует компоненты источника данных, определенные для основного пула, но я не уверен, что пул уже былсоздается, если уже слишком поздно устанавливать таймауты сети. Вопрос для меня заключается в том, что в документации действительно неясно, какие свойства являются действительными.
Я устал от этих проблем, но они, похоже, ничего не делают
Посмотрел эти ссылки
Настройка таймаута сети для соединения JDBC
JDBC getConnection Тайм-аут проблема
PreparedStatement никогда не будет тайм-аут, даже если явно установлен
Это дает более подробную информациютипов таймаутов.
https://www.programering.com/a/MDNzIjMwATY.html
Итак, мой вопрос: как на самом деле настроить пул оракула, чтобы справиться с сетью / сокетом, транзакцией, пулом и таймаутами операторов?