JDBC の長い TNSNAME スタイルの URL を使用して DB サーバーに接続しようとすると、問題が発生します。2 つの Oracle クラスター サーバーがあります。そして、これが私の TNSNAME スタイルの URL です。
jdbc:oracle:thin:@(DESCRIPTION=
(LOAD_BALANCE=ON)(FAILOVER=ON)(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1250))
(ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1250))
)
(CONNECT_DATA=
(SERVICE_NAME= DEV1)
)
)
私の問題は、DBA がデータベースを作成するときに、host1 と host2 に異なるサービス名を使用したことです。host1 が DEV1 で host2 が DEV2_B で、ホストの順番を入れ替えるとうまくいかないようです。お気に入り
jdbc:oracle:thin:@(DESCRIPTION=
(LOAD_BALANCE=ON)(FAILOVER=ON)(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1250)) /*host2 now come first, it would be cause connect failure.*/
(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1250))
)
(CONNECT_DATA=
(SERVICE_NAME= DEV1)
)
)
このような状況では、フェイルオーバーや負荷分散は役に立たないと思います。私の質問は、URL で service_name を個別に設定する方法ですか? (これらの 2 つの DB も異なる SID を使用します。DEVA と DEVB) 助けてください、ありがとう。