When the resource manager processes the UR, it needs to prepare
for changes to its resource, which includes two steps:
- Log the unchanged data
- Log the potential changed data.
If all resource managers vote YES to indicate that they can make
the changes, RRS instructs each resource manager to make the changes;
only then does the resource manager make the changes. If any resource
manager votes NO to indicate that it cannot make the changes, RRS
instructs all resource managers to not make the changes; the resource
managers backout the changes.
The services used to protect the resource are:
Callable service |
Description |
---|
Retrieve_UR_Data |
Retrieve UR data, including the UR
identifier (URID). |
Set_Persistent_Interest_Data |
Provide persistent interest data. |
Retrieve_UR_Interest_Data |
Retrieve persistent and nonpersistent
interest data. |
Post_Deferred_UR_Exit |
Give to RRS the response from a resource
manager exit routine that previously replied with a defer return code.
A later response might be needed in a distributed environment. |
For information on the services, see Callable resource recovery services.
The exit routines used to protect the resource are:
Exit Routine |
Event for Invoking the Routine |
---|
STATE_CHECK |
An application program called the
Application_Commit_UR service. |
PREPARE |
RRS is ready for the resource managers
to prepare for resource recovery. |
ONLY_AGENT |
Only one resource manager expressed
only one interest in the UR. |
DISTRIBUTED_SYNCPOINT |
When a resource manager has taken
the DSRM role for an interest in a UR and the UR becomes in-doubt,
this exit resolves the in-doubt condition |
COMMIT |
The resource manager is to make the
changes permanent. |
BACKOUT |
The resource manager is to not make
the changes, thus, backing them out. |
END_UR |
The UR processing is finished. |
EXIT_FAILED |
An RRS exit routine in the resource
manager failed. |
COMPLETION |
The exit routine can do processing
needed before RRS returns control to the application program. |
SUBODINATE_FAILED |
Either RRS or any resource manager on a
subordinate system failed, the subordinate system itself terminated,
or the context associated with the subordinate UR abnormally terminated. |
For information on the exit routines, see Resource recovery exit routines.