|
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 the TRACE, UATRACE, DUMP, and UADUMP suboptions
of TERMTHDACT.
The TRACE and UATRACE suboptions suppress the dumping
of user storage and Language Environment® control blocks.
The DUMP and UADUMP suboptions include the dumping of
user storage and Language
Environment control blocks.
If a message is printed,
based upon the TERMTHDACT(MSG) runtime option, the
message is for the active condition immediately prior to 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.
The default value for non-CICS
applications is TERMTHDACT(TRACE,CESE,96).
The default value
for CICS® applications is TERMTHDACT(TRACE,CESE,96).
The
default value for AMODE 64 applications is TERMTHDACT(TRACE,,96).
Syntax
.-TRACE---. .-CESE----.
>>-TERmthdact--(--+---------+--,--+---------+--,---------------->
+-QUIET---+ '-CICSDDS-'
+-MSG-----+
+-DUMP----+
+-UATRACE-+
+-UADUMP--+
+-UAONLY--+
'-UAIMM---'
>--+-----------------+--)--------------------------------------><
'-reg_stor_amount-'
- 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.
- 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 a U4039 system dump of
the user address space. Under CICS,
you will get a CICS transaction
dump. Under non-CICS, if the appropriate DD statement is used, you
will get a system dump of your user address space.
- 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 trace of the
active routines on the activation stack, a Language Environment dump,
and a U4039 system dump of the user address space. 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 system dump of the user address space. 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 system dump of the user address space. 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.
- CESE
- Specifies that Language Environment dump
output are written to the CESE QUEUE as it has always been. This option
is ignored in a 64–bit environment.
- CICSDDS
- Specifies that Language Environment dump
output are written to the new CICS transaction
dump that contains both CICS and
CEEDUMP data. This option is ignored in a 64–bit environment.
- 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
will be rounded up to the nearest multiple of 32. The default amount
is 96 bytes.
CICS consideration All
TERMTHDACT output is written to the data queue based on the setting
of CESE or CICSDDS. See Table 1 for
a summary of the results of the different options that are available.
Table 1. Condition handling of 0Cx ABENDSOptions |
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.
|
- Invalid suboption combination. Not supported.
|
UATRACE |
- Message written to CESE queue.
- Traceback written to CESE queue.
- U4039 transaction dump in CICS dump
data set.
- ASRA or user ABEND issued.
|
- 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.
|
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.
|
- Invalid 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.
Table 2. Handling of software-raised conditionsOptions |
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.
|
- Incorrect suboption combination. Not supported.
|
Note: - CICS is told about software-raised
error conditions for DUMP and TRACE.
- When assembling a CEEROPT or CEEUOPT, the CICSDDS
option cannot be issued with DUMP or UADUMP. This results in
a RC=8, CEEXOPT issues an MNOTE, and the setting is forced to TRACE:
- Language Environment requests
a CICS transaction dump via
the U4039 abend.
- See z/OS Language Environment Runtime Messages for
more complete details regarding the U4039 abend.
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.
If
running under a z/OS UNIX shell and Language Environment generates
a system dump, a core dump is generated to a file based on the kernel
environment variable, _BPXKDUMP.
Usage notes - A runtime options
report is generated and placed at the end of the enclave information
whenever the TRACE, UATRACE, DUMP and UADUMP options are invoked.
- 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.
- The environment variable _CEE_DMPTARG allows a sysout class for
a dynamically allocated CEEDUMP. You can set the _CEE_DMPTARG value
string from a z/OS UNIX shell by:
- Using the export command
- Using the C functions setenv() or putenv()
- Using the ENVAR runtime option
_CEE_DMPTARG has the following format, _CEE_DMPTARG=value.
The value is a null-terminated character
string, SYSOUT(x), that defines a sysout
class that Language Environment
will set dynamically allocating the CEEDUMP. For example, you can
specify: _CEE_DMPTARG=SYSOUT(A)
To set the
_CEE_DMPTARG value from a z/OS UNIX shell, you could issue the
export command and specify the following run-options, for example:
export _CEE_DMPTARG=SYSOUT(A).
WHEN
_CEE_DMPTARG is not set, then the sysout class will default to SYSOUT(*)
for the dynamically allocated CEEDUMP. If the dynamic allocation for
the specified SYSOUT class specified by _CEE_DMPTARG should fail,
the default, SYSOUT(*) will be used.
|