Dear All,

 

I have found some issue with ocp database connection pool library. In fact, the issue that it cant set the large pool size. see below my code

 

 

    pool = PoolDataSourceFactory.getPoolDataSource();
   pool.setConnectionFactoryClassName("oracle.jdbc.pool.OracleDataSource");
   pool.setURL("jdbc:oracle:thin:@192.168.1.93:1521:orcl");
   pool.setUser("cmsonline");
   pool.setPassword("password");  
   pool.setInitialPoolSize(100);
   pool.setMinPoolSize(1);
   pool.setConnectionWaitTimeout(0);
   pool.setMaxPoolSize(300);

 

when i set setInitialPoolSize as 50, it's working fine but my application is working in multi-threading environment and need more connections for processing the transactions. Bellow is the exception i have seen when setInitialPoolSize = 100 or more

 

 

java.sql.SQLException: Unable to start the Universal Connection Pool: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource

    at oracle.ucp.util.UCPErrorHandler.newSQLException(UCPErrorHandler.java:541)

    at oracle.ucp.jdbc.PoolDataSourceImpl.throwSQLException(PoolDataSourceImpl.java:587)

    at oracle.ucp.jdbc.PoolDataSourceImpl.startPool(PoolDataSourceImpl.java:276)

    at oracle.ucp.jdbc.PoolDataSourceImpl.setInitialPoolSize(PoolDataSourceImpl.java:1129)

    at com.epic.bsn.util.DBConnectionMangerOracle.main(DBConnectionMangerOracle.java:80)

Caused by: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource

    at oracle.ucp.util.UCPErrorHandler.newUniversalConnectionPoolException(UCPErrorHandler.java:421)

    at oracle.ucp.util.UCPErrorHandler.newUniversalConnectionPoolException(UCPErrorHandler.java:389)

    at oracle.ucp.jdbc.DataSourceConnectionFactoryAdapter.createConnection(DataSourceConnectionFactoryAdapter.java:105)

    at oracle.ucp.common.UniversalConnectionPoolImpl$UniversalConnectionPoolInternal.createOnePooledConnectionInternal(UniversalConnectionPoolImpl.java:1558)

    at oracle.ucp.common.UniversalConnectionPoolImpl$UniversalConnectionPoolInternal.access$600(UniversalConnectionPoolImpl.java:1366)

    at oracle.ucp.common.UniversalConnectionPoolImpl.createOnePooledConnection(UniversalConnectionPoolImpl.java:441)

    at oracle.ucp.common.UniversalConnectionPoolImpl.addNewConnections(UniversalConnectionPoolImpl.java:933)

    at oracle.ucp.common.UniversalConnectionPoolBase.getInitialConnections(UniversalConnectionPoolBase.java:607)

    at oracle.ucp.common.UniversalConnectionPoolBase.start(UniversalConnectionPoolBase.java:722)

    at oracle.ucp.jdbc.PoolDataSourceImpl.startPool(PoolDataSourceImpl.java:270)

    ... 2 more

Caused by: java.sql.SQLException: Listener refused the connection with the following error:

ORA-12518, TNS:listener could not hand off client connection

 

    at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)

    at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133)

    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:199)

    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:480)

    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:413)

    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:508)

    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:203)

    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:33)

    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:510)

    at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:275)

    at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:206)

    at oracle.ucp.jdbc.DataSourceConnectionFactoryAdapter.createConnection(DataSourceConnectionFactoryAdapter.java:99)

    ... 9 more

 

 

Need your expert on this

 

Thanks

FacebookTwitterLinkedin
Pin It
Joomla Tutorials for Beginners