3.3.5.5.2 Receiving a TXUSER_DTCLURECOVERYINITIATEDBYLU_MTAG_CONFIRMATION_OF_OUR_XLN Message
When the Transaction Manager Communicating with an LU 6.2 Implementation Facet receives a TXUSER_DTCLURECOVERYINITIATEDBYLU_MTAG_CONFIRMATION_OF_OUR_XLN message, it MUST perform the following actions:
If the connection state is Awaiting XLN Confirmation:
Set the connection state to Processing XLN Confirmation.
If the XlnConfirmation field from the message is set to DTCLUXLNCONFIRMATION_CONFIRM:
Signal the Synchronization Successful event with the following argument:
LU Pair object referenced by this connection
Send a TXUSER_DTCLURECOVERYINITIATEDBYLU_MTAG_REQUESTCOMPLETE message using the connection.
Set the connection state to Awaiting Compare States Request.
Otherwise, if the XlnConfirmation field from the message is set to either DTCLUXLNCONFIRMATION_COLDWARMMISMATCH or DTCLUXLNCONFIRMATION_LOGNAMEMISMATCH:
Signal the Synchronization Inconsistent event with the following argument:
LU Pair object referenced by this connection
Send a TXUSER_DTCLURECOVERYINITIATEDBYLU_MTAG_REQUESTCOMPLETE message using the connection.
Signal the Remote LU Initiated Recovery Ended event with the following arguments:
The LU Pair object referenced by this connection
The connection object
Set the connection state to Ended (section 3.3.1.6.10).
Otherwise:
The transaction manager that communicates with an LU 6.2 implementation (section 3.2) MUST drop the connection.
Set the connection state to Awaiting XLN Confirmation.
Otherwise, if the connection state is Is Obsolete Awaiting XLN Confirmation:
If the XlnConfirmation field from the message is set to DTCLUXLNCONFIRMATION_CONFIRM:
Send a TXUSER_DTCLURECOVERYINITIATEDBYLU_MTAG_REQUESTCOMPLETE message using the connection.
Set the connection state to Awaiting Compare States Request.
Otherwise, if the XlnConfirmation field from the message is set to either DTCLUXLNCONFIRMATION_COLDWARMMISMATCH or DTCLUXLNCONFIRMATION_LOGNAMEMISMATCH:
Send a TXUSER_DTCLURECOVERYINITIATEDBYLU_MTAG_REQUESTCOMPLETE message using the connection.
Signal the Remote LU Initiated Recovery Ended event with the following arguments:
The LU Pair object referenced by this connection
The connection object
Set the connection state to Ended (section 3.3.1.6.10).
Otherwise:
The transaction manager that communicates with an LU 6.2 Implementation MUST drop the connection.
Set the connection state to Is Obsolete Awaiting XLN Confirmation.
Otherwise, if the connection state is Ended (section 3.3.1.6.10):
Ignore the message.
Otherwise, the message MUST be processed as an invalid message, as specified in [MS-DTCO], section 3.1.6.