java应用连接oracle 11g R2 rac (用scanip连接报错)

本文介绍了JAVA应用通过SCAN IP连接Oracle 11g RAC时遇到ORA-12505错误的问题及原因。该错误表明监听器当前未知SID。文章提供了解决方案,包括使用正确的JDBC驱动版本和VIP地址进行连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


java应用连接oracle 11g R2 rac (用scanip连接报错) 

 ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
The Connection descriptor used by the client was: 


  

In this Document

Symptoms
 Changes
 Cause
 Solution


APPLIES TO:

Oracle Internet Directory - Version 10.1.2 and later
Information in this document applies to any platform.
***Checked for relevance on 13-Jan-2014***

SYMPTOMS

Provisioning profiles from Applications to OID reporting errors in the trace files with SCAN enabled.

Example: (where MYHOST is the SCAN name)
Using Service Name to connect - URL : jdbc:oracle:thin:@MYHOST:1521:ORCL,user : APPS
Exception Connecting to DB :java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
The Connection descriptor used by the client was:
MYHOST:1521:ORCL

ODIException: 0:ODIException: Exception Connecting to DB :java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
The Connection descriptor used by the client was:
MYHOST:1521:ORCL

Exception connecting : java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
The Connection descriptor used by the client was:
MYHOST:1521:ORCL

ODI Exception while Initialising PLSQL Reader
at oracle.ldap.odip.gsi.PLSQLReader.initialise(PLSQLReader.java:181)
at oracle.ldap.odip.prov.ProvAppToOIDSync_2_0.initialise(ProvAppToOIDSync_2_0.java:128)
at oracle.ldap.odip.engine.ProvThread.runOldVersion(ProvThread.java:548)
at oracle.ldap.odip.engine.ProvThread.run(ProvThread.java:182)


Testing the same connection using  a JDBC test the same error "ORA-12505, TNS:listener does not currently know of SID given in connect descriptor" is reported.

However connections are successful outside of OID using sqlplus/tnsnames.ora with SCAN name

CHANGES

Changed provisioning profile orclodipprofileinterfaceconnectinformation to use a SCAN name
rather than the physical or virtual name.
 

CAUSE


SCAN will ONLY work with the 11.2 version (Client or Database)
If you want to use a process that uses the 11.1 or lower version of the Oracle client, you must connect using the VIP addresses (the normal method)

SCAN is limited to only 11.2 because of certain parts of the code that have to negotiate DNS lookup.


While the 10.2.x.x or 11.1.x.x JDBC driver can connect to an 11.2.0.1 database using a "traditional" connection, those versions do not support SCAN functionality

SOLUTION


You must connect using the VIP addresses (the normal method).  Scan is not supported with version 10g.


可以通过更好应用的jdbc驱动来解决

oracle 对应的JDBC驱动 版本

Oracle  版本 jdk版本 推荐jar包 备注
Oracle 8i JDK 1.1.x classes111.zip  
Oracle 8i JDK 1.1.x classes12.zip  
Oracle 9i JDK 1.1.x classes111.jar 或者 classes111.zip  
Oracle 9i JDK 1.2 and JDK 1.3 classes12.jar 或者 classes12.zip  
Oracle 9i JDK 1.4 ojdbc14.jar   
Oracle 9i JDK 1.5 ojdbc5.jar  
Oracle 9i JDK 1.6 ojdbc6.jar  
Oracle 10g JDK 1.2 and JDK 1.3.   classes12.jar   
Oracle 10g JDK 1.4 and 5.0 ojdbc14.jar    
Oracle 11g jdk5 ojdbc5.jar  
Oracle 11g jdk6 ojdbc6.jar

如果一个jdbc的jar包你不知道是那个版本的,可以解压这个jar包,再META-INF\MANIFEST.MF 文件中找文件内容如下.

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.5
Created-By: 1.5.0_51-b10 (Sun Microsystems Inc.)
Implementation-Vendor: Oracle Corporation
Implementation-Title: JDBC
Implementation-Version: 11.2.0.4.0
Repository-Id: JAVAVM_11.2.0.4.0_LINUX.X64_RELEASE
Specification-Vendor: Sun Microsystems Inc.
Specification-Title: JDBC
Specification-Version: 4.0
Main-Class: oracle.jdbc.OracleDriver
sealed: true
Name: oracle/sql/converter/
Sealed: false
Name: oracle/sql/
Sealed: false
Name: oracle/sql/converter_xcharset/
Sealed: false
Name: oracle/replay/driver/
Sealed: false


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值