Components of the ABO Assistant

In addition to the beta version of ABO itself, the ABO Assistant beta is comprised of two components:

ABO Assistant – SMF Analyzer

The SMF Analyzer component of the ABO Assistant consists of 3 files:

  • BOZSMFJ - Sample JCL for invoking the ABO Assistant’s 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
Note: The SMFDUMP data must consist of SMF Type 30 subtype 4 records for the time interval you wish to analyze. See SMF DUMP generation for information on how to generate this SMF dump.

After setting the 4 input parameters in BOZSMFJ and submitting the JCL, the 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 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.

For example, if userid is ABOEVAL, then the generated job names are ABOEVAL1 (job #1) and ABOEVAL2 (job #2).
  • 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.

Notes:
  1. 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.
  2. ABO is automatically and transparently used by the Program Analyzer and Optimizer, so no user action is required to directly invoke ABO.
  3. 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.