JDBC URL/Oracle RAC服务器

JDBC URL/Oracle RAC服务器,oracle,jdbc,datasource,Oracle,Jdbc,Datasource,当我尝试将我的应用程序连接到现有的Oracle RAC数据库时。在做了一些测试之后,我们发现我的应用程序只连接到了DB的一个实例。 原始jdbc url如下所示: jdbc:oracle:thin@//yourhostname.com:1521/SID DBA提供了一些信息,表明连接未处于故障切换模式。 在论坛上阅读了一些内容后,似乎需要更改url,添加TNS设置。因此,我得出以下结论: jdbc:oracle:thin@(DESCRIPTION =(LOAD_BALANCE=on)(FAILO

当我尝试将我的应用程序连接到现有的Oracle RAC数据库时。在做了一些测试之后,我们发现我的应用程序只连接到了DB的一个实例。 原始jdbc url如下所示:

jdbc:oracle:thin@//yourhostname.com:1521/SID

DBA提供了一些信息,表明连接未处于故障切换模式。 在论坛上阅读了一些内容后,似乎需要更改url,添加TNS设置。因此,我得出以下结论:

jdbc:oracle:thin@(DESCRIPTION =(LOAD_BALANCE=on)(FAILOVER=on)(ADDRESS =
(PROTOCOL=TCP)(HOST=scan-alias)(PORT = 1521))(CONNECT_DATA(SERVICE_NAME=servicename)))
然而,当我启动应用程序时,我得到一个oracle异常,“NL异常”
有什么想法吗?

您需要在“@”之前添加一个冒号“:”

试试这个:

jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on)(FAILOVER=on)(ADDRESS =(PROTOCOL=TCP)(HOST=scan-alias)(PORT = 1521))(CONNECT_DATA=(SERVICE_NAME=servicename)))

请注意,我还删除了“DESCRIPTION=”之后额外的“”空格字符。

正如Jean deLavarene所暗示的那样

您可能需要在“@”之前添加冒号“:”。此外,您还可以添加:FAILOVER_MODE和RETRIES参数,如下所示

jdbc:oracle:thin:@(DESCRIPTION=(ENABLE=BROKEN)(ADDRESS=(PROTOCOL=TCP)(HOST=scan-alias)
(PORT=1521))(LOAD_BALANCE=ON)(FAILOVER=ON)(CONNECT_DATA=(SERVER=SHARED)(SERVICE_NAME=FOODB)
(FAILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC)(RETRIES=180)(DELAY=5))))
请完成以下URL中提到的数据源配置:


@Dazed如果回答了您的问题,请接受答案。谢谢