Products | Versions |
---|---|
TIBCO Administrator | 5.9.0 and above |
Not Applicable | - |
Resolution:
Description:
============
Oracle supplied driver version 12 c Release 1 is not compatible with TIBCO Runtime Agent (TRA) 5.8.0, 5.7.x and TIBCO Administrator (Admin) 5.8.0, 5.7.x.
If the above mentioned driver is used to connect to Oracle 11 or 10 (TRA and Admin supported Oracle DB version), it fails with the exception below.
*************************************************************************************************************
com.tibco.pof.entity.EntityStoreException: java.sql.SQLException: Could not commit with auto-commit set on
*************************************************************************************************************
Symptoms:
========
Create a domain with ORACLE DB as backend, if you are using the oracle supplied 12c Release 1 driver (ojdbc6.jar).
Then domain utility will throw the below exception.
******************************************************************************************************
2013 Nov 01 10:18:43:116 GMT -0700 DU Error [DomainUtility] AESDKJ-0000 com.tibco.pof.entity.EntityStoreException: java.sql.SQLException: Could not commit with auto-commit set on
at com.tibco.pof.entitystore.db.DBEntityStore.init(DBEntityStore.java:568)
at com.tibco.pof.entitystore.EntityStoreManager.a(EntityStoreManager.java:221)
at com.tibco.pof.entitystore.EntityStoreManager.getEntityStore(EntityStoreManager.java:202)
at com.tibco.pof.entitystore.EntityStoreManager.getReadOnlyEntityDomain(EntityStoreManager.java:333)
at com.tibco.pof.entitystore.EntityStoreManager.getReadOnlyEntityDomain(EntityStoreManager.java:327)
at com.tibco.pof.entitystore.EntityStoreManager.getReadOnlyEntityDomain(EntityStoreManager.java:320)
at com.tibco.pof.authorization.AuthorizationDomain.instance(AuthorizationDomain.java:123)
at com.tibco.pof.authorization.AuthorizationDomain.getMutableDomainByName(AuthorizationDomain.java:153)
at com.tibco.pof.authorization.AuthorizationDomain.getMutableDomain(AuthorizationDomain.java:128)
at com.tibco.pof.authorization.AuthorizationDomain.install_5_1_3(AuthorizationDomain.java:204)
at com.tibco.pof.authorization.AuthorizationDomain.install(AuthorizationDomain.java:159)
at com.tibco.administrator.domain.DomainConfiguration.createDomain(DomainConfiguration.java:1676)
at com.tibco.administrator.du.task.createdomain.CreateDomainTask.a(CreateDomainTask.java:637)
at com.tibco.administrator.du.task.createdomain.CreateDomainTask.execute(CreateDomainTask.java:470)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.tibco.administrator.wizard.progress.Trampoline.invoke(Trampoline.java:96)
at com.tibco.administrator.wizard.progress.BusyWait.run(BusyWait.java:267)
at java.lang.Thread.run(Unknown Source)
Caused by: java.sql.SQLException: Could not commit with auto-commit set on
at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:4439)
at oracle.jdbc.driver.PhysicalConnection.commit(PhysicalConnection.java:4486)
at com.tibco.runtime.pool.jdbc.JdbcConnection.commit(JdbcConnection.java:191)
at com.tibco.pof.entitystore.db.PofInitializationDB.createInitTables(PofInitializationDB.java:46)
at com.tibco.pof.entitystore.db.DBEntityStore.init(DBEntityStore.java:563)
... 20 more
*********************************************************************************************************
Cause:
=====
The error is due to the following intentional change done by ORACLE for their latest driver version.
**************************************ORACLE DRIVER 12C Readme****************************************
Intentional changes that may cause backward compatibility issues
------------------------------------------------------------------------------------------
- Per the JDBC specification, a call to commit() or rollback() when AutoCommit is turned on
should throw an exception. Prior to 12R1, the drivers did not throw any exception which
was a bug (please refer to bug 11891661 for more details). This bug has been fixed in 12R1
so the driver will throw an exception on commit() or rollback() if the AutoCommit mode
is turned on. This change is intentional and makes the Oracle JDBC drivers comply to the
specification.
- Similarly the JDBC specification states that if setAutoCommit is called in the middle of
a local transaction then the transaction is committed. Starting in 12R1, the JDBC drivers
will issue an implicit commit when setAutoCommit is called if a local transaction is detected.
**************************************ORACLE DRIVER 12C Readme****************************************