XAResource.commit() Method Fails with ORA-24756 on a Transaction Branch.
Last updated on MAY 19, 2017
Applies to:JDBC - Version 184.108.40.206 and later
Information in this document applies to any platform.
***Checked for relevance on 01-FEB-2016***
A Java JDBC application creates two XA transaction branches and inserts a row. The XA transaction ends for each transaction branch. When the branches are prepared using oxar1.prepare (xid1), you observe one branch returning XA_OK and the other returning XA_RDONLY.
Issuing XAResource.commit()on the branch that returned XA_RDONLY causes the global transaction (both branches) to fail. Neither commit or rollback can be completed and the database is left in an inconsistent state resulting in in-doubt transactions. Both transaction branches are accessing the same resource manager(RM), and, in this case, the same Oracle instance.
The branch which returns XA_RDONLY on the prepare method fails if either XAResource.commit() or XAResource.rollback() is attempt on the branch.
The application fails with the following exceptions.
XA Error is -4
ORA-24756 transaction does not exist
Sign In with your My Oracle Support account
Don't have a My Oracle Support account? Click to get started
My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms