Dictionary data sections

Dictionary data sections describe all the fields in the performance data records that are gathered during this CICS® run. The dictionary data sections of CICS monitoring SMF type 110 records contain default CICS dictionary entries.

Dictionary data sections describe all the system-provided data fields (whether you have excluded any or not), plus any user-provided data fields, which CICS takes at initialization time from the MCT entries you have coded. This means that the descriptions of the system-provided data fields never change, though the user data fields can be changed each time CICS is initialized. The contents of the dictionary data sections cannot be changed while CICS is running.

Whenever the monitoring of performance class data is switched on, whether at CICS initialization or while CICS is running, a dictionary data section is written. So, if the monitoring of performance class data is switched on and off three times during a single CICS run, there are three separate, but identical, dictionary data sections for that run. The dictionary data section is passed to SMF, together with any performance data sections, when the first buffer of performance data sections for a performance class data monitoring session is output to SMF. Any offline utility should use the most recent dictionary record encountered when processing CICS monitoring records.

Format of dictionary data sections

Dictionary data sections contain a variable number of 26-byte dictionary entries. Each dictionary entry provides the following information about a single performance record data field:
CMODNAME (Field owner)
The identifier of the group to which the field belongs.
CMODTYPE (Field type)
The field types, which start the second part of the field name, are as follows:
  • A Count
  • C Byte string
  • P Packed decimal number
  • S Clock
  • T Timestamp
CMODIDNT (Field identifier)
The field identifier.
CMODLENG (Field length)
The length of the field.
CMODCONN (Field connector)
The connector value assigned to the field.
CMODOFST (Field offset)
The offset of the field.
CMODHEAD (Field title)
The informal name of the field.
The format of dictionary data sections is shown in Figure 1.
Figure 1. Format of the CICS monitoring dictionary data section
The picture shows 3 rectangles, one above the other. The top rectangle represents an SMF type 110 monitoring record. It consists of 3 sections: an SMF header, an SMF product section, and a dictionary data section. The middle rectangle is an expansion of the dictionary data section in the top rectangle. It consists of a number of dictionary entries, numbered 1 to n. The bottom rectangle is an expansion of one of the dictionary entries in the middle rectangle. It consists of the following fields: Field owner; Field type; Field identifier; Field length; Field connector; Field offset; Field title.

For details about the performance data fields, including the numeric identifier, type, and size of each field, see Performance class data: listing of data fields.

Mapping dictionary entries

You can map the dictionary entries by generating a DSECT with the DFHMCTDR macro, as shown in Figure 2.
Figure 2. CICS monitoring dictionary entry DSECT
DFHMCTDR TYPE=(PREFIX,CMO)

CMO is the default label prefix.

The DSECT is as follows:

CMODNAME DS    CL8     + 0    NAME OF OWNER (entry name)
CMODTYPE DS    C       + 8    OBJECT TYPE
*                           'S' = STOPWATCH (CLOCK)
*                           'A' = ACCUMULATOR (COUNT)
*                           'C' = BYTE-STRING FIELD
*                           'T' = TIMESTAMP (STCK FORMAT)
*                           'P' = PACKED-DECIMAL FIELD
CMODIDNT DS    CL3     +9     ID WITHIN TYPE
*                             CLOCK-, COUNT-, OR FIELD-NO.
CMODLENG DS    H       +12    LENGTH OF OBJECT
CMODCONN DS    XL2     +14    ASSIGNED CONNECTOR
CMODOFST DS    XL2     +16    ASSIGNED OFFSET
CMODHEAD DS    CL8     +18    INFORMAL NAME
CMODNEXT EQU   *

Example JCL for generating CICS dictionary entries

You can use the following example JCL to generate a table of CICS dictionary entries for your environment.

To generate a table of only the default CICS dictionary entries, specify MCT=NO in the JCL.

Note:
  • Nicknames might not be unique.
  • In the generated table, an offset of X'FFFF' indicates that the field is excluded from data collection.
//DFHMNDUP JOB MSGCLASS=A,MSGLEVEL=(1,1),CLASS=A,NOTIFY=&SYSUID.,
//          REGION=4M                                           
//*                                                             
//         SET CICS=CTS560.CICS730                              
//*                                                             
//* CREATE NEW DICTIONARY RECORD AND OUTPUT TO SYSUT4           
//MNDUP    EXEC PGM=DFHMNDUP                                    
//STEPLIB  DD DISP=SHR,DSN=&CICS..SDFHLOAD
//         DD DISP=SHR,DSN=hlq.MCT                      
//SYSUT4   DD DISP=(NEW,PASS),DSN=&&DICT,                       
//          UNIT=SYSDA,SPACE=(CYL,(10,1))                       
//SYSPRINT DD SYSOUT=A                                          
//SYSUDUMP DD SYSOUT=A                                          
//SYSIN    DD *                                                 
MCT=NO  1                                                          
SYSID=MVS1                                                      
GAPPLID=DBDCCICS                                                
SAPPLID=DBDCCIC1                                                
/*                                                              
//* PRINT THE DEFAULT DICTIONARY RECORD GENERATED ABOVE         
//PRINT    EXEC PGM=DFH$MOLS                                    
//STEPLIB  DD DISP=SHR,DSN=&CICS..SDFHLOAD                      
//INPUT    DD DISP=(OLD,DELETE),DSN=&&DICT                      
//SORTWK01 DD SPACE=(CYL,(1,1)),UNIT=SYSDA                      
//SORTWK02 DD SPACE=(CYL,(1,1)),UNIT=SYSDA                      
//SORTWK03 DD SPACE=(CYL,(1,1)),UNIT=SYSDA                      
//SORTWK04 DD SPACE=(CYL,(1,1)),UNIT=SYSDA                      
//SORTWK05 DD SPACE=(CYL,(1,1)),UNIT=SYSDA                      
//SORTDIAG DD SYSOUT=*                                          
//SYSOUT   DD SYSOUT=*                                          
//SYSPRINT DD SYSOUT=*                                          
//SYSIN    DD *                                                 
PRINT DIC                                                       
/*                                                              
//                                            
  1. Change this value to use your MCT and generate a table of CICS dictionary entries for your environment. Otherwise, if MCT=NO is set, a table of only the default CICS dictionary entries is generated.