DFH$MOLS control statement descriptions

The rules when processing control statements, and the order they must be applied in, are listed. The control statements that you can specify to control the DFH$MOLS program processing are described in detail.

Rules for processing control statements

The DFH$MOLS program processes multiple SELECT/IGNORE groups using the following rules in the order listed:

  1. Processing starts with the first group.
  2. The DFH$MOLS program processes the SELECT/IGNORE groups in the order in which you specify them in SYSIN.
  3. APPLID, USERID, TERMID, TRANID, PRCSTYPE, and TASKNO parameters can all be included in the same run.
  4. You cannot specify SELECT and IGNORE for the same parameter in the same SELECT/IGNORE group. For example, specifying SELECT TERMID and IGNORE TERMID is invalid.
  5. If you specify SELECT for more than one parameter in a SELECT/IGNORE group, the SELECT statements form a logical AND function.
  6. If you specify IGNORE for more than one parameter in a SELECT/IGNORE group, the IGNORE statements form a logical OR function.
  7. The DFH$MOLS program processes all SELECT statements in a group before any IGNORE statements in the same group.
  8. If a data record satisfies all the SELECT statements in a group, it is selected, but subject to any following IGNORE statements.
  9. If a selected record (either by default in the absence of any SELECT statements or explicitly because it satisfies selection criteria) also satisfies an IGNORE test, the record is excluded.
  10. If a record is not included or excluded after all the SELECT/IGNORE statements in a group are processed, it is processed by the next group.
  11. If a record is not specifically included or excluded after all of the SELECT/IGNORE groups are processed, one of the following events occurs:
    • If you do not specify a group with IGNORE statements only, to specifically exclude the record, it is excluded by default.
    • If you specify one or more groups with IGNORE statements only, to specifically exclude other records, the record is included.
      Note: You can specify one or more groups with IGNORE statements only to specifically exclude records. However, any record not included or excluded, after all the SELECT/IGNORE and IGNORE-only groups, is included.

Control statements

* (asterisk)
An asterisk appearing in column 1 means that the statement is a comment only and has no effect on processing. It is printed without any further analysis.
BREAK
Specifies the end of a SELECT/IGNORE group. The BREAK control statement logically ends the previous (ungrouped) SELECT/IGNORE statements, and the DFH$MOLS program forms them into a logical SELECT/IGNORE group. A BREAK statement has no meaning unless preceded by one or more SELECT/IGNORE statements. You can form multiple SELECT/IGNORE groups by including BREAK statements at the appropriate points.

The main purpose of BREAK is to allow SELECT statements to be processed as a logical OR function instead of as a logical AND function if they are in the same group.

If you do not specify a BREAK statement after the last SELECT/IGNORE statement, the DFH$MOLS program assumes one by default, so that there is always at least one SELECT/IGNORE group, however few SELECT or IGNORE statements you specify.

If you specify only one SELECT/IGNORE group, either implicitly or by including a BREAK statement, the SELECT/IGNORE logic is the same as described for the individual SELECT/IGNORE statements.

CONTROL STOPAFT=nnnnnnnn
Specifies the number of records that you want to process. The STOPAFT parameter limits the number of SMF type 110 records that you want the DFH$MOLS program to process. The DFH$MOLS program ends after processing the number of SMF 110 records specified by nnnnnnnn.
DATE
Specifies the start and stop dates, which, with the TIME statement (if specified), enable you to select records for a particular period only. See also the TIME control statement.
START=start-date
Specifies the date of the beginning of the period for which you want records processed, in the form mm/dd/yy or mm/dd/yyyy.

Start dates in the twenty-first century must use the form mm/dd/yyyy.

STOP=stop-date
Specifies the date of the end of the period for which you want records processed, in the form mm/dd/yy or mm/dd/yyyy.

Stop dates in the twenty-first century must use the form mm/dd/yyyy.

Note:
  1. CICS® dictionary records are always processed by the DFH$MOLS program and are not affected by any date and time period specification.
  2. You do not have to specify both START and STOP; you can specify START without STOP and STOP without START.
  3. If you omit the DATE statement, records for all dates present in the input file are processed.
  4. You can specify only one DATE statement (and associated TIME statement) in SYSIN.
