JDBC:如何使用属性文件中的详细信息从 Jdbc 连接到 RAC 数据库?
JDBC: How to connect to a RAC database from Jdbc with details in 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=(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,这 2 个异常消失了,但得到了一个新的异常——因此生成了异常。
我的jdk版本是1.7
您可以使用:
扫描侦听器DNS名称:(扫描主机名使用DNS负载均衡,所以你得到一个主机名的多个A记录)
url=jdbc:oracle:thin:@//扫描主机名:port/servicename
另一种选择是使用 tnsnames.ora 文件。如上所述 here。然后,您可以让 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
即更改 url 和驱动程序 class。希望这有帮助。
我正在尝试使用属性文件中的连接字符串通过 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
我正在从创建连接的 java 代码中读取此属性文件。不幸的是,我遇到了这两个异常。
SQLException-Invalid connection string format, a valid format is: "host:port:sid"
SQLException-NL Exception
这里有什么问题?提前致谢。
编辑 1:我正在使用 odbc14.jar ,所以我想到了使用其他 jar。我使用了 odbc7.jar,这 2 个异常消失了,但得到了一个新的异常——因此生成了异常。
我的jdk版本是1.7
您可以使用:
扫描侦听器DNS名称:(扫描主机名使用DNS负载均衡,所以你得到一个主机名的多个A记录)
url=jdbc:oracle:thin:@//扫描主机名:port/servicename
另一种选择是使用 tnsnames.ora 文件。如上所述 here。然后,您可以让 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
即更改 url 和驱动程序 class。希望这有帮助。