3.3.5.1.2.5 Receiving a TXUSER_BEGIN2_MTAG_SINK_ERROR Message
When the application receives a TXUSER_BEGIN2_MTAG_SINK_ERROR message, the application MUST perform the following actions:
If the connection state is Awaiting Begin Response:
If the Error field in the message is set to TRUN_TXBEGIN_ERROR_NO_MEM or TRUN_TXBEGIN_ERROR_BEGIN_LOG_FULL or TRUN_TXBEGIN_ERROR_DUPLICATE_GUID:
Return a failure result to the higher-layer business logic.
Set the connection state to Ended.
Otherwise, the message MUST be processed as an invalid message as specified in section 3.1.6.
If the connection state is Processing Transaction (section 3.3.1.2.3):
If the Error field of the message is set to TRUN_TXBEGIN_ERROR_NOTIFY_ABORTED:
Return a transaction aborted result to the higher-layer business logic.
Set the connection state to Ended.
Otherwise, the message MUST be processed as an invalid message as specified in section 3.1.6.
If the connection state is Awaiting Commit Response:
If the Error field in the message is set to TRUN_TXBEGIN_ERROR_NOTIFY_COMMITTED or TRUN_TXBEGIN_ERROR_NOTIFY_ABORTED or TRUN_TXBEGIN_ERROR_NOTIFY_INDOUBT:
Return the corresponding transaction outcome as a result to the higher-layer business logic.
Set the connection state to Ended.
Otherwise, the message MUST be processed as an invalid message as specified in section 3.1.6.
If the connection state is Awaiting Abort Response:
If the Error field of the message is set to TRUN_TXBEGIN_ERROR_NOTIFY_ABORTED:
Return a transaction aborted result to the higher-layer business logic.
Set the connection state to Ended.
Otherwise, the message MUST be processed as an invalid message as specified in section 3.1.6.
If the Connection state is Awaiting Set Timeout Response:
If the Error field of the message is set to TRUN_TXBEGIN_ERROR_NOTIFY_ABORTED:
Return a Transaction Aborted result to the higher-layer business logic.
Set the connection state to Ended.
Otherwise, the message MUST be processed as an invalid message as specified in section 3.1.6.
Otherwise, the message MUST be processed as an invalid message as specified in section 3.1.6.