EXPAND
Specifies that the monitoring data is written to an output data set, including any compressed SMF 110 monitoring records in their expanded format, with the monitoring records that were never compressed. For more information about record types processed by DFH$MOLS, see note 12 in Sample job stream for DFH$MOLS. The output data set of SMF 110 monitoring records can be used by reporting tools that cannot use the z/OS® Data Compression and Expansion Services (CSRCESRV) to expand compressed records.

A monitoring record with a compressed data section is identified by the compressed record length in the SMFMNCRL field in the SMF product section, which is present only for a compressed record.

If you want to just print reports, or to unload the monitoring records into a fixed-length format, you do not need to specify the EXPAND option. DFH$MOLS identifies and expands any compressed monitoring records automatically before working with them. You only need to specify the EXPAND option when you want to create an output data set of SMF 110 monitoring records.

DDNAME=name
Specifies the ddname for the output data set to hold the SMF 110 monitoring records. If you do not code this keyword, the default ddname SYSUT2 is used, and your job stream must include a SYSUT2 DD statement. If you code this keyword to specify a different ddname, your job stream must include the corresponding DD statement.
NEWDCB
To ignore the DCB information from the original data set, specify NEWDCB. Supply the new DCB information on the JCL for the output data set.
Note:
  1. When the EXPAND control statement is specified, the only parameter for IGNORE and SELECT statements that operates during creation of the output data set is the APPLID option. The PRCSTYPE, TASKNO, TERMID, TRANID, and USERID parameters are ignored while the output data set is being produced. You can also select monitoring records for the output data set by date, using the DATE parameter, or by time, using the TIME parameter.
  2. Monitoring data is not automatically printed when the EXPAND control statement is specified. If this statement is specified, and you also want to print monitoring data, you must specify the PRINT control statement explicitly. When you specify the PRINT statement to print monitoring records, all the selection parameters on your IGNORE and SELECT statements now operate for the selection of the monitoring records for printing.
IGNORE [APPLID|PRCSTYPE|TASKNO|TERMID|TRANID|USERID]
Specifies that all records are to be excluded that have the specified generic APPLID, CICS BTS process type, task number, or all records that have a specified transaction, terminal, or user identifier.
APPLID=xxxxxxxx[,yyyyyyyy,.,.]
Specify one or more generic APPLIDs to exclude monitoring data from a CICS region or regions.
PRCSTYPE=xxxxxxxx[,yyyyyyyy,.,.]
Specify one or more 8-character BTS process-type identifiers, to exclude monitoring data associated with these process-types.
TASKNO=nnnnnnn[,nnnnnnn,...]
Specify one or more task numbers to exclude monitoring data associated with these tasks.
TERMID=xxxx[,yyyy,.,.]
Specify one or more terminal identifiers to exclude monitoring data associated with these terminals.
TRANID=xxxx[,yyyy,.,.]
Specify one or more transaction identifiers to exclude monitoring data for these transactions.
USERID=xxxxxxxx[,yyyyyyyy,.,.]
Specify one or more user identifiers to exclude monitoring data for transactions submitted by these users.

You can specify each of the APPLID, PRCSTYPE, TASKNO, TERMID, TRANID, and USERID parameters in the same SELECT/IGNORE GROUP, but you cannot specify an IGNORE and SELECT for the same type of parameter. For example, you can specify SELECT APPLID= and IGNORE TERMID=, but you cannot specify SELECT APPLID= and IGNORE APPLID=.

If you are using the EXPAND statement, the only parameter for IGNORE and SELECT statements that operates during creation of the output data set is the APPLID option. The PRCSTYPE, TASKNO, TERMID, TRANID, and USERID parameters are ignored while the output data set is being produced. If you specify the PRINT statement to print monitoring records, all the selection parameters on your IGNORE and SELECT statements now operate for the selection of the monitoring records for printing.

OPTION {GMT|LOCAL}
Specifies various DFH$MOLS report formatting options.
GMT
The DFH$MOLS sample program is to print the monitoring record start and stop time stamp fields in GMT time in the reports produced.
LOCAL
The DFH$MOLS sample program is to convert the monitoring record start and stop time stamp fields into local time in the reports produced.
PRINT {ALL|DIC|EXC|IDN|PER|RES} or PRINT {rectype1,rectype2,…,rectypen}
Specifies the type of monitoring data record that you want to print in full.

