Регистрация обратного вызова для прозрачного переключения приложений в драйвере Oracle JDBC - PullRequest
0 голосов
/ 10 марта 2019

В моем приложении я создаю соединение, предоставляя два имени сервера БД в строке URL-адреса БД при создании соединения.Насколько я понимаю, в случае сбоя первичной БД соединение будет установлено со вторичной (прозрачно).Это называется прозрачным переключением приложений (TAF)?

В основном обработка отказа при сбое обрабатывается на уровне отдельного соединения, верно?

Как зарегистрировать обратный вызов для получения уведомлений при возникновении сбоя?

Я ищу конкретный API вУровень OracleDataSource или уровень OracleConnection.Может ли кто-нибудь предоставить несколько строк примера кода?

1 Ответ

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

Существует несколько способов обработки аварийного переключения. Кроме того, это зависит от того, хотите ли вы обрабатывать только плановое техническое обслуживание или незапланированные простои. (a) Вы можете использовать универсальный пул соединений (UCP), который обеспечивает как плановые, так и незапланированные отключения. Оформить заказ Технический документ . (b) Если вы хотите построить свою собственную логику, вы можете использовать simplefan.jar для получения уведомлений, когда происходят события UP / DOWN экземпляра БД.

Если вы ищете API для регистрации обратного вызова TAF, вот оно. Обратите внимание, что они используются только с драйверами OCI и JDBC-OCI.

oracle.jdbc.OracleConnection --
    public void registerTAFCallback(oracle.jdbc.OracleOCIFailover cbk, Object obj)
...