The PROFILING operand requests the Transaction Profiling report.
The command format for the Transaction Profiling report is:
CICSPA PROFILING([ID(profile#)],REPORT(SMF|hdbname),
[SUFACTOR(ddname|hdbname(nnnnn.nnn)),]
[SMFSTART(date,time),]
[SMFSTOP(date,time),]
[SELECT(PERFORMANCE(INCLUDE|EXCLUDE(field1(values1),...),...)),]
[SELECT2(PERFORMANCE(INCLUDE|EXCLUDE(field1(values1),...),...)),]
[FIELDS(field1[(options)],...),]
[INTERVAL(hh:mm:ss),]
[PRINT(REPORT,BASELINE,DELTA,CHANGE,
FULL|EXCEPTIONSONLY,NOBLANKLINES|BLANKLINES),]
[THRESHOLD(%abovebaseline,%belowbaseline),]
[OUTPUT(ddname),]
[EXTERNAL(ddname),]
[NOTOTALS|TOTALS(n),]
[LINECount(nnn),]
[TITLE1('...1st 64 characters of title... '),]
[TITLE2('...2nd 64 characters of title... '),])
PROFILING([ID(profile#)],BASELINE(SMF|hdbname),
[SUFACTOR(ddname|hdbname(nnnnn.nnn)),]
[SMFSTART(date,time),]
[SMFSTOP(date,time),]
[SELECT(PERFORMANCE(INCLUDE|EXCLUDE(field1(values1),...),...)),]
[SELECT2(PERFORMANCE(INCLUDE|EXCLUDE(field1(values1),...),...)),]
[FIELDS(field1[(options)],...),]
[INTERVAL(hh:mm:ss)])
You must specify two PROFILING operands for each Transaction Profiling report:
You can specify CICSPA control operands between the two PROFILING operands, allowing you to specify different control operand values for processing the report data and the baseline data. However, only the following control operands affect the processing of the baseline data: APPLID|NOAPPLID, INPUT, SELECT, SELECT2, SMFSTART, SMFSTOP, and ZONE. For other control operands, if you specify different values for the report data and the baseline data, the Transaction Profiling report uses the values in effect for the report data; that is, the PROFILING(REPORT(...)...) operand.
For details on how the APPLID|NOAPPLID, INPUT, and ZONE control operands affect the processing of the baseline data, see the description of the BASELINE operand.
The following options apply to both PROFILING operands:
If you only request a single Transaction Profiling report in a batch job, so you have only one PROFILING(REPORT(...)...) operand and one PROFILING(BASELINE(...)...) operand, then an ID is unnecessary, and you can specify the two PROFILING operands in either order.
The ID operand is always optional, even when you request more than one Transaction Profiling report in the same batch job.
If you omit IDs, the order of the PROFILING operands is significant: CICS PA counts the PROFILING(REPORT(...)...) operands and the PROFILING(BASELINE(...)...) operands, and then matches the first PROFILING(REPORT(...)...) operand with the first PROFILING(BASELINE(...)...) operand, the second with the second, and so on.
If you specify IDs, the order of PROFILING operands is not significant:
CICSPA ...
PROFILING(ID(1),REPORT(...)...),
...
PROFILING(ID(2),REPORT(...)...),
...
PROFILING(ID(2),BASELINE(...))
...
PROFILING(ID(1),BASELINE(...))
Never specify a mix of PROFILING operands with and without IDs. To improve the readability of your batch commands, specify IDs and keep each REPORT and BASELINE pair together.
BASELINE indicates that this PROFILING operand defines the baseline data.
The values of BASELINE and REPORT define the source of the baseline data and the report data. For example:
If the report data and the baseline data both reside in HDBs, then the HDBs must exist in the same Repository.
If the report data and the baseline data both reside in the same set of SMF files, then you only need to specify a single INPUT operand or the DDname SMFIN:
CICSPA ...
INPUT(SMFIN001),
PROFILING(REPORT(SMF), ...),
PROFILING(BASELINE(SMF), ...)
If the report data and the baseline data reside in different sets of SMF files, then you need to specify an INPUT operand before the PROFILING operand for the baseline data. In the following example, the report data resides in the SMF files identified by the DDname SMFIN001, and the baseline data resides in the SMF files identified by the DDname SMFIN002:
CICSPA ...
INPUT(SMFIN001),
PROFILING(REPORT(SMF), ...),
INPUT(SMFIN002),
PROFILING(BASELINE(SMF), ...)
Specifies a CPU SU conversion factor to apply to the SMF file or HDB. The SUFACTOR value is used to convert the transaction CPU time to service units in the CPUSU field. The SUFACTOR operand includes two keywords to identify the SMF file or HDB name and its associated conversion factor. The conversion factor must be a decimal number or integer in the range 1 - 999999999 (nine 9s).
A different SUFACTOR can be applied to the BASELINE and REPORT data. The following example shows how to specify the PROFILING operand where the REPORT and the BASELINE are both sourced from an SMF file:
CICSPA IN(ddname1),
SUFACTOR(ddname1(nnnnn.nnn)),
PROFILING(ID(nnn),REPORT(SMF),
...
CICSPA IN(ddname2),
PROFILING(ID(nnn),BASELINE(SMF),
...
SUFACTOR(ddname2(nnnnn.nnn))]
This example shows how to specify the PROFILING operand where the REPORT is sourced from an SMF file and the BASELINE is sourced from an HDB:
CICSPA IN(ddname),
SUFACTOR(ddname(nnnnn.nnn)),
PROFILING(ID(nnn),REPORT(SMF),
...
PROFILING(ID(nnn),BASELINE(hdname),
...
SUFACTOR(hdbname(nnnnn.nnn))]
For details on specifying values for SMFSTART and SMFSTOP, see SMFSTART and SMFSTOP.
When specified as control operands of the CICSPA command, rather than as suboperands of the PROFILING operand, SMFSTART and SMFSTOP apply to all of the reports that follow them, including the Transaction Profiling report. When specified "locally", as suboperands of the PROFILING operand, SMFSTART and SMFSTOP override the "global" control operands, but only for that PROFILING operand.
Typically, when running the Transaction Profiling report in a Report Set with other reports, you only specify local SMFSTART and SMFSTOP values for the baseline data (in the PROFILING operand that contains the BASELINE suboperand). The report data uses the global values specified by the SMFSTART and SMFSTOP CICSPA control operands:
CICSPA ...
SMFSTART(...),SMFSTOP(...), 1
PROFILING(
BASELINE(PROD),
SMFSTART(...),SMFSTOP(...), 2
...),
PROFILING(REPORT(SMF), ...)
This operand applies only when the FIELDS operand specifies a time stamp key field, such as START or STOP (transaction start or stop time). For each time interval covered by the report period, CICS PA accumulates input records, and creates a line of summarized data. If INTERVAL is not specified, the default is 00:01:00 (1 minute).
Typically, you specify the same time interval for the report data, in PROFILING(REPORT(...)...), and for the baseline data, in PROFILING(BASELINE(...)...), so that the Transaction Profiling report compares data summarized over time intervals of the same length. In this case, you must explicitly specify INTERVAL in both PROFILING operands; the baseline data will not default to the same interval value as the report data.
Time intervals begin at the start of the day (00:00:00), not from the start of the report period. This ensures that the time stamp key field values in the summarized report data and the summarized baseline data are synchronized.
If you want to summarize report data at time intervals, and compare each time interval with a single, common set of summarized baseline data, then omit the time stamp key field from the FIELDS operand for the baseline data. For example, you could compare hourly performance data with a single set of performance data for the entire day.
In rare cases, you might want to specify different time intervals for the report data and the baseline data. The Transaction Profiling report matches each report data interval with the baseline data interval that covers the start of the report data interval. For example, suppose you summarize report data using an interval of 15 minutes and baseline data using an interval of 30 minutes. The Transaction Profiling report matches each consecutive pair of 15-minute report data intervals with the same single 30-minute baseline data interval, because the 30-minute baseline data interval covers the start of both 15-minute report data intervals. That is, the Transaction Profiling report matches 15 minutes of report data with 30 minutes of baseline data, and then matches the next 15 minutes of report data with the same 30 minutes of baseline data. The time interval you specify for the baseline data should be greater than or equal to the time interval for the report data. Otherwise, some baseline data intervals will not match the start of any report data intervals, and so that baseline data will not appear in the report.
A time interval of less than one hour must fit evenly into the hour. CICS PA will round it down to the nearest interval that aligns to the hour. For example, 1.35 is reduced to 00:01:30 minutes which will produce 40 interval report lines for each hour of data.
A time interval of more than one hour must fit evenly into the day. CICS PA will round it down to the nearest interval that aligns to the day. For example, 10.30.23 is reduced to 08:00:00 hours which will produce 3 interval report lines for each day of data.
For details on specifying the FIELDS operand, see the description of the FIELDS operand for the Performance Summary report, SUMMARY(FIELDS. The values that you can specify for the FIELDS operand in the Transaction Profiling report and the Performance Summary report are identical.
The FIELDS operand in the Transaction Profiling report involves the following additional considerations:
FIELDS(START,TRAN,TASKCNT,RESPONSE)
For a List HDB Template, the Transaction Profiling report treats all character and date fields as key fields, and uses the average function to summarize the other, non-key, fields. The key fields must precede the non-key fields in the Template: otherwise, CICS PA reports an error.
For a List HDB Template, the Transaction Profiling report treats character and date fields as key fields, and uses the average function to summarize the other, non-key, fields.
If you omit key fields from the Baseline Form that appear in the Report Form, then the Transaction Profiling report matches rows in the two sets of summarized data based on their common key fields. The typical effect is that several rows of summarized report data (with more key fields) match one row of baseline data.
If the Baseline Form omits some of the non-key fields specified by the Report Form, then the Transaction Profiling report shows blanks for these missing fields in the Baseline, Delta, and Change lines.
The following options apply only to the PROFILING operand that contains the REPORT suboperand (if you specify these options in the PROFILING operand that contains the BASELINE suboperand, they are ignored):
Specify TOTALS(1) to TOTALS(8) to accumulate subtotals for up to 8 sort fields, print the subtotals when the sort field changes, and print a grand total at the end of the report. Default: TOTALS(8)
Specify TOTALS(0) for no subtotals, but print only the grand total.
Specify NOTOTALS for neither subtotals nor grand total.
You can specify either or both of the following thresholds:
For example, a threshold of 150 excludes Change values smaller than +150%.
For example, a threshold of 80 excludes Change values smaller than -80%.
For example, THRESHOLD(150,80) excludes Change values within +150% and -80%.
If you omit both thresholds or you specify both thresholds as 0, the report includes all Change values.
If you specify a value for %abovebaseline but you omit %belowbaseline, then the report:
If you specify a value for %belowbaseline but you leave %abovebaseline blank, then the report:
Report 1.0 0.1
Baseline 0.4 0.5
Change% +150.00 -80.00
If you do not specify any lines, the Transaction Profiling report shows all lines. Otherwise, the Transaction Profiling report shows only the specified lines, except for the Report line, which is always implicitly specified, regardless of whether the value REPORT is explicitly specified in the PRINT operand. For example, to show only the Report line, specify PRINT(REPORT). To show the Report line and the Change line, specify either of these equivalent operands: PRINT(REPORT,CHANGE) or PRINT(CHANGE).
The remaining values of the PRINT operand specify conditions for including or excluding lines:
EXCEPTIONSONLY excludes all lines, including the Report line, where the difference between every non-key field in a row of summarized baseline data and the same fields in the matching row of summarized report data are all within the thresholds.
The Baseline Form can specify a subset of the non-key fields in the Report Form, leaving the summarized baseline data with fewer non-key fields than the summarized report data. Specifying EXCEPTIONSONLY, together with a Baseline Form that contains only one non-key field, enables you to produce a Transaction Profiling report that only shows data where that field is not within thresholds. For example, if you specify a Baseline Form where the only non-key field is average response time, then you can produce a Transaction Profiling report that shows only the transactions that are not within an acceptable percentage difference of a baseline average response time.
BLANKLINES includes all specified lines, even when their data consists entirely of blank values.
Omitting the PRINT operand or specifying PRINT() is equivalent to specifying PRINT(REPORT,BASELINE,DELTA,CHANGE, FULL,NOBLANKLINES).