Fatal error "java.lang.NoSuchMethodError: oracle.jdbc.pool.OracleDataSource.setConnectionCachingEnable" thrown on start-up of TIBCO BusinessEvents (BE) agent when try to initialize the Oracle database connection pool for Database Concepts (DBConcepts)
book
Article ID: KB0073496
calendar_today
Updated On:
Products
Versions
TIBCO BusinessEvents Enterprise Edition
5.x/6.x
Description
The Oracle database connection pool for DBConcepts cannot be initialized on startup of the BE agent and all database operations fail (connections unavailable).
"FATAL" error: <timestamp> <host> FATAL [main] - [container.standalone] oracle.jdbc.pool.OracleDataSource.setConnectionCachingEnabled(Z)V java.lang.NoSuchMethodError: oracle.jdbc.pool.OracleDataSource.setConnectionCachingEnabled(Z)V at com.tibco.cep.modules.db.service.OraclePre12vConnectionPool.activate(SourceFile:71) at com.tibco.cep.modules.db.service.JDBCConnectionPoolOracle.init(SourceFile:66) at com.tibco.cep.modules.db.service.JDBCConnectionPoolManager.init(SourceFile:32) at com.tibco.cep.modules.db.service.DBConnectionFactory.initialize(SourceFile:61) at com.tibco.cep.modules.impl.ModuleManagerImpl.init(ModuleManagerImpl.java:40) ...
Issue/Introduction
Fatal error "java.lang.NoSuchMethodError: oracle.jdbc.pool.OracleDataSource.setConnectionCachingEnable" thrown on start-up of TIBCO BusinessEvents (BE) agent when try to initialize the Oracle database connection pool for Database Concepts (DBConcepts)
Environment
All Operating Systems
Resolution
The behavior where connection pool was enabled by default in BE has been removed (deprecated) in Oracle JDBC driver version (21.1.x) and replaced with a new version (Oracle Universal Connection Pool). There are two options to fix the issue. We recommend to add the property to the CDD cluster area.
1. To use the new Oracle Universal Connection Pool add CDD property be.dbconcepts.oracle.pool.v12=true Note: It is required to copy the ojdbc<version>.jar and ucp.jar files from Oracle JDBC driver libraries to the BE classpath.
or
2. To use the internal pooling mechanism instead of the Oracle connection pool add CDD property be.dbconcepts.use.oracle.pool=false