以前は、2 つのデータベースと 1 つのクラスターを含む RAC を使用していたので、正常に機能していたクラスター IP で jdbc シン URL を使用しました。
jdbc:oracle:thin:@(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=host)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=service_name)))
しかし、何らかの理由でクラスター IP がダウンしています。
したがって、両方のデータベースに接続したいので、次のように両方のホストで jdbc シン URL を使用しました。
jdbc:oracle:thin:@(DESCRIPTION=
(LOAD_BALANCE=on)
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=host1) (PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1521)))
(CONNECT_DATA=(SERVICE_NAME=service_name)))
ただし、これを使用すると、データベースに接続するとネットワークエラーが発生することがあります。しかし、個々のホストでそれらをチェックすると、両方で正常に動作します。
そのため、データベースがダウンしているときにオンザフライでデータベースを切り替えることができる回避策が必要です。