3.2.5.3.3 Receiving an XAUSER_XACT_MTAG_COMMIT Message
When the XA Subordinate Transaction Manager Facet receives an XAUSER_XACT_MTAG_COMMIT message, it MUST perform the following actions:
If the connection state is set to Active and the State field of the XA Superior Enlistment Object referenced by the XA Superior Enlistment CMP Connection is set to either Prepared or In Doubt:
Set the Current Request CMP Connection field of XA Superior Enlistment referenced by the XA Superior Enlistment CMP Connection to receiving connection.
Set the State field of XA Superior Enlistment Object referenced by the XA Superior Enlistment CMP Connection to Committing.
Signal the Begin Commit event on the Core Transaction Manager Facet with the following argument:
The Transaction Object referenced by the XA Superior Enlistment Object referenced by the XA Superior Enlistment CMP Connection.
Otherwise:
Send XAUSER_XACT_MTAG_REQUEST_FAILED_BAD_PROTOCOL message upon receiving connection.