Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 奇数Oracle连接URL_Java_Oracle_Jdbc - Fatal编程技术网

Java 奇数Oracle连接URL

Java 奇数Oracle连接URL,java,oracle,jdbc,Java,Oracle,Jdbc,我们的一位客户正在尝试使用以下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=(SE

我们的一位客户正在尝试使用以下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] 
问题:

  • 我以前从未见过这样的连接URL。它看起来更像是TNSNAMES.ORA中的一个条目。如何找出此连接字符串的含义

  • 是什么导致了这个无用的错误消息


  • 语法为“Oracle Net connection descriptor语法”,请参见中的表8.3

    语法确实与
    tnsnames.ora
    中使用的语法相同;中描述了此语法

    至于具体问题,在我看来,描述符中有不平衡的括号,特别是:

    (FAILOVER=ON)LOAD_BALANCE=OFF)
    
    应该是:

    (FAILOVER=ON)(LOAD_BALANCE=OFF)
    

    (注意附加的

    我从您的tnsnames条目生成了以下连接URL:

    jdbc:oracle:thin:@server1.domain.com:1521/FOO
    
    尝试使用上面的连接URL。 还要检查侦听器是否已启动并正在运行: 在windows:ctrl+r、
    services.msc
    中,检查服务:“Oracle*TNSListener”是否已启动

    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)))
    

    tnsnames条目是什么样子的?您能tnsping FOO吗?它是“Oracle Net connection descriptor syntax”,请参阅中的表8.3。至于我认为您缺少
    before
    LOAD\u BALANCE
    如上所述。我们也在使用这些连接。如果其中一个到地址列表中的服务器关闭,它会进行故障转移。它使用服务名称FOO连接到其中一个服务器。我也遇到了同样的问题,因为我在连接字符串中留下了
    /
    ,即
    jdbc:oracle:thin:@//(DESCRIPTION…
    而不是
    jdbc:oracle:thin:@(DESCRIPTION…
    )。