IBM CICS has provided transaction processing services for businesses for more than 35 years. During that time, a team of dedicated IBM service employees has supported CICS and IBM’s program product family. IBM has continually enhanced CICS while adding support for many new features such as Web access, SOAP support, Java applications, etc.
IBM staff members dedicated to CICS are based in the local geographies for each country, and in larger support centers such as the Level 2 organization in Raleigh, NC, and at IBM’s Hursley Park Laboratories in the U.K. The CICS Change Team in the U.K. works with CICS Level 2 and the product developers to provide diagnosis, problem determination, and defect fixes, also known as Program Temporary Fixes (PTFs).
The CICS trace facility provides useful information for CICS problem determination; it provides thousands of unique trace points, together with state data and variable information. As CICS executes, the trace records a detailed chronological history of the events occurring within CICS. You can use trace to reconstruct the series of events that led up to a particular failure, or to examine the state of different CICS control blocks and state data as processing continues.
One key aspect of CICS trace support that’s less familiar to some users is the CICS global trap/trace exit program DFHTRAP. You should use DFHTRAP only with guidance from IBM’s service personnel. There are good reasons for this; the restrictions on what may and may not be done within DFHTRAP are discussed here. A default version of this module is supplied with CICS. If the need arises, IBM service personnel may provide a specific replacement for DFHTRAP and offer guidance on how to use it to gather more data and help resolve a particular problem. This article defines and details DFHTRAP in the CICS MVS environment and explains how it can be used and what it provides.
The CICS Trace Domain and DFHTRAP
CICS is divided into several discrete component areas known as domains. These domains are responsible for managing the function and data associated with different parts of CICS processing. Examples of CICS domains include the:
- Dispatcher Domain, which handles the dispatching of different tasks within CICS
- Log Manager Domain, which manages the writing and reading of CICS and user log data
- Trace Domain, which encapsulates the logic and control blocks necessary to support tracing to the various trace destinations CICS supports, including the internal trace table (a wraparound area of memory above the 16MB line), auxiliary trace (two BSAM-managed data sets used to hold larger volumes of trace data if required) and to the Generalized Trace Facility (GTF) (which can be useful when merging CICS trace information with that from other products).
Each time CICS has to record a trace entry, it will invoke Trace Domain services to write the data to its destination.