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.