微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 奇怪的Oracle连接URL

我们的一位客户正在尝试使用以下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连接描述符语法”,请参见JDBC Developers Guide中的表8.3.

语法确实与tnsnames.ora中使用的语法相同;此语法在Oracle Database Net Services Reference中描述.

至于具体问题,它看起来像你在描述符中有不平衡的括号,具体来说:

(FAIlovER=ON)LOAD_BALANCE=OFF)

应该:

(FAIlovER=ON)(LOAD_BALANCE=OFF)

(注意附加(.)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