jdbc连接oracle scan IP报错Cannot create PoolableConnectionFactory

现象:

Cannot create PoolableConnectionFactory (Io 异常:Connectionrefused(DESCRIPTION=(ERR=1153)(VSNNUM=186647040)(ERROR_STACK=(ERROR=(CODE=1153)(EMFI=4)(ARGS='(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.4.124.245)(PORT=1521))(CONNECT_DATA=(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))null))'))(ERROR=(CODE=303)(EMFI=1)))))

使用的连接串为,其中10.×.×.30为oracle rac 的scan IP,改连接方式通过plsql连接没有问题,但使用jdbc却不能正常连接

SRV_SMP =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST= 10.×.×.30)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = srv_smp3)

    )

  ) 

解决方法:

 连接串修改为普通的rac vip连接方式后,问题解决

TYDB_SRV_SMP2 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.4.×.45)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.4.×.44)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.4.×.43)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = srv_smp3)
    )
  )

原因分析:

虽然问题解决了,查找了metalink的上的资料,发现有一篇文章和这个很类似,版本完全吻合,是jdbc classpath设置问题,由于问题已经接近,方案中的方法没有验证。

 
 
Jdbc Connection Issues Having The TNS-1153 Error In The Listener Log [ID 1364680.1]    
 
In this Document
  Symptoms
  Cause
  Solution
________________________________________
This document is being delivered to you via Oracle Support's Rapid Visibility (RaV) process and therefore has not been subject to an independent technical review.
Applies to:
JDBC - Version: 11.2.0.2 and later   [Release: 11.2 and later ]
Information in this document applies to any platform.
Symptoms

On : 11.2.0.2 version, JDBC for Java

When attempting to connect from a java program using the JBC Driver 11.2.0.2,
the following error occurs.

ERROR
-----------------------
In the application side:
Exception java.sql.SQLException: Io exception: Connection refused(DESCRIPTION=(ERR=1153)(VSNNUM=186647040)(ERROR_STACK=(ERROR=(CODE=1153)(EMFI=4)(ARGS='(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.201.60.115)(PORT=1521))(CONNECT_DATA=(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))null))'))(ERROR=(CODE=303)(EMFI=1))))
Exception java.sql.SQLException: Io exception: Connection refused(DESCRIPTION=(ERR=1153)(VSNNUM=186647040)(ERROR_STACK=(ERROR=(CODE=1153)(EMFI=4)(ARGS='(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.201.60.115)(PORT=1521))(CONNECT_DATA=(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))null))'))(ERROR=(CODE=303)(EMFI=1))))
Exception java.sql.SQLException: Io exception: Connection refused(DESCRIPTION=(ERR=1153)(VSNNUM=186647040)(ERROR_STACK=(ERROR=(CODE=1153)(EMFI=4)(ARGS='(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.201.60.115)(PORT=1521))(CONNECT_DATA=(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))null))'))(ERROR=(CODE=303)(EMFI=1))))


In the listener log file:
14-SEP-2011 16:25:21 * 1153
TNS-01153: Failed to process string: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.201.60.115)(PORT=1521))(CONNECT_DATA=(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))null))
NL-00303: syntax error in NV string

Cause

The problem was caused by the inclusion of multiple JDBC jar files in the classpath.
In this case it was included the classes12.jar and the ojdbc6.jar. These two jar files were from different version and this was causing the issue.
Solution

As the problem was caused by the inclusion of multiple JDBC jar files in the classpath.
It was taken out the classes12.jar file from the classpath and this fixed the issue.




你可能感兴趣的:(oracle,exception,jdbc,tcp,user,null)