Derivation: ABnormal TERMination
of the ENClave
ABTERMENC sets the enclave termination
behavior for an enclave ending 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)
Syntax
.-ABEND---. .-OVR----.
>>-ABTERMENC--=--(--(--+-RETCODE-+--)--,--+-NONOVR-+--)--------><
- 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 occurs:
- 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 z/OS): 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 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.
- 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.
- NONOVR
- Specifies that the option cannot be overridden.
z/OS® UNIX considerations
In
a multithreaded application with ABEND set for ABTERMENC only the
main(IPT) thread will be ABENDed and the application terminated, regardless
of which thread experienced the unhandled condition. All other threads
(the NON-IPT threads) will be terminated normally, including the offending
thread, if it is a NON-IPT thread.
Usage notes
When running with IMS™, 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.
When
running a batch job, the ABTERMENC(ABEND) setting ensures that a job
step will abend if errors occur in an application that is written
in another language.