CICS trace: performance and tuning

The CICS® tracing, handled by the CICS trace domain, records all requests that application programs make to CICS for various services. The storage and processing requirements depend on the number of trace entries that are recorded. Using CICS trace increases processing requirements considerably. Not using CICS trace, however, reduces the amount of problem determination information that is available for the CICS region.

CICS does not provide a direct measurement of processor use caused by tracing. RMF can show the processing and storage requirements. Auxiliary trace, where trace entries are written to auxiliary storage, has an additional cost because of the I/O operations. Although two buffers are used for auxiliary trace, even if the I/O can be overlapped, the I/O rate is quite large for a busy system.

You can control the amount of tracing that is done in a CICS region. You can limit the transactions or components that are traced, and the levels of trace data that are captured for them. You can set these options at CICS startup by using CICS system initialization parameters, or while CICS is running by using CICS interfaces. For information about defining the tracing that is done in the CICS region, see Using traces in problem determination.

CICS always performs exception tracing when it detects an exception condition, so you always have first failure data capture regardless of the limits that you set for CICS trace. In a production region, for example, you might want to set tracing options so that exception traces are written to auxiliary storage, but no other tracing is carried out. For instructions describing how to do this, see CICS exception tracing.

The trace data produced by CICS trace has a number of possible destinations. Any combination of any of these destinations can be active at any time:
  • The internal trace table
  • The auxiliary trace data sets
  • The MVS™ generalized trace facility (GTF) data sets
  • The JVM server trace file in z/OS® Unix System Services
Also, when a transaction dump is produced, CICS copies the internal trace table to produce the transaction dump trace table. For information about selecting trace destinations, see Setting trace destinations and tracing status.

Internal trace table: storage use

Every CICS region must always have an internal trace table. The internal trace table is used as a buffer for the other trace destinations. If no trace destinations at all are currently started, CICS still writes exception trace entries to the internal trace table to provide first failure data capture.

You use the TRTABSZ system initialization parameter to specify the size of the internal trace table at CICS startup. The minimum size of the internal trace table is 16 KB, and the maximum size is 1 GB. The default size is 4096 KB.

The trace table should be large enough to contain the entries needed for debugging purposes. Trace entries are of variable lengths. The average length of a trace entry is approximately 100 bytes. 1 KB is equal to 1024 bytes.

CICS obtains MVS 64-bit (above-the-bar) storage (outside the CICS DSAs) for the internal trace table.

If you change the size of the internal trace table, check your current setting for the z/OS parameter MEMLIMIT. MEMLIMIT limits the amount of 64-bit storage that the CICS address space can use. Your setting for TRTABSZ must remain within MEMLIMIT, and you must also allow for other use of 64-bit storage in the CICS region.

For information about the MEMLIMIT value for CICS, and instructions to check the value of MEMLIMIT that currently applies to the CICS region, see Estimating, checking, and setting MEMLIMIT. For further information about MEMLIMIT in z/OS, see Limiting the use of memory objects in the z/OS MVS Programming: Extended Addressability Guide.

Transaction dump trace table: storage use

When a transaction dump is produced, CICS copies the current internal trace table to produce the transaction dump trace table. CICS obtains MVS storage in 64-bit (above-the-bar) storage for the transaction dump trace table when a transaction dump is taken.

You use the TRTRANSZ system initialization parameter to specify the size of the transaction dump trace table. The minimum size is 16 KB, and the default size is 1024 KB.

Before CICS TS for z/OS, Version 4 Release 2, the transaction dump trace table was in 31-bit (above-the-line) storage. If you specified a small size for the transaction dump trace table at that time because of concerns about the availability of 31-bit storage, consider reviewing your TRTRANSZ value to provide a larger transaction dump trace table now that 64-bit storage is used.

Because the transaction dump trace table is in 64-bit storage, check your current setting for the z/OS parameter MEMLIMIT when you set the size of the trace table.

Auxiliary trace data sets: storage use

The auxiliary trace data sets are CICS-owned BSAM data sets on disk or tape. You must create the data sets before you start CICS; you cannot define them while CICS is running. For instructions to set up the auxiliary trace data sets, see Setting up auxiliary trace data sets.

When you start auxiliary trace, either at CICS startup or while CICS is running, two 4 KB buffers for the CICS auxiliary trace data sets are allocated from MVS storage in the 31-bit (above-the-line) storage of the CICS region. MVS storage is not included in the CICS DSAs. The buffers are freed if you stop auxiliary trace, but they are not freed when you pause auxiliary trace or switch between the auxiliary trace data sets.

GTF data sets: storage use

The GTF buffer is allocated in 64-bit storage.