Important Notice: Our web hosting provider recently started charging us for additional visits, which was unexpected. In response, we're seeking donations. Depending on the situation, we may explore different monetization options for our Community and Expert Contributors. It's crucial to provide more returns for their expertise and offer more Expert Validated Answers or AI Validated Answers. Learn more about our hosting issue here.

I have a long running transaction that makes multiple updates to an XA-compliant resource manager and a resource enlistment, prepare, or rollback operation fails with an XAException (errorCode=XAER_NOTA). What causes this behavior and how can it be prevented?

0
Posted

I have a long running transaction that makes multiple updates to an XA-compliant resource manager and a resource enlistment, prepare, or rollback operation fails with an XAException (errorCode=XAER_NOTA). What causes this behavior and how can it be prevented?

0

A. Some resource managers, such as Oracle, have an internal timeout mechanism that will internally roll back work associated with a transaction branch when the timeout period expires. Afterwards, when the WebLogic transaction manager invokes a XAResource.start/prepare/rollback operation on the resource, the Xid provided no longer exists within the resource manager so the resource manager responds with a XAException XAER_NOTA. The javax.transaction.xa.XAResource interface provides a method, setTransactionTimeout, which in some driver implementations sets the resource’s internal timeout interval. The WebLogic transaction manager can be instructed to invoke this method with a value equal to the global transaction timeout prior to each resource enlistment. For JDBC connection pool configurations, set the attribute “XASetTransactionTimeout” to “true” to enable this feature. Note that this JDBCConnectionPool attribute is only applicable for XA-compliant drivers. Also note that setting this a

Related Questions

Experts123