Components of the ABO Assistant
ABO Assistant – Batch SMF Analyzer
The Batch SMF Analyzer component of the ABO Assistant consists of 3 files:
- BOZSMFJ - Sample JCL for invoking the ABO Assistant’s Batch SMF Analyzer programs. There are 4
input parameters that must be specified in this JCL:
- SMFDUMP - Data set name of SMF DUMP to analyze containing SMF 30(4) records
- ABO - Data set name of the ABO installation location (location of the BOZSMF program)
- EXE - Data set name where the BOZSMFR REXX program is located
- THRSHOLD - Minimum CPU time required for program to be included in the report
- BOZSMF - Program that is invoked by the sample job BOZSMFJ described above
- BOZSMFR - REXX program that is invoked by the sample job BOZSMFJ described above
After setting the 4 input parameters in BOZSMFJ and submitting the JCL, the Batch SMF Analyzer will produce a report at userid.BOZSMF.OUTPUT detailing the top CPU consuming programs, sorted high to low based on the CPU time.
Optionally, a list of data set locations where your COBOL run JCL files are located can be specified and the Batch SMF Analyzer tool will produce an additional report at userid.BOZSMF.OUTPUT.JCLLIST to also show the specific JCL location for each program found in the SMF data.
These JCL files can be used as input to the second component of the ABO Assistant, described next, to automatically optimize and produce a performance report on the CPU time savings from using ABO.
ABO Assistant – Program Analyzer and Optimizer
The Program Analyzer and Optimizer component of the ABO Assistant consists of 2 files:
- BOZPAJ - Sample JCL for invoking the ABO Assistant REXX program BOZPA. The following input
parameters must be specified in this JCL:
- JCLNAME - Name of the sequential file or PDS(E) member that contains the JCL to run the original COBOL program
- PGMNAME - Name of the original COBOL program
- ABO - Data set name of the ABO installation location
- EXE - Data set name where the BOZPA REXX program is located
- PROCNAME - Name of the sequential file or library member that contains the cataloged procedure that executes the pgmname program. If there is a chain of nested procedures, the one to specify is the cataloged procedure that contains the ‘EXEC PGM=pgmname’ card specified explicitly. A setting of N is the default when there is no cataloged procedure involvement in the pgmname program execution.
- OPTLOAD - New or existing data set name where the optimized modules will be stored or TEMP to indicate a temporary data set should be used. TEMP is the default.
- DYNSCAN - Y | N. A setting of Y will cause the modules that make up the application to be scanned for compilation details and no performance report will be produced. A setting of N is the default and will cause the performance report to be generated.
- BOZPA - REXX program that is invoked by the sample job BOZPAJ described above.
After setting the input parameters in BOZPAJ and submitting the JCL, the Program Analyzer and Optimizer actions will depend on the DYNSCAN setting.
Regardless of the DYNSCAN setting, the BOZPAJ job step will automatically build JCL and submit two jobs with the following job name format: userid1 and userid2.
- Job #1 is a modified version of your original JCL to enable profiling.
- Job #2 is a modified version of your original JCL to automatically optimize the top CPU consuming modules using ABO and to run the application using these optimized modules.
When the PROCNAME parameter is specified and it points to the cataloged procedure location, then the procedure is copied into the job #1 and job #2 JCL as an in-stream procedure.
When DYNSCAN=N is in effect (the default setting), a performance report is produced at userid.BOZPA.OUTPUT.pgmname. This report shows the time spent in the COBOL application and LE as well as the actual performance improvements from using ABO.
When DYNSCAN=Y is in effect, a report containing compilation details for all programs that dynamically make up the application is produced in the job #2 OPTLOG. This report contains the module and CSECT names, compilation dates, COBOL compiler versions or translator ID records and more for every module that contributes to the applications CPU time.
The report contents are the same as those described in The log file for scanning, except instead of statically scanning modules as with the ABO option SCAN=Y, the DYNSCAN=Y report provides the more targeted information of only those modules/programs actually used by the application.
The report produced by DYNSCAN=Y allows deep insight into the dynamic make up of your COBOL applications.
- When DYNSCAN=Y is in effect, no ABO optimization is performed, and no performance report is produced at userid.BOZPA.OUTPUT.pgmname. The OPTLOAD parameter is also ignored in this case.
- ABO is automatically and transparently used by the Program Analyzer and Optimizer, so no user action is required to directly invoke ABO.
- If no report is produced at userid.BOZPA.OUTPUT.pgmname (for DYNSCAN=N), see the SYSTSPRT file of job #1 or job #2 for error messages. See BOZPAJ parameter error messages for a list of possible messages.
ABO Assistant – CICS SMF Analyzer
- Processing SMF 110 data to produce a prioritized report
- Comparison of two prioritized reports to produce a comparison report
Additionally, the CICS SMF Analyzer, contains a JCL sample to enable both parts above to be run together and produce two prioritized reports and one comparison report from two sets of SMF data.
Processing SMF 110 data to produce a prioritized report
The CICS SMF Analyzer contains two files, JCL sample BOZCICSJ and REXX program BOZCICSR, to produce a prioritized report from your SMF 110 data.
- BOZCICSJ - Sample JCL for invoking the CICS
DFH$MOLS sample utility program and the REXX program BOZCICSR to process your SMF 110 data.The input parameters below must be specified in this JCL:
Parameter Description SMFDUMP Data set name of SMF DUMP to analyze containing SMF 110(1) records CICS Data set name of CICS SDFHLOAD library location MCT Data set name of DFHMCTPA module location EXE Data set name where the BOZMCTPA and BOZSMFR REXX program is located DUMPSTAT ORIGINAL or OPTIMIZED, specifies whether the dump was taken for original or optimized programs run COBAPPL Name of tested COBOL CICS application APPLID CICS region application ID SYSID Four characters system ID of a system where SMF dump was taken DATEJ Date in YYYYDDD format when the SMF dump was taken THRSHOLD Minimum cumulative CPU time required for program to be included in the report - BOZCICSR - REXX program that is invoked by the sample job BOZCICSJ described
aboveNote: The SMFDUMP data must consist of SMF Type 110 subtype 1 records for the time interval you wish to analyze. See Gathering SMF 110 Data for information on how to generate this SMF dump.
After setting the above input parameters in BOZCICSJ and submitting the JCL, the CICS SMF Analyzer will produce a report at userid.BOZCICS.cobappl.dumpstat detailing the top CPU consuming programs, sorted high to low based on each program’s cumulative CPU time.
Comparison of two prioritized reports
The CICS SMF Analyzer contains two files, JCL sample BOZCICPJ and REXX program BOZCICPR, to produce a comparison report to show the performance improvements between two sets of SMF 110 data (for example, to compare a run using the original modules to a run using the ABO optimized modules).
- BOZCICPJ - Sample JCL for invoking the REXX program BOZCICPR.
There are 4 input parameters that must be specified in this JCL:
Parameter Description ORIGINAL Name of the first CICS SMF Analyzer prioritized report to compare. For example, from the run of the CICS application using the original modules (before ABO optimization). OPTIMIZD Name of the second CICS SMF Analyzer prioritized report to compare. For example, from the run of the CICS application using the ABO optimized modules. EXE Data set name where the BOZCICPR REXX program is located. COBAPPL Name of tested COBOL CICS application. -
BOZCICPR - REXX program that is invoked by the sample job BOZCICPJ described above.
After setting the above input parameters in BOZCICPJ and submitting the JCL, a comparison report will be produced at userid.BOZCICS.cobappl.GAIN. This sorted comparison report details the CPU time changes overall, and per program, between the ORIGINAL and OPTMIZD prioritized reports. This report enables you to see how much ABO improved performance of your COBOL CICS applications.
Processing and comparing SMF data in one step
The CICS SMF Analyzer contains an additional sample JCL BOZCIAPJ. This JCL combines the processing and comparison parts described above. Using this combined processing requires that both SMF dumps generated for the original and optimized programs run are already available. If so, then this JCL can be used to generate the two prioritized reports for the original and optimized runs and also the comparison report for these two runs.
There are several input parameters that must be specified in the sample BOZCIAPJ JCL:
| Parameter | Description |
|---|---|
| SMFDUMP1 | Data set name of first SMFDUMP containing SMF110 records to process and compare. For example, from the run of the CICS application using the original modules (before ABO optimization). |
| SMFDUMP2 | Data set name of second SMFDUMP containing SMF110 records to process and compare. For example, from the run of the CICS application using the ABO optimized modules. |
| CICS | Data set name of CICS SDFHLOAD library location |
| MCT | Data set name of DFHMCTPA module location |
| EXE | Data set name where the BOZMCTPA, BOZSMFR and BOZCICPR REXX program is located |
| COBAPPL | Name of tested COBOL CICS application |
| APPLID1 | CICS region application ID matching SMFDUMP1 (e.g. for original programs run) |
| APPLID2 | CICS region application ID matching SMFDUMP2 (e.g. for optimized programs run) |
| SYSID1 | Four characters system ID of a system where SMFDUMP1 was taken |
| SYSID2 | Four characters system ID of a system where SMFDUMP2 was taken |
| DATEJ1 | Date in YYYYDDD format when the SMFDUMP1 was taken |
| DATEJ2 | Date in YYYYDDD format when the SMFDUMP2 was taken |
| THRSHOLD | Minimum accumulative CPU time required for program to be included in the report |
- A prioritized report for SMFDUMP1, located at userid.BOZCICS.cobappl.ORIGINAL, showing the top CPU consuming programs and transactions.
- A prioritized report for SMFDUMP2, located at userid.BOZCICS.cobappl.OPTIMIZD, showing the top CPU consuming programs and transactions.
- A comparison report, located at userid. BOZCICS.cobappl.GAIN, that details the CPU time changes overall, and per program, between the prioritized reports produced for SMFDUMP1 and SMFDUMP2.