CEE3ERP — support for user-provided error recovery
The CEE3ERP callable service enables user-written applications that have established their own ESTAE/ESPIE exit routines to notify Language Environment when an abend or program check occurs. With this support, Language Environment can analyze and process an error that was captured by the application's ESPIE or ESTAE exit before the error is passed to the user application.
Syntax
void CEE3ERP;
- CEE3ERP
- Call this CWI interface as follows:
L R15,CEECAAHERP-CEECAA(,R12) BALR R14,R15
- R0 (output)
- If ESTAE processing is in effect and register 15 contains 4, register 0 contains the retry address that the user's ESTAE exit must use for resumption; otherwise, this register can be ignored.
- R1 (input)
- Contains the address of the EPIE, which was passed to the ESPIE exit, or the SDWA, which is passed to the ESTAE exit.
- R15 (output)
- Register 15 contains a value that indicates the actions that Language Environment wants
the user application's ESPIE/ESTAE exit routine to take as a result
of Language Environment processing
the error condition. The following values are returned in register
15:
- -4
- Language Environment is not active in this environment; the application continues with its own error recovery processing.
- 0
- Language Environment is not interested in the error; the application continues with its own error recovery processing.
- 4
- Language Environment can handle the error. If SPIE processing is in effect, Language Environment sets up the EPIE; the user application's EPIE exit must return to the system to resume processing. If STAE processing is in effect, Language Environment sets up the SDWA for retry; the user application's ESTAE exit must retry at the address specified in register zero.
- 16
- Language Environment CAA has been overlayed
- 20
- Language Environment condition manager is disabled; retry the operation.
Usage Notes:
- This service should always be used with a user's ESPIE or ESTAE exit routine, regardless of the setting of the TRAP runtime option. It must also be invoked immediately by the user's ESPIE or ESTAE exit routine, before any of it's own error recovery processing.
- This service supports AMODE 31 only.
- This service is primarily looking for a "shunt routine".
When the CEECAADMC field contains a non-zero value,
a "shunt routine" is active. Language Environment will
set up the EPIE or SDWA to resume or retry at the "shunt routine" address
that was in the CEECAADMC field.
When Language Environment indicates for STAE processing that it is interested in the error, Language Environment would have already issue the SETRP macro to set up the SDWA for the retry. Language Environment also returns the retry address in register 0.
- Program checks can also occur when the Language Environment® XPLINK stack needs to be expanded. In this case, Language Environment sets up the EPIE or SDWA to resume or retry at an appropriate point, and sets the return code to 4.
- This service can be used in the z/OS and pre-initialization environments. The CICS® and POSIX environments are not supported.