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:
A Remote Log Status value. This value MUST be one of the following:
Warm
Cold
Local Log Name supplied by a remote LU
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.