Итак, подведем итоги. Мне не удалось использовать Oracle RAC (Real Application Cluster). Если реализация должна быть программной, вы можете попробовать AbstractRoutingDataSource Approche.
Я реализовал таймер, который пингует текущую базу данных каждую 1 секунду (вы можете использовать запрос проверки и проверить, можете ли вы читать из базы данных ... если нет, мы предполагаем, что соединения нет, и мы можем переключить источник данных).
Благодаря этому я смог изменить источник данных во время выполнения, когда текущий источник данных находится в автономном режиме. Что более важно, это было автоматически.
С другой стороны, есть недостатки:
- В течение короткого времени пользователь может видеть ошибки, если база данных не
переключился пока.
- Некоторая часть приложения может перестать работать, если она работает неправильно
защищен от отсутствия связи с базой данных.