When a recovery routine decides to retry, it should do the following:
Eliminate or minimize the cause of the error with complete or
partial repair, as explained above under Correcting or minimizing the error.
Ensure that the retry routine's environment is restored. For
example, restore registers and re-establish addressability to mainline
resources. See Register contents for details about how a recovery
routine can control the register contents on entry to the retry routine.
Know the condition of resources being held by the mainline. For
example, the routine might have to repair data structures, back out
changes to data sets, and so on.
Indicate to the system that a retry is to be attempted. If an
SDWA is present, the recovery routine issues the SETRP macro with
the RC=4 parameter to indicate retry, and the RETADDR parameter to
specify the address of the retry routine. You can specify RC=4 even
when the SDWACLUP bit is on, indicating that retry is not allowed.
If you do so, however, the system ignores the retry request.
If
no SDWA is present, the recovery routine has to set a return code
of 4 in GPR 15, and place the address of the retry routine in GPR
0.
Decide whether to pass the SDWA to the retry routine, and so indicate
on the SETRP macro with the FRESDWA parameter.