Additional considerations specific to ESTAE-type recovery routines
Consider the following points that are specific to ESTAE-type recovery
routines:
- During processing of the first and all subsequent recovery routines, the system allows or disallows asynchronous processing (such as a timer exit) depending on how you specify the ASYNCH parameter when you define the routine (that is, through the ASYNCH parameter on ESTAE, ESTAEX, and ATTACHX).
- The following list describes what the system does when it is done
processing a particular recovery routine (either because the recovery
routine percolates, or because the recovery routine itself encounters
an error and has no recovery routine of its own that retries):
- Accumulates dump options
- Resets the asynchronous exit indicator according to the request of the next recovery routine
- Ignores the I/O options for the next recovery routine
- Initializes a new SDWA
- Gives control to the next recovery routine.
If all recovery routines fail or percolate, the task is terminated.
- If a non-job step task issues an ABEND macro with the STEP
parameter, the system gives control to recovery routines for the non-job
step task. If the recovery routines do not request a retry, the job
step is terminated with the specified completion code. Subsequent
recovery routines for the job step task get control only when you
specify TERM=YES on the macros that defined those recovery routines.
You can specify TERM=YES on ESTAE, ESTAEX, and ATTACHX.
If the recovery routines for the job step task do not retry, subsequent recovery routines for any other non-job step tasks get control in the same way they would if the job step task itself encountered the error and then did not retry.
- For some situations, the system gives control to ESTAE-type recovery
routines only when the TERM=YES parameter was specified. The
situations are:
- System-initiated logoff
- Job step timer expiration
- Wait time limit for job step exceeded
- DETACH macro was issued from a higher level task (possibly by the system if the higher level task encountered an error)
- Operator cancel
- Error occurred on a higher level task
- Error in the job step task when a non-job step task issued the ABEND macro with the STEP parameter
- z/OS® UNIX is canceled and the user's task is in a wait in the z/OS UNIX kernel.
When the system gives control to the recovery routines defined with the TERM=YES parameter as a result of these errors, the system takes the following actions:- Sets the SDWACLUP bit
- Gives control to all such routines in LIFO order
- Does not enter any ESTAI routine previously suppressed by a return code of 16, or any previously entered recovery routine that requested percolation
- Ignores any request for retry.