3.3.5.4.3 Receiving a TXUSER_DTCLURECOVERYINITIATEDBYDTC_MTAG_CONFIRMATION_FROM_OUR_XLN Message
When the Transaction Manager Communicating with an LU 6.2 Implementation Facet receives a TXUSER_DTCLURECOVERYINITIATEDBYDTC_MTAG_CONFIRMATION_FROM_OUR_XLN message, it MUST perform the following actions:
If the connection state is Awaiting Response To Warm XLN:
Set the connection state to Processing Response To Warm XLN.
If the XlnConfirmation field of the message is set to DTCLUXLNCONFIRMATION_CONFIRM:
If the LU Pair Recovery State of the LU Pair object referenced by this connection is set to either Synchronizing Have Remote Name, Synchronized, or Synchronized Awaiting LU Status:
Signal the Synchronization Successful event with the following argument:
The LU Pair object referenced by this connection
Send a TXUSER_DTCLURECOVERYINITIATEDBYDTC_MTAG_REQUESTCOMPLETE message using the connection.
Set the connection state to Awaiting Compare States Query.
Otherwise:
The transaction manager that communicates with an LU 6.2 implementation (section 3.2) MUST drop the connection.
Signal the Local LU Initiated Recovery Worker 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.5.20).
Otherwise, if the XlnConfirmation field of the message is set to either DTCLUXLNCONFIRMATION_LOGNAMEMISMATCH or DTCLUXLNCONFIRMATION_COLDWARMMISMATCH:
Signal the Synchronization Inconsistent event with the following argument:
The LU Pair object referenced by this connection
Send a TXUSER_DTCLURECOVERYINITIATEDBYDTC_MTAG_REQUESTCOMPLETE message using the connection.
Signal the Local LU Initiated Recovery Worker 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.5.20).
Otherwise:
The transaction manager that communicates with an LU 6.2 Implementation MUST drop the connection.
Signal the Local LU Initiated Recovery Worker 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.5.20).
Otherwise, if the connection state is Is Obsolete Awaiting Response to Warm XLN:
Set the connection state to Is Obsolete Processing Response.
If the XlnConfirmation field of the message is not set to DTCLUXLNCONFIRMATION_LOGNAMEMISMATCH, DTCLUXLNCONFIRMATION_COLDWARMMISMATCH, or DTCLUXLNCONFIRMATION_CONFIRM:
The transaction manager that communicates with an LU 6.2 Implementation MUST drop the connection.
Signal the Local LU Initiated Recovery Worker 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.5.20).
Otherwise:
Send a TXUSER_DTCLURECOVERYINITIATEDBYDTC_MTAG_REQUESTCOMPLETE message using the connection.
Signal the Local LU Initiated Recovery Worker 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.5.20).
Otherwise, if the connection state is Ended (section 3.3.1.5.20):
Ignore the message.
Otherwise, the message MUST be processed as an invalid message, as specified in [MS-DTCO], section 3.1.6.