Какой тип аварийного переключения используется тонким драйвером jdbc oracle при наличии нескольких хостов - PullRequest
0 голосов
/ 04 марта 2019

Я ищу код, использующий тонкий драйвер Oracle jdbc для подключения к базе данных Oracle 12c.Я новичок в драйвере jdbc / oracle.URL-адрес, используемый для создания соединения с базой данных:

dbUrl = "jdbc:oracle:thin@(description=(load_balance=off)(failover=on)
              (address=(protocol=tcp)(host=host1.bar.com)(port=2000))
              (address=(protocol=tcp)(host=host2.bar.com)(port=2000)) 
              (connect_data=(service_name=PROD)(failover_mode=(type=select)(method=basic)(retries=5)(delay=5))))

путем вызова метода:

java.sql.DriverManager.getConnection(dbUrl);

У меня есть несколько вопросов: - Использует ли драйвер «Прозрачный отказоустойчивое приложение (TAF)?«или механизм« Быстрое переключение соединения (FCF) »?- Могу ли я зарегистрировать обратный вызов, чтобы получить уведомление, когда произошло аварийное переключение?Если да, то может кто-нибудь указать мне документ или образец кода.- Есть ли API в объекте соединения, чтобы найти текущую базу данных, к которой подключен (которая будет возвращать либо host1 или host2, либо ничего)?- Я не могу найти документацию, которая описывает параметры в приведенной выше строке dbUrl.Может кто-нибудь, пожалуйста, укажите мне несколько ссылок на документацию.

Любая помощь будет принята с благодарностью.

Спасибо, Ахмед.

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

Существует simplefan.jar , который вы можете использовать для обработки событий, связанных с экземпляром UP, DOWN и т. Д.,

Убедитесь, что у вас есть ons.jar, simplefan.jar вместе сДрайвер JDBC в пути к классам.

0 голосов
/ 05 марта 2019

(a) Включение или выключение FCF зависит от версии используемого вами драйвера JDBC.Если вы используете универсальный пул соединений (UCP) версии 12.2, то FCF будет включен по умолчанию.Обратитесь к Руководству разработчиков UCP для получения более подробной информации о FCF.

FAILOVER: Включает аварийное переключение во время соединения.При включении он инструктирует Oracle Net переключаться на другой прослушиватель в случае сбоя первого прослушивателя.Количество адресов в списке определяет, сколько адресов испробовано.Если установлено значение OFF, Oracle Net будет пытаться использовать только один адрес.Всегда устанавливайте FAILVOER = ON для конфигурации базы данных ADG или DG.

LOAD_BALANCE: Этот параметр включает балансировку нагрузки времени соединения, что позволяет слушателям принимать решения о маршрутизации на основе нагрузки на узлы.Если для этого параметра задано значение OFF, Oracle Net последовательно пробует адреса протоколов, пока один из них не будет успешным.Если для этого параметра установлено значение ON для адреса на основе SCAN, новые запросы на подключение будут случайным образом назначаться одному из 3 IP-адресов на основе SCAN, разрешенных DNS.Эта рандомизация позволяет всем слушателям разделять работу по обслуживанию входящих запросов на подключение.Для клиентов без SCAN службы Oracle Net случайным образом выбирают адрес в списке адресов и подключаются к слушателю на этом узле

(b) Вы можете найти хост, к которому вы подключены, с помощью приведенного ниже SQL.

SELECT имя_хоста FROM v $ instance;

...