6

お客様の 1 人が、次の JDBC URL を使用して Oracle データベースに接続しようとしています。

jdbc:oracle:thin:@(DESCRIPTION=(FAILOVER=ON)LOAD_BALANCE=OFF)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=server1.domain.com)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=server2.domain.com)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=FOO))) 

彼らはこのエラーを受け取ります:

Caused by: oracle.net.ns.NetException: NL Exception was generated
    at oracle.net.resolver.AddrResolution.resolveAddrTree(AddrResolution.java:614) ~[ojdbc5_11g-11.2.0.1.0.jar:11.2.0.1.0]
    at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:411) ~[ojdbc5_11g-11.2.0.1.0.jar:11.2.0.1.0]
    at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:672) ~[ojdbc5_11g-11.2.0.1.0.jar:11.2.0.1.0]
    at oracle.net.ns.NSProtocol.connect(NSProtocol.java:237) ~[ojdbc5_11g-11.2.0.1.0.jar:11.2.0.1.0]
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1042) ~[ojdbc5_11g-11.2.0.1.0.jar:11.2.0.1.0]
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:301) ~[ojdbc5_11g-11.2.0.1.0.jar:11.2.0.1.0] 

質問:

  1. このような接続 URL は見たことがありません。TNSNAMES.ORA のエントリのように見えます。この接続文字列の意味を知るにはどうすればよいですか?

  2. この役に立たないエラー メッセージの原因は何ですか?

4

2 に答える 2

10

構文は「Oracle Net接続記述子構文」です。JDBC開発者ガイドの表8.3を参照してください。

構文は実際に で使用されている構文と同じtnsnames.oraです。この構文は、『Oracle Database Net Servicesリファレンス』で説明されています。

特定の問題に関しては、具体的には、記述子の括弧のバランスが取れていないように見えます。

(FAILOVER=ON)LOAD_BALANCE=OFF)

次のようにする必要があります。

(FAILOVER=ON)(LOAD_BALANCE=OFF)

(追加に注意してください(。)

于 2013-01-04T13:52:24.873 に答える