0

2 つのサーバーで高可用性を実現するために Oracle データベースに datagaurd を実装し、Jboss アプリケーション サーバーに接続してプライマリ データベース インスタンスに常に接続するように jdbc 設定を構成しました。

次の文字列を使用する場合:

<connection-url>
jdbc:oracle:thin:@(DESCRIPTION=(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)(ADDRESS_LIST=(LOAD_BALANCE=OFF)(FAILOVER=ON)(ADDRESS=(PROTOCOL=TCP)(HOST=<ip1>)(PORT=<port>))(ADDRESS=(PROTOCOL=TCP)(HOST=<ip2>)(PORT=<port>)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME
= MYDB)(FAILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC))))</connection-url>

スイッチオーバー/ファイルオーバーを実行すると、ip1 がダウンし、ip2 がアップします。リストで最初に ip2 を指定すると、接続が確立されます (ip2 に接続しようとした場合と同じように)。ただし、最初に ip1 を配置すると、直接接続しようとした場合と同じエラーが発生します

java.util.concurrent.ExecutionException: java.lang.RuntimeException:
java.sql.SQLException: ORA-01033: ORACLE initialization or shutdown
in progress
4

1 に答える 1

0

Data Guard with RAC の推奨接続 URL は以下のとおりです。正しい接続 URL を使用していることを確認できますか?

jdbc:oracle:thin:@(DESCRIPTION = (FAILOVER=on)
     (CONNECT_TIMEOUT= 15) (RETRY_COUNT=20) (RETRY_DELAY=3)
       (ADDRESS_LIST =
           (LOAD_BALANCE=on)
           (ADDRESS = (PROTOCOL = TCP) (HOST=primary-scan) (PORT=1521)))
      (ADDRESS_LIST =
             (LOAD_BALANCE=on)
             (ADDRESS = (PROTOCOL = TCP) (HOST=secondary-scan) (PORT=1521))) 
      (CONNECT_DATA= (SERVICE_NAME = gold-cloud-service-name)))
于 2016-04-11T20:04:42.100 に答える