3.6.7.1 Begin Commit
The Begin Commit event MUST be signaled with the following arguments:
An Enlistment object
If the Begin Commit event is signaled, the transaction manager MUST perform the following actions:
If the connection of the provided enlistment is of type CONNTYPE_TXUSER_VOTER (section 2.2.10.4.1):
Send a TXUSER_STATUS_MTAG_COMMITTED (section 2.2.10.4.1.2) message using the connection.
Set the connection state to Ended.
Otherwise, if the connection of the provided enlistment is of type CONNTYPE_TXUSER_ENLISTMENT (section 2.2.10.2.2):
If the connection state is Ended:
Add the provided Enlistment object to the Failed to Notify List of the transaction manager (section 3.6.1).
Otherwise:
Send a TXUSER_ENLISTMENT_MTAG_COMMITREQ (section 2.2.10.2.2.3) message using the connection.
Set the connection state to Awaiting Commit Response (section 3.6.1.4.8).
Otherwise, if the connection of the provided enlistment is of type CONNTYPE_TXUSER_REENLIST (section 2.2.10.3.1):
If the connection state is Processing Reenlist Request (section 3.6.1.5.2):
Send a TXUSER_REENLIST_MTAG_REENLIST_COMMITTED (section 2.2.10.3.1.3) message using the connection.
Set the connection state to Ended.
Otherwise:
Ignore the signal.