TERMTHDACT

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 on the TERMTHDACT(MSG) runtime 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 that contains at minimum the trace table, 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 that contains 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)
Read syntax diagramSkip visual syntax diagram TERMTHDACT = ( ( TRACEQUIETMSGDUMPUADUMPUAONLYUAIMMUATRACE , CESECICSDDS , reg_stor_amount ) , OVRNONOVR )
TRACE
Specifies that when a thread terminates due to an unhandled condition of severity 2 or greater, Language Environment generates a message. That message will indicate the cause of the termination and a trace of the active routines on the activation stack. TRACE is the default.
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 that indicates the cause of the termination.
DUMP
Specifies that Language Environment will generate a message when a thread terminates due to an unhandled condition of severity 2 or greater. The message will indicate 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 is terminated due to an unhandled condition of severity 2 or greater, Language Environment generates a message. That message will indicate 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 is terminated due to an unhandled condition of severity 2 or greater, Language Environment generates a message. That message will indicate 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 is terminated due to an unhandled condition of severity 2 or greater, Language Environment generates a U4039 abend. That abend 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

This suboption is ignored for AMODE 64 applications. CESE is the default.

Specifies that Language Environment dump output will be written to the CESE queue.
CICSDDS

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 that is created for the failure. For software-raised errors, like subscript range exceeded, the CESE queue remains the destination for the output (since there might 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 that is specified is rounded up to the nearest multiple of 32. The default amount is 96 bytes.
OVR
Specifies that the option can be overridden. OVR is the default.
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 with understanding the results of the different options that are available.

Table 1. Condition handling of 0Cx ABENDS in a CICS environment
Options 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 that is 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 environment
Options 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:
  1. For more complete details about the U4039 abend, see z/OS Language Environment Runtime Messages.
  2. 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.
  3. 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 is generated and placed at the end of the enclave information whenever the TRACE, UATRACE, DUMP and UADUMP options are invoked.
  • Language Environment will suppress CEEDUMP information that is generated based on the TERMTHDACT runtime option settings TRACE, DUMP, UATRACE, or UADUMP for authorized applications under the following conditions:
    • A user is running a Language Environment application as a RACF®-controlled program on a system where the IEAABD.DMPAUTH resource in the FACILITY class has been defined, but the user has not been permitted access to this resource.
    • A user is running an authorized key Language Environment application in a non-started task address space but the user has not been permitted access to the IEAABD.DMPAKEY resource in the FACILITY class.
    • A user is running a Language Environment application in a non-started task address space that has the JSCBPASS indicator on, including applications whose PPT entry specifies bypassing security protection.

    After Language Environment suppresses a dump, message CEE3880I is written to the application's programmer log. For more information about CEE3880I, see Language Environment runtime messages in z/OS Language Environment Runtime Messages.

    For information about the IEAABD.DMPAUTH and IEAABD.DMPAKEY resources in the FACILITY class, see Using RACF to control access to program dumps in z/OS Security Server RACF Security Administrator's Guide.

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 that are created from the incurring task also terminate abnormally, but the enclave can continue to run.

For more information

  • See TRACE, for more information about the TRACE runtime option.
  • For more information about the CEE3DMP service and its parameters, see CEE3DMP—Generate dump in z/OS Language Environment Programming Reference.