This section describes the contents of a transaction dump, and gives guidance on locating information that is useful for debugging transactions. The different parts of the transaction dump are dealt with in the order in which they appear, but be aware that only those parts that users should be using for problem determination are described. Some control blocks which do appear in the transaction dump are intended for the problem determination purposes of IBM® Service and are not described in this section.
The job log for the dump utility program, DFHDU640, is sometimes shown at the start of the transaction dump, depending on how the job was invoked. You can ignore it, because it does not contain any information that can be used for debugging.
The symptom string tells you something about the circumstances of the transaction dump. It might show, for example, that the dump was taken because the transaction abended with abend code ASRA.
If you refer the problem that caused the dump to be taken to the IBM Support Center, they can use the symptom string to search the RETAIN® database for problems that resemble it.
The CICS® Transaction Server for z/OS® level shows you what level of CICS Transaction Server for z/OS was being executed when the transaction dump was taken.
The transaction environment summary is a formatted summary of the transaction environment at the time the dump is taken.
If the transaction abended remotely (the abend originally occurred in a remote distributed program link (DPL) server program), and the abend is being re-issued on the local system, a message indicates this. The message contains the SYSID of the system that passed the abend to the local system. This information is taken from the transaction abend control block (see Transaction storage).
If the transaction dump was taken in response to a local abend with abend code AICA, ASRA, ASRB, or ASRD, a PSW is formatted from the dump data set. It belongs to the program that was being executed when the abend occurred. It is taken from the transaction abend control block (see Transaction storage).
If the transaction abended locally with abend code AICA, ASRA, ASRB, or ASRD, you see a set of registers that belong to the program that was executing when the error was detected. They are taken from the transaction abend control block (see Transaction storage).
If the transaction abended locally with abend code ASRA or ASRB, the execution key that is in force at the time of the abend is formatted. It is taken from the transaction abend control block (see Transaction storage).
If the transaction abended locally with an ASRA or ASRB abend code, CICS formats the space, basespace or subspace, in which the program was executing. If transaction isolation is not enabled, the program always executes in the basespace.
If the transaction has issued any EXEC commands, then a set of registers is displayed. These are the registers from the last EXEC command that was issued.
The next thing in the transaction dump is the entire TCA. This contains information about the transaction to which the dump relates. Note that the user area precedes the system area.
The system area of the task control area is formatted separately, because it can be addressed separately by CICS. It contains system information relating to the task and can often be a valuable source of debugging information.
Any transaction work area relating to the transaction is formatted, if present.
The EIS contains information about the transaction and program specific to the execution interface component of CICS.
This is used solely by programs using the SYSEIB option. See CICS Application Programming Guide for more details.
The EIUS contains execution interface component information that must reside in user key storage.
DFHEIB contains information relating to the passing of EXEC requests from the program to CICS, and the passing of data between the program and CICS. Field EIBFN is of particular interest, because it shows the type of the last EXEC command to be issued by the program. For programming information about the values that EIBFN can contain, see CICS Application Programming Reference
The kernel stack entries contain information that has been saved by the kernel on behalf of programs and subroutines on the kernel linkage stack. If you refer the problem to the IBM Support Center, they might need to use the stack entries to find the cause of the failure.
The CSA is one of the main control areas used by CICS. It contains information relating to the system as a whole, and to the task that was running when the transaction dump was invoked. It can be very useful for debugging both application problems and system problems. You cannot access fields in the CSA in your programs. Attempting to do so causes your transaction to terminate abnormally with abend code ASRD.
The common system area optional features list, an extension of the CSA, contains the addresses of CICS optional features.
The abbreviated-format trace table is formatted by default. You can suppress it by specifying the NOABBREV parameter in the DFHDU640 job. A "one entry per line" summary of the trace entries, copied from the internal trace table, is formatted.
Provided that you had EI level-1 and PC level-1 tracing selected for your task, you can identify the last CICS command issued by your task quite easily. The procedure is outlined in Locating the last command or statement.
Following the abbreviated-format trace table is the corresponding extended-format trace table. This is formatted by default. You can suppress it by specifying the NOFULL parameter in the DFHDU640 job. It contains more detail, but you can probably get all the information you need using the abbreviated trace.
The CWA is the installation-defined work area for use by all programs and is formatted if it exists.
"Transaction storage" is storage that might have been obtained by CICS to store information about a transaction, or it might have been explicitly GETMAINed by the transaction for its own purposes. You are likely to find several such areas in the dump, each introduced by a header describing it as transaction storage of a particular class, for example:
Transaction storage class CICS31 contains, among other things, the transaction abend control block (TACB). To find it, look for the eye-catcher DFHTACB. DFHTACB contains valuable information relating to the abend. It contains:
Note that if the abend originally occurred in a remote DPL server program, an eye-catcher *REMOTE* is present. If this is the case, the registers and PSW are not present.
The TCTTE contains information about the terminal that is the principal facility of the transaction. You usually find one TCTTE for the transaction if the transaction is terminal oriented. For "daisy chained" transactions, you may find more than one.
To look at the TIOA for the task, find the address in field TCTTEDA of the TCTTE.
This shows summary information for all linked programs for the transaction that have not yet returned, including load point, entry point, and length. This is followed by the program storage for each of these programs. This is where you can find the instructions addressed by register 14 and by the PSW, and hence the point of failure in your program. For details of how you do this, see Locating the last command or statement.
Other program manager control blocks are shown too, including PPT entries for active programs, and load list elements and program storage for any programs loaded by this transaction but not yet released.
For
each program level you can find the current channel (if any), other
channels created by the link level, and all their containers. Up to
32K of each container’s data is also displayed. Note that this
is a copy of the data rather than the actual address of the data.
The final item that you find in the transaction dump is the module index. This shows you all the modules that were in storage when the error was detected, and their addresses.