ABTERMENC

Derivation: ABnormal TERMination of the ENClave

ABTERMENC sets the enclave termination behavior for an enclave that ends with an unhandled condition of Severity 2 or greater. TRAP(ON) must be in effect for ABTERMENC to have an effect.

Non-CICS® default
ABTERMENC=((ABEND),OVR)
CICS default
ABTERMENC=((ABEND),OVR)
Read syntax diagramSkip visual syntax diagram ABTERMENC = ( ( ABENDRETCODE ) , OVRNONOVR )
ABEND
Specifies that Language Environment® issues an abend to end the enclave regardless of the setting of the CEEAUE_ABND flag by the assembler user exit. However, the setting of the CEEAUE_ABND flag affects the abend processing, as follows:
When CEEAUE_ABND is set to OFF, the following actions occur:
  • Abend code: Language Environment sets an abend code value that depends on the type of unhandled condition.
  • Reason code: Language Environment sets a reason code value that depends on the type of unhandled condition.
  • Abend dump attribute: Language Environment does not request a system dump.
  • Abend task/step attribute (on a z/OS® system): An abend is issued to terminate the task.
When CEEAUE_ABND is set to ON, Language Environment uses values set by the assembler user exit to determine abend processing:
  • Abend code: Value of the CEEAUE_RETC parameter of the assembler user exit.
  • Reason code: Value of the CEEAUE_RSNC parameter of the assembler user exit.
  • Abend dump attribute: Language Environment requests a system dump only if the assembler user exit sets CEEAUE_DUMP to ON. The system abend dump goes to the system abend ddname with the file name you define in your JCL. The file name is the name that is defined in the DD card.
  • Abend task/step attribute (on z/OS): If the assembler user exit sets CEEAUE_STEPS to ON, Language Environment issues an abend to terminate the step. Otherwise, Language Environment issues an abend to terminate the task.

ABEND is the default.

RETCODE
Specifies that the enclave terminates with a nonzero return code.
However, the assembler user exit can modify this behavior as follows:
  • If the assembler user exit does not set the CEEAUE_ABND flag to ON during enclave termination, Language Environment returns to its caller with a return code and a reason code.
  • If the assembler user exit sets the CEEAUE_ABND flag to ON during enclave termination, Language Environment issues an abend to terminate the enclave. Language Environment sets the abend and reason code for the abend to equal the values of assembler user exit parameters, as follows:
    • Abend code: Value of the CEEAUE_RETC parameter of the assembler user exit. If the assembler user exit does not modify the CEEAUE_RETC value, Language Environment sets an abend code that maps to the severity of the condition and to the user return code.
    • Reason code: Value of the CEEAUE_RSNC parameter of the assembler user exit.
OVR
Specifies that the option can be overridden. OVR is the default.
NONOVR
Specifies that the option cannot be overridden.

z/OS UNIX considerations

In a multithreaded application with the ABEND option set for ABTERMENC, only the main (IPT) thread is abended and the application terminated, regardless of which thread experienced the unhandled condition. All other threads (the NON-IPT threads), including the offending thread if it is a NON-IPT thread, are terminated without an abend. Outstanding updates to recoverable resources are rolled back for all contexts that are associated with the non-IPT threads.

Usage notes

When IMS is used, the ABTERMENC(ABEND) setting ensures that IMS transactions are rolled back if errors occur in an application that is written in another Language Environment-enabled language. An abend causes IMS to roll back any database updates.

If a batch job is running, the ABTERMENC(ABEND) setting ensures that a job step will abend if errors occur in an application that is written in another language.

For more information