0

我正在尝试将 Oracle 通用连接池 (UCP) 与 tomcat6 集成。服务器配置如下:

服务器.xml

<Resource name="jdbc/MyDB"
  auth="Container"
  factory="oracle.ucp.jdbc.PoolDataSourceImpl"
  type="oracle.ucp.jdbc.PoolDataSource"
  description="Oracle Universal Connection Pool"
  connectionFactoryClassName="oracle.jdbc.pool.OracleDataSource"
  minPoolSize="1"
  maxPoolSize="5"
  inactiveConnectionTimeout="20"
  connectionPoolName="UCPPool"
  validateConnectionOnBorrow="true"
  sqlForValidateConnection="select 1 from DUAL"
  fastConnectionFailoverEnabled="true"
  onsConfiguration="nodes=test11grac1.example.com:6200,test11grac2.example.com:6200"
  user="test"
  password="XXXX"
  url="jdbc:oracle:thin:@test11g-cluster.example.com:1521/testdb"/>

上下文.xml

 <ResourceLink name="jdbc/MyDB" global="jdbc/MyDB" />

最初,此配置运行良好。连接均匀地分布在两个 RAC 实例中,当一个实例出现故障时,所有后续请求都指向正在工作的一个实例。

经过一夜的空闲时间后,对连接池的所有请求都导致以下异常:

Caused by: java.lang.NullPointerException: null
    at oracle.ucp.jdbc.oracle.OracleJDBCConnectionPool.createOnePooledConnection(OracleJDBCConnectionPool.java:1260) ~[ucp.jar:11.2.0.3.0]
    at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionWithoutCountingRequests(UniversalConnectionPoolImpl.java:339) ~[ucp.jar:11.2.0.3.0]
    at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnectionAndValidate(UniversalConnectionPoolImpl.java:168) ~[ucp.jar:11.2.0.3.0]
    at oracle.ucp.common.UniversalConnectionPoolImpl.borrowConnection(UniversalConnectionPoolImpl.java:143) ~[ucp.jar:11.2.0.3.0]
    at oracle.ucp.jdbc.JDBCConnectionPool.borrowConnection(JDBCConnectionPool.java:157) ~[ucp.jar:11.2.0.3.0]
    at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:931) ~[ucp.jar:11.2.0.3.0]
    at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:873) ~[ucp.jar:11.2.0.3.0]
    at oracle.ucp.jdbc.PoolDataSourceImpl.getConnection(PoolDataSourceImpl.java:863) ~[ucp.jar:11.2.0.3.0]
    at org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:46) ~[hibernate-entitymanager-3.4.0.GA.jar:3.4.0.GA]

什么可能导致此异常,是否有任何解决方法?

4

1 回答 1

0

升级ojdbc6.jarucp.jar最新 (12c) 版本后。问题神奇地消失了。

于 2014-08-25T07:28:32.453 回答