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:
  1. 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.
  2. This service supports AMODE 31 only.
  3. 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.

  4. 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.
  5. This service can be used in the z/OS and pre-initialization environments. The CICS® and POSIX environments are not supported.