3.3.7.11 Recovery Work Ready

The Recovery Work Ready event MUST be signaled with the following arguments:

  • An LU Pair object

  • A Recovery Work Ready Reason that MUST be set to one of the following values:

If the Recovery Work Ready event is signaled, the Transaction Manager Communicating with an LU 6.2 Implementation Facet MUST perform the following actions:

  • Attempt to find the first connection object in the Local LU Initiated Recovery List that meets the following condition:

    • The state of the connection object is set to Processing Work Query.

  • If the connection object is found:

    • If the provided Recovery Work Ready Reason is either set to LUW Recovery, or if all the following conditions are satisfied:

      • The Is LUW Triggered Recovery Pending flag of the provided LU Pair object is set to TRUE.

      • The provided Recovery Work Ready Reason is set to Miscellaneous.

      • The LU Pair Recovery State field of the provided LU Pair object is set to Synchronized.

        Then perform the following actions:

      • Set the Is LUW Triggered Recovery Pending flag of the provided LU Pair object to TRUE.

      • If the LU Pair Recovery State field of the provided LU Pair object is set to Synchronized:

        • Attempt to find the first LUW object in the LUW List field of the provided LU Pair object that meets the following conditions:

          • The Is Conversation Lost flag of the LUW object is set to TRUE.

          • The value of the Recovery Sequence Number For LUW field of the LUW object is set to the value of the Recovery Sequence Number field of the provided LU Pair object.

        • If an LUW object is found that meets the previous conditions:

          • Set the Is LUW Triggered Recovery Pending flag of the provided LU Pair object to FALSE.

          • Set the Is Conversation Lost flag of the found LUW object to FALSE.

          • Set the LU Pair Recovery State field of the LU Pair object to Synchronized Awaiting LU Status.

          • Set the Recovery Sequence Number For Connection field of the previously found connection object to the Recovery Sequence Number field of the provided LU Pair object.

          • Signal the Send Check LU Status event on the previously found connection object.

        • Otherwise:

          • Attempt to find the first LUW object in the LUW List field of the provided LU Pair object that meets the following condition:

            • The LUW Recovery State field of the LUW object is set to Need Recovery.

          • If no LUW object is found that meets the previous conditions:

            • Set the Is LUW Triggered Recovery Pending flag to FALSE.

          • If an LUW object is found:

            • The transaction manager that communicates with an LU 6.2 implementation (section 3.2) MUST perform the following actions:

              • Set the Is LUW Triggered Recovery Pending flag to FALSE.

              • Set the value of the Recovery Sequence Number For Connection field of the previously found connection object to the value of the Recovery Sequence Number field of the provided LU Pair object.

              • Signal the Send Warm XLN event on the previously found connection object.

    • Otherwise, if the provided Recovery Work Ready Reason is set to Miscellaneous:

      • If the following condition is TRUE:

        • The LU Pair Recovery State field of the provided LU Pair object is set to Not Synchronized.

          Then perform the following actions:

        • Signal the Begin Local LU Initiated Synchronization event with the following argument:

          • The provided LU Pair object

        • Set the Recovery Sequence Number For Connection field of the previously found connection object to the recovery sequence number of the provided LU Pair object.

        • If the Is Warm flag of the provided LU Pair object is set to TRUE:

          • Signal the Send Warm XLN event on the previously found connection object.

        • Otherwise:

          • Signal the Send Cold XLN event on the previously found connection object.

      • Otherwise, if the LU Pair Recovery State field of the provided LU Pair object is set to Synchronized:

        • Find the first LUW object in the LUW List field of the provided LU Pair object that meets the following condition:

          • The LUW Recovery State field of the LUW object is set to Need Recovery.

        • If an LUW object is found that meets the previous condition:

          • Set the Recovery Sequence For Connection field of the connection object to the recovery sequence number of the provided LU Pair object.

          • Signal the Send Warm XLN event on the previously found connection object.

      • Otherwise, if the following conditions are all TRUE:

        • The provided Recovery Work Ready Reason is set to LU Status Timer.

        • The LU Pair Recovery State field of the provided LU Pair object is set to Synchronized.

          Then perform the following actions:

        • Set the LU Pair Recovery State field of the LU Pair object to Synchronized Awaiting LU Status.

        • Set the Recovery Sequence Number For Connection field of the previously found connection object to the Recovery Sequence Number field of the provided LU Pair object.

        • Signal the Send Check LU Status event on the previously found connection object.

      • Otherwise, ignore the event.

  • Otherwise:

    • Ignore the event.