0

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) 助けてください、ありがとう。

4

1 に答える 1

1
(DESCRIPTION_LIST=
            (FAILOVER=true)
            (LOAD_BALANCE=false)
            (DESCRIPTION=
            (ADDRESS= (PROTOCOL=TCP) (HOST=TEST_DB) (PORT=1521))
            (CONNECT_DATA=
            (SERVICE_NAME=saibal)))             
            (DESCRIPTION=
            (ADDRESS= (PROTOCOL=TCP) (HOST=MY_DB) (PORT=1521))
            (CONNECT_DATA=
            (SERVICE_NAME= test_saibal))
)
于 2016-08-31T22:26:12.070 に答える