Informix Error -32016: An Resource Manager error occurred in the transaction branch.
Cause and resolution
An Resource Manager error occurred in the transaction branch.
This error is same as XAER_RMERR in the X/OPEN XA Specification Standard. For more information, refer to the "Distributed Transaction Processing: The XA Specification".
According to the X/OPEN XA Specification Standard :
In the xa_close context, an error occurred when closing the resource.
In the xa_commit context, an error occurred in committing the work performed on behalf of the transaction branch and the branch's work has been rolled back. Note that returning this error signals a catastrophic event to a Transaction Manager because other Resource Managers might successfully commit their work on behalf of this branch. This error should be returned only when a Resource Manager concludes that it can never commit the branch and that it cannot hold the branch's resources in a prepared state. Otherwise, [XA_RETRY] should be returned.
In the xa_end context, an error occurred in dissociating the transaction branch from the thread of control.
In the xa_forget context, an error occurred in the Resource Manager and the Resource Manager has not forgotten the transaction branch.
In the xa_open context, An error occurred when opening the resource.
In the xa_prepare context, the Resource Manager encountered an error in preparing to commit the transaction branch's work. The specified XID might or might not have been prepared.
In the xa_recover context, an error occurred in determining the XIDs to return.
In the xa_rollback context, an error occurred in rolling back the transaction branch. The Resource Manager is free to forget about the branch when returning this error so long as all accessing threads of control have been notified of the branch's state.
In the xa_start context, an error occurred in associating the transaction branch with the thread of control.
Also refer to the Resource Manager guide for more details.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-32016 is the Informix representation of XAER_RMERR from the X/Open XA
Specification — per the official guidance, an error occurred in the Resource Manager while
processing the transaction branch, in one of several XA call contexts.
xa_close/xa_open: an error occurred closing/opening the resource, per the official guidance.xa_commit: the branch's work couldn't be committed and was rolled back, per the official guidance — a catastrophic condition, since other Resource Managers may have already committed their part of the same global transaction; returned only when the Resource Manager concludes it can never commit and can't hold the branch prepared (otherwiseXA_RETRYshould be returned instead).xa_end/xa_start: an error occurred dissociating/associating the branch with the thread of control, per the official guidance.xa_forget: an error occurred, and the branch hasn't been forgotten, per the official guidance.xa_prepare: an error occurred preparing to commit, per the official guidance — the XID might or might not have been prepared.xa_recover: an error occurred determining the XIDs to return, per the official guidance.xa_rollback: an error occurred rolling back the branch, per the official guidance — the Resource Manager may forget the branch once all threads are notified.
Solutions / Resolution
- Investigate the Resource Manager directly for the specific error, per the official
guidance's implication — treat an
xa_commit-context occurrence as a serious, potentially data-inconsistent event across the global transaction's participants. - Consult the Resource Manager guide for the specific XA call context involved, per the official guidance.
Examples
N/A
No specific triggering statement is documented — this is a Resource-Manager-side XA return code.
Diagnostic Checks
- Check the Resource Manager's own error logs for the specific XA call context and failure detail.
Related Errors / Related Topics
- -32009 — "Routine returned with no effect and may be re-issued." The related
non-catastrophic alternative (
XA_RETRY) anxa_commitshould return instead ofXAER_RMERRwhen the branch can still be held prepared. - -32017 — "The XID is not valid." A related Resource-Manager-error code
(
XAER_NOTA), specific to an unrecognized XID rather than a general RM error.
A Resource Manager error occurred processing the transaction branch (XAER_RMERR) — check
which XA call context reported it and investigate the Resource Manager directly.