If you do not specify the PRINT statement, the default action is that all the monitoring SMF type 110 records that are selected by other control statement options are printed in full. The exception is when the UNLOAD or EXPAND control statements are specified. In these cases, monitoring data is not automatically printed. If these statements are specified, and you also want to print monitoring data, you specify the PRINT control statement explicitly.

If you want to print more than one type of record in full, but not all, you can specify them as a list separated by commas, as shown in the second form of the PRINT parameter. In this way, you can specify any combination, such as:
PRINT DIC,PER
PRINT EXC,PER
PRINT DIC,PER,RES
PRINT IDN,RES,EXC
PRINT RES,PER,EXC
When you specify a list of record types in this way, the records that you select are printed in full. For the record types that you omit, the SMF headers and SMF product sections are printed for records that are selected by other control statement options, but the data sections of the records are not printed.
ALL
List all the monitoring SMF type 110 records that are selected by other control statement options. This is the default if you omit the PRINT statement.
DIC
List only the monitoring performance class dictionary records that are selected by other control statement options.
EXC
List only the monitoring exception class records that are selected by other control statement options.
IDN
List only the identity class records that are selected by other control statement options.
PER
List only the monitoring performance class records that are selected by other control statement options.
RES
List only the transaction resource monitoring records that are selected by other control statement options.
RESOURCE {ALL|DPL|FILE|TSQUEUE}
Specifies the type of resource data that you want to print in each resource record.
ALL
Print all types of resource data. ALL is the default if you omit the RESOURCE statement.
DPL
Print only the distributed program link type of resource data.
FILE
Print only the file type of resource data.
TSQUEUE
Print only the temporary storage type of resource data.
Note: The identification resource data is printed regardless of which option is selected.
SELECT [APPLID|PRCSTYPE|TERMID|TASKNO|TRANID|USERID]
Specifies the selection of all records of the specified generic APPLIDs, process types, task numbers, transaction, terminal, or user identifiers.
APPLID=xxxxxxxx[,yyyyyyyy,.,.]
Specify one or more generic APPLIDs to include monitoring data from the CICS regions identified by these APPLIDs.
PRCSTYPE=xxxxxxxx[,yyyyyyyy,.,.]
Specify one or more CICS BTS process types to include monitoring data associated with these CICS BTS process types.
TASKNO=nnnnnnn[,nnnnnnn,...]
Specify one or more task numbers to include monitoring data associated with these tasks.
TERMID=xxxx[,yyyy,.,.]
Specify one or more terminal identifiers to include monitoring data associated with these terminals.
TRANID=xxxx[,yyyy,.,.]
Specify one or more transaction identifiers to include monitoring data for these transactions.
USERID=xxxxxxxx[,yyyyyyyy,.,.]
Specify one or more user identifiers to include monitoring data for transactions submitted by these users.
TIME
Specifies the start and stop times, which, with the DATE statement (if specified), enable you to select records for a particular SMF time period only. The time stamp against which the DFH$MOLS program compares is the SMF time in the SMF header, not the time in individual performance records. Therefore, the program might select performance records for times that are a few minutes outside the specified period because of the way that they are buffered for writing to SMF.
Note: A TIME statement without a DATE statement causes the DFH$MOLS program to select data for the specified time period for all dates present in the input data set.
START=start-time
The start time of the period for which you want records processed, in the form hh.mm.ss or hhmmss. A start time is optional, and, if omitted, the report includes all records for the start date, regardless of time.
STOP=stop-time
The end time of the period for which you want records processed, in the form hh.mm.ss or hhmmss. An end time is optional, and, if omitted, the report includes all records for the stop-date, regardless of time.

You do not have to specify both START and STOP; you can specify START without STOP, and STOP without START. You can specify only one TIME statement (and associated DATE statement) in SYSIN.

Note: CICS dictionary records are always processed by the DFH$MOLS program and are not affected by any time period specification.
UNLOAD {DDNAME=xxxxxxxx[,LOCAL]}
Specifies that the performance class monitoring data is unloaded into a fixed-length record format. The format of the output data set can be mapped using the copy member DFHMNPDA provided in CICSTS52.CICS.SDFHSAMP.
DDNAME
The ddname for the output data set for the unloaded performance class records.

The default ddname of SYSUT4 is used if you do not code this keyword, and a SYSUT4 DD statement must be included in your job stream. If you code this parameter to specify a different ddname, your job stream must include the corresponding DD statement.

