My Oracle Support Banner

XAResource.commit() Method Fails with ORA-24756 on a Transaction Branch. (Doc ID 221089.1)

Last updated on AUGUST 09, 2023

Applies to:

JDBC - Version and later
Information in this document applies to any platform.


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.

at oracle.jdbc.xa.OracleXAResource.checkError(
at oracle.jdbc.xa.client.OracleXAResource.commit(
at XAProblem152397.main(

XA Error is -4
ORA-24756 transaction does not exist




To view full details, 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 a vibrant support community of peers and Oracle experts.