我正在尝试通过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,这两个异常消失了,但是又出现了一个新例外 - 生成了异常。我的jdk版本是1.7
答案 0 :(得分:0)
您可以使用:
扫描侦听器DNS名称:(扫描主机名使用DNS负载平衡,因此您可以获得一个主机名的多个A记录)
URL = JDBC:预言:瘦:@ //扫描主机名:端口/服务名
另一种选择是使用tnsnames.ora文件。如上所述here。然后,您可以让DBA维护它,让他们在此文件中进行更改。
第三个选项是使用引号和反斜杠,直到它开始工作。我认为jdbc\oracle
应该改为jdbc:oracle
或jdbc\:oracle
。
答案 1 :(得分:0)
最后,让它运作起来。发布其他人要引用的属性。我用了odbc7.jar。
<?xml version="1.0" encoding="UTF-8"?><entry xmlns="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns:snx="http://www.ibm.com/xmlns/prod/sn" xmlns:thr="http://purl.org/syndication/thread/1.0">
<id>urn:lsid:ibm.com:calendar:event:0eff8fdf-4e5c-48be-be9b-ff700b274576</id>
<snx:eventInstUuid>0eff8fdf-4e5c-48be-be9b-ff700b274576</snx:eventInstUuid>
<title type="text">Test event</title>
<snx:location>Event location</snx:location>
<snx:startDate>2015-10-22T14:00:00.000+03</snx:startDate>
<snx:endDate>2015-10-22T15:00:00.000+03</snx:endDate>
<snx:allday>0</snx:allday>
<category scheme="http://www.ibm.com/xmlns/prod/sn/type" term="event-instance"/>
<content type="html">Event description</content>
</entry>
即更改了url和驱动程序类。希望这会有所帮助。