LOCAL
The DFH$MOLS sample program converts the performance class start and stop time stamp fields into local time in the output performance class records.
Note:
  1. If the UNLOAD control statement is specified, the SORT control statement must also be specified.
  2. Monitoring data is not automatically printed when the UNLOAD control statement is specified. If this statement is specified, and you also want to print monitoring data, specify the PRINT control statement explicitly.
  3. The UNLOAD control statement can be used only with monitoring data for CICS Transaction Server for z/OS, Version 5 Release 2, and not with monitoring data for any earlier CICS releases.

Control statement examples

The following control statements select records for transaction ID TSK1, which were entered from terminal ID T040:
SELECT TRANID=TSK1
SELECT TERMID=T040
The following control statements select records for all records for transaction ID TSK1 and all records from terminal ID T040. The BREAK statement effectively creates two SELECT/IGNORE groups, and any record satisfying group 1 (the transaction ID is TSK1) or group 2 (the terminal ID is T040) is selected:
SELECT TRANID=TSK1
BREAK
SELECT TERMID=T040
The following control statements select records for transaction IDs TSK1 and TSK2, but excluding those that were entered from terminal ID T040:
SELECT TRANID=TSK1,TSK2
IGNORE TERMID=T040
The following control statements select all records for transaction ID TSK1 (SELECT group 1) and all records for transaction ID TSK2 but exclude those entered from terminal ID T040 (SELECT/IGNORE group 2):
SELECT TRANID=TSK1
BREAK
SELECT TRANID=TSK2
IGNORE TERMID=T040
If you also have records for terminal IDs T050 (for transaction IDs TSK1 and TSK3) and T060 (for transaction ID TSK3 only), you can use the following IGNORE-only group to exclude all records entered from terminal ID T050:
IGNORE TERMID=T050

In this case, records for terminal ID T060 are included, because you have not specifically excluded them.

To exclude the records from terminal IDs T050 and T060, you can do one of the following:
  • Do not specify any IGNORE-only groups; the records for terminal IDs T050 and T060 are excluded by default.
  • Specify one or more IGNORE-only groups, to specifically exclude records from terminal IDs T050 and T060, for example:
    IGNORE TERMID=T050,T060

    In this case, if you later add another terminal, its records are included unless you specify the terminal ID in an IGNORE-only group.

The DFH$MOLS program pads, with trailing blanks, operands that have fewer characters than the permitted maximum. You cannot continue control statements on another line, but the program logically chains multiple control statements of the same keyword in the same IGNORE group. See the BREAK control statement. If you specify IGNORE for more than one parameter, those IGNORE statements form a logical OR function.

The following control statements exclude all records for transaction CEMT, regardless of user ID, and exclude all records containing userid OP7 (regardless of transaction ID). All other records are included.
IGNORE TRANID=CEMT
IGNORE USERID=OP7
The following control statements include only records for transaction CEMT, except for those from terminal TRM3.
SELECT TRANID=CEMT
IGNORE TERMID=TRM3

You can specify each of the APPLID, PRCSTYPE, TASKNO, TERMID, TRANID, and USERID parameters in the same SELECT/IGNORE GROUP, but you cannot specify IGNORE and SELECT for the same type of parameter.

If you are using the EXPAND statement, the only parameter for IGNORE and SELECT statements that operates during creation of the output data set is the APPLID option. The PRCSTYPE, TASKNO, TERMID, TRANID, and USERID parameters are ignored while the output data set is being produced. If you specify the PRINT statement to print monitoring records, all the selection parameters on your IGNORE and SELECT statements now operate for the selection of the monitoring records for printing.

You cannot continue control statements on another line, but the program logically chains multiple control statements of the same keyword in the same SELECT group. See the BREAK control statement for details of how to terminate a SELECT/IGNORE group. If you specify SELECT for more than one parameter, those SELECT statements form a logical AND function.

The following control statements include only records with a transaction identifier of CEMT and with a terminal identifier of TRM3. Any other records are not included.
SELECT TERMID=TRM3
SELECT TRANID=CEMT
The following control statements include only those records that are from the CICS region with the generic APPLID DBDCCICS, and that are for transaction CEMT, but that do not have the terminal identifier TRM3.
SELECT APPLID=DBDCCICS
SELECT TRANID=CEMT
IGNORE TERMID=TRM3