Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.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 JDBC:如何从JDBC连接到RAC数据库,详细信息在属性文件中?_Java_Oracle_Jdbc_Properties File - Fatal编程技术网

Java JDBC:如何从JDBC连接到RAC数据库,详细信息在属性文件中?

Java JDBC:如何从JDBC连接到RAC数据库,详细信息在属性文件中?,java,oracle,jdbc,properties-file,Java,Oracle,Jdbc,Properties File,我正在尝试使用属性文件中的连接字符串通过JDBC连接到RAC数据库 datasource-url=jdbc\:oracle\:thin\:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=ON)(FAILOVER=ON)(ADDRESS=(PROTOCOL=TCP)(HOST=171.17.aa.ee)(PORT=21521))(ADDRESS=(PROTOCOL=TCP)(HOST=171.17.aa.dd)(PORT=21521))(ADDRESS=(PRO

我正在尝试使用属性文件中的连接字符串通过JDBC连接到RAC数据库

datasource-url=jdbc\:oracle\:thin\:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=ON)(FAILOVER=ON)(ADDRESS=(PROTOCOL=TCP)(HOST=171.17.aa.ee)(PORT=21521))(ADDRESS=(PROTOCOL=TCP)(HOST=171.17.aa.dd)(PORT=21521))(ADDRESS=(PROTOCOL=TCP)(HOST=171.17.aa.cc)(PORT=21521))(ADDRESS=(PROTOCOL=TCP)(HOST=171.17.aa.bb)(PORT=21521)))(CONNECT_DATA=SERVICE_NAME=ssss)(SERVER=DEDICATED)))
datasource-username=xxxx
datasource-password=yyyy
driver-class=oracle.jdbc.driver.OracleDriver
这是属性文件

datasource-url=jdbc\:oracle\:thin\:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=ON)(FAILOVER=ON)(ADDRESS=(PROTOCOL=TCP)(HOST=171.17.aa.ee)(PORT=21521))(ADDRESS=(PROTOCOL=TCP)(HOST=171.17.aa.dd)(PORT=21521))(ADDRESS=(PROTOCOL=TCP)(HOST=171.17.aa.cc)(PORT=21521))(ADDRESS=(PROTOCOL=TCP)(HOST=171.17.aa.bb)(PORT=21521)))(CONNECT_DATA=SERVICE_NAME=ssss)(SERVER=DEDICATED)))
datasource-username=xxxx
datasource-password=yyyy
driver-class=oracle.jdbc.driver.OracleDriver
我从创建连接的java代码中读取这个属性文件。不幸的是,我得到了这两个例外

SQLException-Invalid connection string format, a valid format is: "host:port:sid"
SQLException-NL Exception 
这里怎么了?提前谢谢

编辑1:我在使用odbc14.jar,所以我想使用其他的jar。我使用了odbc7.jar,这两个异常消失了,但得到了一个新的异常——所以生成了异常

我的jdk版本是1.7

您可以使用:

  • 扫描侦听器DNS名称:(扫描主机名使用DNS负载平衡,因此您可以为一个主机名获得多个A记录)

    url=jdbc:oracle:thin:@//扫描主机名:port/servicename

  • 另一种选择是使用tnsnames.ora文件。如上所述。然后,您可以让DBA维护这个文件,让他们在这个文件中进行更改

  • 第三种选择是使用引号和反斜杠,直到它开始工作。我认为这个
    jdbc\oracle
    应该重写为
    jdbc:oracle
    jdbc\:oracle

您可以使用:

  • 扫描侦听器DNS名称:(扫描主机名使用DNS负载平衡,因此您可以为一个主机名获得多个A记录)

    url=jdbc:oracle:thin:@//扫描主机名:port/servicename

  • 另一种选择是使用tnsnames.ora文件。如上所述。然后,您可以让DBA维护这个文件,让他们在这个文件中进行更改

  • 第三种选择是使用引号和反斜杠,直到它开始工作。我认为这个
    jdbc\oracle
    应该重写为
    jdbc:oracle
    jdbc\:oracle


终于,它开始工作了。发布属性以供其他人参考。我使用了odbc7.jar

datasource-url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=171.17.aa.bb)(PORT=21521))(ADDRESS=(PROTOCOL=TCP)(HOST=171.17.aa.cc)(PORT=21521))(ADDRESS=(PROTOCOL=TCP)(HOST=171.17.aa.dd)(PORT=21521))(ADDRESS=(PROTOCOL=TCP)(HOST=171.17.aa.ee)(PORT=21521)))(LOAD_BALANCE=yes)(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=zzzz)))
datasource-username=xxx
datasource-password=yyy
driver-class=oracle.jdbc.OracleDriver

i、 e更改了url和驱动程序类。希望这有帮助。

最后,它开始工作了。发布属性以供其他人参考。我使用了odbc7.jar

datasource-url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=171.17.aa.bb)(PORT=21521))(ADDRESS=(PROTOCOL=TCP)(HOST=171.17.aa.cc)(PORT=21521))(ADDRESS=(PROTOCOL=TCP)(HOST=171.17.aa.dd)(PORT=21521))(ADDRESS=(PROTOCOL=TCP)(HOST=171.17.aa.ee)(PORT=21521)))(LOAD_BALANCE=yes)(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=zzzz)))
datasource-username=xxx
datasource-password=yyy
driver-class=oracle.jdbc.OracleDriver


i、 e更改了url和驱动程序类。希望这有帮助。

您不需要在属性文件中转义
。另外,在
jdbc
之后缺少一个。请尝试
jdbc:oracle:thin:@(…
是的,很抱歉,我使用的是jdbc/:oracle,粘贴时出错了吗?请尝试删除反斜杠?我认为没有必要尝试,相同的例外情况:/请将您的解决方案作为答案发布并接受它,以便将问题从“开放式问题队列”中删除。您不需要在属性文件中转义
。另外,在
jdbc
之后缺少一个。请尝试
jdbc:oracle:thin:@(…
是的,对此很抱歉,我使用的是jdbc/:oracle,粘贴时出错了吗?您是否尝试删除反斜杠?我认为没有必要尝试,相同的例外情况:/请将您的解决方案作为答案发布并接受它,以便将问题从“开放式问题队列”中删除。我应该在我的项目中创建tnsnames.ora文件吗?我应该在我的项目中创建tnsnames.ora文件吗?如果您使用的是Java7,则不应该使用过时的
odbc14.jar
(该文件适用于Java 1.4)但是,
ojdbc7.jar
相反。另外:您的驱动程序版本似乎是针对Oracle 10的。您真的是这样一个过时的版本吗?我尝试使用odbc7.jar,但它出现了异常,我发现这意味着java和jdbc版本是可兼容的。因此,尝试更改它后,它工作了。将使用odbc7.jar重试并发布结果。工作正常吗因此,只有url和驱动程序类发生了变化。如果您使用的是Java7,则不应使用过时的
odbc14.jar
(适用于Java1.4)但是,
ojdbc7.jar
相反。另外:您的驱动程序版本似乎是针对Oracle 10的。您真的是这样一个过时的版本吗?我尝试使用odbc7.jar,但它出现了异常,我发现这意味着java和jdbc版本是可兼容的。因此,尝试更改它后,它工作了。将使用odbc7.jar重试并发布结果。工作正常吗所以唯一的变化是url和驱动程序类