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:

    • Otherwise, if the XlnConfirmation field from the message is set to either DTCLUXLNCONFIRMATION_COLDWARMMISMATCH or DTCLUXLNCONFIRMATION_LOGNAMEMISMATCH:

    • 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.