9. PROCESSING › 9.1 Processing Considerations › 9.1.1 Types of Data Processed › 9.1.1.1 CMF Data
9.1.1.1 CMF Data
The CICS Monitoring Facility (CMF) collects performance data
at the transaction level for later offline analysis. The
records are type 110 records, which are in an SMF format.
The type 110 records that are processed into CA MICS are
those that have subtype 1 (Monitoring) and subtype 2
(Statistics).
For subtype 1 records, CA MICS elements are populated from
Performance records (Class 3) and optionally from Exception
records (Class 4). Before the Performance records for a
particular CICS region can be processed, a special type 110
Data Dictionary record (subtype 1 class 1) must be input.
This record provides the information that is needed to decode
the Performance records for that region.
Each CMF data field has associated with it a unique numeric
value called a connector, which is used by CA MICS to locate
the entry in the data dictionary that describes the data
field. This dictionary entry contains a field ID, a type,
and a length. The type value indicates the format of the
data field, such as packed or character, and the length
indicates the number of bytes for the field. CA MICS stores
the type and length of each field as elements in SAS arrays
and uses the unique field ID as the subscript for the arrays.
Data dictionary records are required only to decode the
Performance records, which are those of subtype 1 and Class 3
within this subtype. No other type 110 records or records
from another data source such as ASG-TMON require Data
dictionary records.
Data sets containing CMF records are in a Variable Blocked
Spanned (VBS) format.
CICS Transaction Server 1.2 and Above
The CICS/TS release numbers are of the form 1.x, 2.x, and
3.x. CICS/TS is often abbreviated as CTS. In CICS TS
release 1.2 and higher, CMF produces three classes of data:
data dictionary (class 1), performance (class 3), and
exception (class 4). In all classes of data, CMF records
contain a SMF header, a SMF product section, and one CICS
data section. Depending on the class of data, the CICS data
section can contain a single dictionary or exception record,
or multiple transaction records.
o SMF Header
The SMF header contains the date and time when the record
was written to SMF. This timestamp is used by CA MICS for
checkpoint processing. The header also contains the
record type and system identification. For CMF, the
record type is 110, subtype 1.
o SMF Product Section
The SMF product section identifies the CICS version
number, CICS application ID as known to VTAM, and the
class of data contained in the CICS data section that
follows.
o CICS Data Section
There is only one CICS data section in a type 110, subtype
1 record. For the dictionary class, the section contains
a single dictionary record that describes the format of
the performance class transaction record.
Note: There is no dictionary record for the exception
class data.
The figure below shows the format of a dictionary class
record.
+--------------------------------------+
| SMF | SMF Product| Dictionary |
| Header | Section | Data Section |
+--------------------------------------+
For performance class, the section contains a string of
field connectors, followed by multiple logical transaction
records. The field connectors identify the data fields
that are present in each transaction record in the
section, and are used by CA MICS to locate the entries in
the dictionary record that describes the data fields. For
each logical record in the section, a separate observation
is created in the CA MICS database. As a result, the
number of observations in the CA MICS detail transaction
file will not match the number of physical records read.
The figure below illustrates the format of a performance
class record.
+--------------------------------------+
| SMF | SMF Product| Performance |
| Header | Section | Data Section |
+--------------------------------------+
/ \
/ \
/ \
/ \
+----------------------------------------------+
| connectors | record 1 | record 2| |record n|
+----------------------------------------------+
For exception class, the section contains a single record
that is written when a CICS exception has occurred. The
figure below illustrates the format of an exception class
record.
+--------------------------------------+
| SMF | SMF Product| Exception |
| Header | Section | Data Section |
+--------------------------------------+
CICS 2.x
For CICS releases 2.x, CMF produces three classes of data:
accounting (class 2), performance (class 3), and exception
(class 4). In all classes of data, CMF records contain a SMF
header, a product section, and one or more CICS data
sections.
o SMF Header
The SMF header contains the date and time when the record
was written to SMF. This timestamp is used by CA MICS for
checkpoint processing. The header also contains the
record type and system identification. For CMF, the
record type is 110.
o Product Section
The product section identifies the CICS application ID as
known to VTAM, and the class of data contained in
subsequent CICS data sections.
o CICS Data Section
Except for the dictionary class data, each CMF record
contains one or more CICS data sections, which are
comprised of a section header, a section descriptor, a
string of field connectors, and one or more data records.
The figure below shows the format of a CMF performance,
accounting, or exception class record.
+------------------------------------+
| SMF | Product | CICS |
| Header | Section | Data Section |
+------------------------------------+
/ \
/ \
/ \
/ \
/ \
+-------------------------------------------------+
|Sect. |Sect. |Field |Data | |Data |
|Header|Descrptr|Connectr|record 1| |record n|
+-------------------------------------------------+
The section header contains the class of data in this CICS
section: accounting, performance, or exception. The
section descriptor contains the type of data within the
performance class: dictionary, transaction, or global.
The field connectors describe the data records that
follow. Each data record is a group of CICS data elements
stored adjacently. The connector values correspond one to
one with the data elements in the data records.
For the dictionary class data, the CICS data section
contains one or more data dictionary records, each of
which describes the format of the other classes of data.
The figure below shows the format of a dictionary class
record.
+------------------------------------+
| SMF | Product | CICS |
| Header | Section | Dict. Section|
+------------------------------------+
/ \
/ \
/ \
/ \
/ \
+-------------------------------------------------+
|Sect. |Sect. |Dict. |Dict | |Dict |
|Header|Descrptr|record 1|record 2| |record n|
+-------------------------------------------------+
DICTIONARY RECORD PROCESSING
As mentioned earlier, the CA MICS Analyzer Option for CICS
requires data dictionary records to process CMF data
records. This is true except when processing Performance
class 3 records in CICS 3.1.1 and higher releases. No
data dictionary records are required to process Exception
class 4 records.
The CA MICS Analyzer Option for CICS processes a data
dictionary record by reading the dictionary data entry
associated with each data field and storing that
information in arrays.
The arrays contain field ID, type, and length for each
data element. Each array is identified by APPLID, CICSID,
and CICS release number. These arrays are discussed in
more detail in Section 9.1.2, CMF Dictionary Processing.
DATA RECORD PROCESSING
The CA MICS Analyzer Option for CICS processes each data
record by first reading the string of connectors that
precedes the data. It passes each connector to a special
informat called $CICDEP, which uses the connector to
locate the dictionary entry necessary for reading a
subsequent data field. Once the dictionary entry has been
found, $CICDEP uses the type and length information from
the dictionary to input the data field, and converts it to
its proper format. The CA MICS Analyzer Option for CICS
processes each connector and its corresponding data field
until all the connectors have been exhausted. This
process is repeated for each data record found in each
CICS data section. If a data dictionary cannot be located
for a data record, the data record will be skipped.
The use of the $CICDEP routine to process an entire data
record in a given call greatly reduces the number of SAS
INPUT calls that would normally have to be performed, thus
greatly reducing SAS processing overhead.