How it works: CICS WIC exit routine

When CICS registers to IBM® z/OS® Workload Interaction Correlator, it provides a WIC exit routine DFHWICEX that SMF calls at 5-second intervals to process every registered CICS region’s instrumentation buffer. Only one copy of DFHWICEX is loaded in an LPAR. The loaded copy is the latest version from the registered CICS regions.

Note: In this topic, a job represents a CICS address space.

How the CICS WIC exit aggregates and summarizes transaction activities

The exit aggregates and summarizes transaction activities from all instrumentation buffers and records an exceptional CICS region per transaction activity into a SMF type 98 subtype 1024 record.

The transaction activities include:
  • Number of tasks per transaction
  • Average response time per task
  • Average CPU time per task
  • CPU time on CP
  • CPU time on z Integrated Information Processor (zIIP)
At the end of a 5-second interval, each CICS job, which is referred to as a contributor in the WIC terminology, is assigned with job attributes of job priority and job size. A combination of CPU type, job priority and job size is called a bucket. The exit aggregates CICS jobs to three types of buckets:
  • Specific buckets, each with a matching CPU type, job priority and job size
  • General buckets, each with a matching CPU type and job priority, for all job sizes
  • One overall bucket, which is the summary of all general buckets for a give CPU type

For each transaction activity collected, the exit will summarize the data, identify the CICS job that has the highest figure as exceptional, and record the exceptional job to SMF type 98 subtype 1024.

Figure 1. Example

At the end of a 5-second interval, assume that a few terminal-owning regions (TORs), application-owning regions (AORs) and file-owning regions (FORs) in column 2 are aggregated to a specific bucket with job attributes specified in column 1. The exceptional job recorded to SMF type 98 subtype 1024 is shown in column 3.

Specific bucket CICS jobs Exceptional CICS job
CP, high job priority, small job size Several TORs A CICS TOR
CP, high job priority, medium job size Several FORs A CICS FOR
CP, low job priority, medium job size Several AORs A CICS AOR

The exceptional jobs recorded for the general buckets is as follows:

General bucket Exceptional CICS job
CP, high job priority, all job sizes A TOR or FOR because TORs and FORs have high job priority.
CP, low job priority, all job sizes A CICS AOR because only AORs have low job priority.

The exceptional job recorded for the overall bucket is as follows:

Overall bucket Exceptional CICS job
CP, all job priorities, all job sizes A TOR, AOR or FOR

GTF trace

When GTF trace is started, DFHWICEX writes GTF trace by issuing the GTRACE macro with the following parameters specified:
FID=X‘EF’
The format identifier (FID) of the CICS GTF trace entry
ID=X‘F6C’
The subsystem event trace identifier for CICS GTF trace entries

You can use the GTF trace to find out, for example, which instrumentation buffer for a CICS job is processed and the number of slots occupied in the buffer.

Learn more