3.2.4.23 Remote LU Initiated Recovery Sending XLN

This event MUST be signaled by the higher-layer business logic with the following arguments:

If the Remote LU Initiated Recovery Sending XLN event is signaled, the LU 6.2 Implementation MUST perform the following actions:

  • Attempt to find the recovery sequence number keyed by the LU Name Pair in the Recovery Sequence Number Table.

  • If the recovery sequence number is not found:

    • Return a failure result to the higher-layer business logic.

  • Otherwise:

    • Initiate a new CONNTYPE_TXUSER_DTCLURECOVERYINITIATEDBYLU connection using the Transaction Manager Name field of the LU 6.2 Implementation. Set the LU Pair field of the CONNTYPE_TXUSER_DTCLURECOVERYINITIATEDBYLU connection object to the provided LU Name Pair. Set the LUW To Recover field of the CONNTYPE_TXUSER_DTCLURECOVERYINITIATEDBYLU connection object to null.

    • Send a TXUSER_DTCLURECOVERYINITIATEDBYLU_MTAG_THEIR_XLN message using the connection:

      • The RecoverySeqNum field MUST be set to the found recovery sequence number.

      • The Xln field MUST be set to one of the following elements of the DTCLUXLN enumeration:

        • DTCLUXLN_WARM if the provided Remote Log Status value is Warm.

        • DTCLUXLN_COLD if the provided Remote Log Status value is Cold.

      • The dwProtocol field MUST be set to 0.

      • The cbLength field of the DTCLU_VARLEN_BYTEARRAY structure (contained in the RemoteLogName field) MUST be set to the number of bytes in the provided remote log name.

      • The first cbLength bytes of the rgbBlob field of the DTCLU_VARLEN_BYTEARRAY structure (contained in the RemoteLogName field) MUST be set to the provided remote log name.

      • The cbLength field of the DTCLU_VARLEN_BYTEARRAY structure (contained in the OurLogName field) MUST be set to the number of bytes in the provided local log name supplied by the remote LU.

      • The first cbLength bytes of the rgbBlob field of the DTCLU_VARLEN_BYTEARRAY structure (contained in the OurLogName field) MUST be set to the provided local log name supplied by the remote LU.

      • The cbLength field of the DTCLU_VARLEN_BYTEARRAY structure (contained in the LuNamePair field) MUST be set to the number of bytes in the provided LU Name Pair.

      • The first cbLength bytes of the rgbBlob field of the DTCLU_VARLEN_BYTEARRAY structure (contained in the LuNamePair field) MUST be set to the provided LU Name Pair.

    • Set the connection state to Awaiting Response To XLN Request.