or when there is an immediate shutdown of CICS, the transaction resource records
are not written to SMF and the data is lost.
Exception records are passed directly to SMF when the exception condition
completes. Each exception record describes one exception condition. You can link
performance records with their associated exception records by matching the value
of the TRANNUM field in each type of record; each contains the same transaction
number.
Coding additional event-monitoring points
If you want to gather more performance class data than is provided at the
system-defined EMPs, you can invoke user-defined EMPs in your application
programs . You could use these additional EMPs to count the number of times a
certain event occurs, or to time the interval between two events, for example. If the
performance class was active when a transaction was started, but is not active
when a user EMP is invoked, the operations defined in that user EMP are still
executed on that transaction’s monitoring area. However, the DELIVER option
results in a loss of data at this point, because the generated performance record
cannot be output while the performance class is not active. If the performance class
is not active when a transaction is started, invoking the user EMP has no effect.
To invoke user EMPs in your application programs, you use the EXEC CICS
MONITOR command. For programming information about this command, see
MONITOR, in the CICS Application Programming Reference manual.
Additional EMPs are provided in some IBM program products, such as IMS DBCTL.
From a CICS point of view, these are like any other user-defined EMP. EMPs in
user applications and in IBM program products are identified by a decimal number.
The numbers 1 through 199 are available for EMPs in user applications, and the
numbers 200 through 255 are for use in IBM program products. The numbers can
be qualified with an entry name, so that you can use each number more than once.
For example, ‘ENTRYA.4’, ‘ENTRYB.4’, and ‘4’ identify three different EMPs.
Furthermore, any counts, clocks, or byte-strings updated at one of them are
different objects from those updated at any of the others. If you do not specify an
entry name, CICS assumes the default of USER.
For each EMP that you invoke in an application program, there must be a
corresponding monitoring control table (MCT) definition, with the same entry name
and identification number as the EMP that it describes. (The following sections refer
to the combination of entry name and identification number as an empid.)
If you want to record the same type of data for different transactions, you can
invoke the same empids in several application programs. This causes similar fields
in the corresponding transaction performance records to be updated.
You do not have to assign empids to system-defined EMPs, and you do not have to
code MCT entries for them.
Application naming event monitoring points
It is not always possible to collect performance class data in the way that you would
like for specific user tasks because of the way the applications are designed. It may
be that you want to see performance data for individual transactions within an
application, but these may not be identifiable by CICS. For example, there is a
commonly-used type of design that is based on a single transaction that, when
744 Customization Guide