|
Derivation: TERMinating THreaD ACTions
TERMTHDACT
sets the level of information that is produced when Language Environment percolates
a condition of severity 2 or greater beyond the first routine's stack
frame.
The Language Environment service
CEE3DMP is called for TRACE, UATRACE, DUMP and UADUMP suboptions of
TERMTHDACT.
The
following CEE3DMP options are used for TRACE and UATRACE: - NOBLOCKS CONDITION ENCLAVE(ALL) NOENTRY FILES FNAME(CEEDUMP)
GENOPTS STACKFRAME(ALL) NOSTORAGE THREAD(ALL) TRACEBACK VARIABLES
The
following options are used for DUMP and UADUMP: - BLOCKS CONDITION ENCLAVE(ALL) NOENTRY FILES FNAME(CEEDUMP)
GENOPTS STACKFRAME(ALL) STORAGE THREAD(ALL) TRACEBACK VARIABLES
If a message is printed, based upon the TERMTHDACT(MSG) run-time option, the
message is for the active condition immediately before the termination
imminent step. In addition, if that active condition is a promoted
condition (was not the original condition), the original condition's
message is printed.
If the TRACE runtime option is specified
with the DUMP suboption, a dump containing the trace table, at a minimum,
is produced. The contents of the dump depend on the values set in
the TERMTHDACT runtime option.
Under normal termination, the
following dump contents are generated: - Independent of the TERMTHDACT setting, Language Environment generates
a dump containing the trace table only.
- Non-CICS default
- TERMTHDACT=((TRACE,CESE,96),OVR)
- CICS® default
- TERMTHDACT=((TRACE,CESE,96),OVR)
- AMODE 64 default
- TERMTHDACT=(TRACE,,96),OVR)
Syntax
.-TRACE---. .-CESE----.
>>-TERMTHDACT--=--(--(--+-QUIET---+--,--+-CICSDDS-+--,---------->
+-MSG-----+
+-DUMP----+
+-UADUMP--+
+-UAONLY--+
+-UAIMM---+
'-UATRACE-'
.-OVR----.
>----reg_stor_amount----)--,--+-NONOVR-+--)--------------------><
- TRACE
- Specifies that when a thread terminates due to an unhandled condition
of severity 2 or greater, Language Environment generates
a message indicating the cause of the termination and a trace of the
active routines on the activation stack.
- QUIET
- Specifies that Language Environment does
not generate a message when a thread terminates due to an unhandled
condition of severity 2 or greater.
- MSG
- Specifies that when a thread terminates due to an unhandled condition
of severity 2 or greater, Language Environment generates
a message indicating the cause of the termination.
- DUMP
- Specifies that when a thread terminates due to an unhandled condition
of severity 2 or greater, Language Environment generates
a message indicating the cause of the termination, a trace of the
active routines on the activation stack, and a Language Environment dump.
- UADUMP
- Specifies that when a thread terminates due to an unhandled condition
of severity 2 or greater, Language Environment generates
a message indicating the cause of the termination, a Language Environment dump,
and generates a U4039 abend which allows a system dump of the user
address space to be generated. Under non-CICS, if the appropriate
DD statement is used, you will get a system dump of your user address
space. Under CICS, you will
get a CICS transaction dump.
- UATRACE
- Specifies that when a thread terminates due to an unhandled condition
of severity 2 or greater, Language Environment generates
a message indicating the cause of the termination, a trace of the
active routines on the activation stack, and generates a U4039 abend
which allows a system dump of the user address space to be generated.
Under non-CICS, if the appropriate DD statement is used, you will
get a system dump of your user address space. Under CICS, you will get a CICS transaction dump.
- UAONLY
- Specifies that when a thread terminates due to an unhandled condition
of severity 2 or greater, Language Environment generates
a U4039 abend which allows a system dump of the user address space
to be generated. Under non-CICS, if the appropriate DD statement is
used, you will get a system dump of your user address space. Under CICS, you will get a CICS transaction dump.
- UAIMM
- Specifies to Language Environment® that prior to condition management processing, for
abends and program interrupts that are conditions of Severity 2 or
higher, Language
Environment will immediately request the operating system to
generate a system dump of the original abend/program interrupt of
the user address space. Due to an unhandled condition of severity
2 or greater, Language Environment generates
a U4039 abend which allows a system dump of the user address space
to be generated. Under non-CICS, if the appropriate DD statement is
used, you will get a system dump of your user address space. After
the dump is taken by the operating system, Language Environment condition
manager can continue processing. If the thread terminates due to an
unhandled condition of Severity 2 or higher, then Language Environment will
terminate as if TERMTHDACT(QUIET) was specified.
Note: For software-raised
conditions or signals, UAIMM behaves the same as UAONLY. When TRAP(ON,SPIE)
is in effect, UAIMM will yield UAONLY behavior.
- CESE
-
Restriction: This suboption is ignored for AMODE 64
applications.
Specifies that Language Environment dump
output will be written to the CESE queue.
- CICSDDS
-
Restriction: This suboption is ignored for AMODE 64
applications.
Specifies that Language Environment dump
output will be written to the CICS transaction
dump data set that contains both CICS and
CEEDUMP data. For program checks or ABENDs, the CICSDDS option directs Language Environment to
place the message output in the CICS dump
dataset created for the failure. For software-raised errors, like
subscript range exceeded, the CESE queue remains the destination for
the output (since there may be no transaction dump for these). CICSDDS
can be specified with any of the first TERMTHDACT settings except
DUMP and UADUMP. Attempts to request this combination will result
in an error in building the options module.
- reg_stor_amount
- Controls the amount of storage to be dumped around registers.
This amount can be in the range from 0 to 256 bytes. The amount specified
is rounded up to the nearest multiple of 32. The default amount is
96 bytes.
- OVR
- Specifies that the option can be overridden.
- NONOVR
- Specifies that the option cannot be overridden.
CICS considerations - All TERMTHDACT output is written to the data queue based on the
setting of CESE or CICSDDS.
See Table 1 for help in understanding
the results of the different options that are available.
Table 1. Condition handling of
0Cx ABENDS in a CICS environmentOptions |
TERMTHDACT(option,CESE,) |
TERMTHDACT(option,CICSDDS,) |
---|
QUIET |
- No output.
- ASRA or user ABEND issued.
|
- No output.
- ASRA or user ABEND issued.
|
MSG |
- Message written to CESE queue or MSGFILE.
- ASRA or user ABEND issued.
|
- Message written to CESE queue or MSGFILE.
- ASRA or user ABEND issued.
|
TRACE |
- Message written to CESE queue.
- Traceback written to CESE queue.
- ASRA or user ABEND issued.
|
- Message written to CESE or MSGFILE.
- Traceback included in CICS transaction
dump for this ABEND.
- ASRA or user ABEND issued.
|
DUMP |
- Message written to CESE queue.
- Traceback written to CESE queue.
- CEEDUMP to CESE queue.
- ASRA or user ABEND issued.
|
- Incorrect suboption combination. Not supported.
|
UATRACE |
- Message written to CESE queue.
- Traceback included in CICS transaction
dump for this ABEND.
- U4039 transaction dump in CICS dump
data set.
- ASRA or user ABEND issued.
|
- Message written to CESE queue.
- Traceback written to CESE queue.
- U4039 transaction dump in CICS dump
data set.
- ASRA or user ABEND issued.
|
UADUMP |
- Message written to CESE queue.
- Traceback written to CESE queue.
- CEEDUMP written to CESE queue.
- U4039 transaction dump in CICS dump
data set.
- ASRA or user ABEND issued.
|
- Incorrect suboption combination. Not supported.
|
UAONLY |
- U4039 transaction dump in CICS dump
data set.
|
- No changes in behavior for CICSDDS.
|
UAIMM |
- U4039 transaction dump in CICS dump
data set.
|
- No changes in behavior for CICSDDS.
|
Note: Program checks end in ASRx (most commonly ASRA) CICS abend with a CICS dump in the dump data set. Abends end with
the abend code provided on the EXEC CICS ABEND
command with a CICS dump in
the dump data set if the NODUMP option was NOT specified.
For
software raised errors of severity 2 or higher in a CICS environment:
Table 2. Handling of software-raised conditions
in a CICS environmentOptions |
TERMTHDACT(option,CESE,) |
TERMTHDACT(option,CICSDDS,) |
---|
QUIET |
- No output.
- U4038 abend issued with CANCEL and NODUMP options.
|
- No output.
- U4038 abend issued with CANCEL and NODUMP options.
|
MSG |
- Message written to CESE queue or MSGFILE.
- U4038 abend issued.
|
- Message written to CESE queue or MSGFILE.
- U4038 abend issued.
|
TRACE |
- Message written to CESE queue or MSGFILE.
- Traceback written to CESE queue.
- U4038 abend issued.
|
- Message written to CESE queue or MSGFILE.
- Traceback written to CESE queue.
- U4038 abend issued.
|
DUMP |
- Message written to CESE queue or MSGFILE.
- Traceback written to CESE queue.
- CEEDUMP written to CESE queue.
- U4038 abend issued.
|
- Invalid suboption combination. Not supported.
|
UATRACE |
- Message written to CESE queue or MSGFILE.
- Traceback written to CESE queue.
- U4039 transaction dump in CICS dump
data set.
- U4038 abend issued.
|
- Message written to CESE queue or MSGFILE.
- Traceback written to CESE queue.
- U4039 transaction dump in CICS dump
data set.
- U4038 abend issued.
|
UADUMP |
- Message written to CESE queue or MSGFILE.
- Traceback written to CESE queue.
- CEEDUMP written to CESE queue.
- U4039 transaction dump in CICS dump
data set.
- U4038 abend issued.
|
- Invalid suboption combination. Not supported.
|
UAONLY |
- U4039 transaction dump in CICS dump
data set.
- U4038 abend issued.
|
- No changes in behavior for CICSDDS.
|
UAIMM |
- U4039 transaction dump in CICS dump
data set.
- U4038 abend issued.
|
- No changes in behavior for CICSDDS.
|
Note: - See z/OS Language Environment Runtime Messages for
more complete details regarding the U4039 abend.
- When assembling a CEEROPT or CEEUOPT, the CICSDDS
option cannot be issued with DUMP, or UADUMP. This results in an RC=8,
CEEXOPT issues and MNOTE, and the setting is forced to TRACE.
- Running with something like TERMTHDACT(TRACE,CICSDDS) in the CEECOPT group or CEEROPT and then creating a CEEUOPT
without specifying the second operand (for example, TERMTHDACT(DUMP))
results in the CICS dump data
set as the output destination and the following message occurs in
the CESE queue:
CEE3627I The following messages pertain to the programmer default
runtime options.
CEE3775W A conflict was detected between the TERMTHDACT suboptions
CICSDDS and DUMP.
The TERMTHDACT level setting has been set to TRACE.
and
the traceback is written to the CICS transaction
dump data set.
z/OS® UNIX considerations The
TERMTHDACT option applies when a thread terminates abnormally. Abnormal
termination of a single thread causes termination of the entire enclave.
If an unhandled condition of severity 2 or higher percolates beyond
the first routine's stack frame, the enclave terminates abnormally.
If
an enclave terminates due to a POSIX default signal action, TERMTHDACT
applies only to conditions that result from program checks or abends.
Usage notes A runtime options report will
be generated and placed at the end of the enclave information whenever
the TRACE, UATRACE, DUMP and UADUMP options are invoked.
- COBOL considerations
- TERMTHDACT(UADUMP) produces debugging information that is similar
to the information produced by previous levels of COBOL.
- PL/I considerations
- After a normal return from a PL/I ERROR ON-unit or from a PL/I
FINISH ON-unit, Language Environment considers
the condition unhandled. If a GOTO is not performed and the resume
cursor is not moved, the thread terminates. The TERMTHDACT setting
guides the amount of information that is produced. The message is
not presented twice.
- PL/I MTF
considerations
-
- TERMTHDACT applies to a task when the task terminates abnormally
due to an unhandled condition of severity 2 or higher that is percolated
beyond the initial routine's stack frame.
- When a task ends with a normal return from an ERROR ON-unit and
other tasks are still active, a dump is not produced even when the
TERMTHDACT option DUMP, UADUMP, UAONLY, or UAIMM is specified.
- All active subtasks created from the incurring task also terminate
abnormally, but the enclave can continue to run.
|