3.4.4.1 Recovery Event

This event is triggered by the higher-layer software hosting infrastructure when it reinitializes the system after a software failure or restart.

When the XA Resource Manager Bridge Facet is asked to recover after a software failure or restart, it MUST perform the following actions:

  • For each XA Resource Manager object in the XA Resource Manager Durable Log of the XA Resource Manager Bridge Facet:

    • Attempt to create a new XA Resource Manager object with the following values:

      • The Resource Manager Global Identifier field is set from XA Resource Manager Durable Log.

      • The XA Resource Manager Identifier field is generated by incrementing the XA Resource Manager Identifier Index field of the XA Resource Manager Bridge Facet.

      • The Data Source Name field is set from XA Resource Manager Durable Log.

      • The State field is set to Recovering.

      • The Recovery Interval field SHOULD be set to XaTmMinWarmRecoveryInterval.<43>

      • The Single Pipe field is set to FALSE.

      • The Call Count field is set to 0.

      • The XA DLL Name is set from the XA Resource Manager Durable Log.

    • If the object is created successfully:

      • Attempt to load XA Switch for XA Resource Manager object using the XA DLL Name of the XA Resource Manager object.

      • If successful:

        • Set the XA Switch field of the XA Resource Manager object to the loaded XA Switch.

        • Add the new XA Resource Manager object to the XA Resource Manager Table referenced by the XA Resource Manager Bridge Facet.

      • Otherwise:

        • Discard the newly created XA Resource Manager Object.

        • Continue for each loop.

    • Otherwise:

      • Continue for each loop.

  • For each XA Resource Manager object in the XA Resource Manager Table of the XA Resource Manager Bridge Facet:

    • Signal Recover XA Resource Manager event on XA Resource Manager Bridge Facet with the following argument:

      • The XA Resource Manager object.