The processing steps required to start a resource manager for the
first time or to restart it at a later time are basically the same.
When a resource manager restarts, RRS requires it to use the same
resource manager name that it used when it was previously running.
This requirement exists because RRS uses the resource manager name
to identify incomplete URs across failures that involve the resource
manager. The name must be unique in a sysplex.
After a resource manager has set its exit routines, it must:
- Check that the logs being used are the same as the logs used previously
- Obtain any interests in URs that were left as incomplete when
it or RRS previously stopped running
- Respond to any incomplete interests, based on the information
returned from RRS and the information in the resource manager logs.
RRS
does not return the incomplete URs in any particular order. If the
resource manager expressed protected interest several times in a UR,
RRS returns each interest separately with its unique UR interest token.
Table 1 describes the recovery records RRS returns to the
resource manager when it restarts after a failure, whether the failure
was caused by the resource manager, RRS, or the system. See Configuring and defining RRS logging requirements for more information about records logged by RRS.
Once a resource manager has set its exits with RRS, it is considered
active on the system. If the resource manager cannot successfully
restart on the same system it was running on before it failed, then
it needs to unregister itself as a resource manager on that system
prior to restarting on another system.
Table 1. UR States and Recovery RecordsUR State at time of failure |
Recovery records at restart |
---|
In-reset |
Nothing. |
In-flight |
Nothing. |
In-state-check |
Nothing. |
In-prepare |
For presumed nothing protocol, in-backout information. Otherwise, nothing.
For
presumed abort protocol, nothing.
|
In-doubt |
In-doubt information.
If the UR state is resolved before the resource manager restarts, in-commit or in-backout information. |
In-commit |
In-commit information. |
In-backout |
For a presumed nothing expression
of interest if RRS has logged an in-prepare record, in-backout information. Otherwise, nothing.
For
presumed abort protocol, when RRS has logged an in-doubt record, in-doubt information. Otherwise, nothing.
|
In-end, in-completion, or in-forget with
a commit collective vote |
In-commit information. |
In-end, in-completion, or in-forget with
a backout collective vote |
For a presumed nothing expression
of interest if RRS has logged an in-prepare record, in-backout information. Otherwise, nothing.
For
presumed abort protocol, when RRS has logged an in-doubt record, in-doubt information. Otherwise, nothing.
|
In-only-agent |
Nothing.
The resource manager
must use its own logs to process the UR at restart. The resource
manager should try to back out because RRS returned BACKOUT_ OUTCOME_PENDING
to the application. If backout is not possible, the resource manager
should notify installation personnel.
|
When RRS indicates that there are no more incomplete URs, the resource
manager ends restart. Once the resource manager ends restart (calls
the End_Restart service), it can begin to process new URs.
The services the resource manager uses during restart are:
Callable service |
Description |
---|
Retrieve_Log_Name |
Retrieve the resource manager log
name and the RRS log name as a check that the restart logs are the
same as the previously used logs. |
Set_Log_Name |
If the resource manager is starting
for the first time, provide the resource manager log name to RRS,
in preparation for a future restart. |
Begin_Restart |
Begin the restart process. |
Retrieve_UR_Interest |
Retrieve an incomplete UR interest.
The resource manager should repeat these calls until RRS indicates
it has no more incomplete URs. |
End_Restart |
End the restart process. The resource
manager must issue this call before it can process any new URs. |
Respond_to_Retrieved_Interest |
Respond to each retrieved incomplete
UR. If the resource manager does not complete its processing of a
retrieved UR, RRS returns the UR again when the resource manager next
restarts. |
For information on the calls, see Callable resource recovery services.