JCL Generation
When you generate JCL for Execution, the product uses symbolic variables to resolve all data set names that appear on the interface panels of the components.
Parameters (from the product options file, or POF, and Execution panels) are passed to Batch Execution JCL Generation using the AJXIN or AJXPOFIN input streams. These parameters include the names of input files, JCL files, and the diagnostic output files.
After the data set names have been resolved, the JCL Generation component performs the following functions:
- Scans the input worklist for all utilities and commands that will require JCL
Analyzes each utility command for its DD requirements
Depending on the override options that you select, the following tasks might be performed for each identified DD:
- Size the data sets.
- Use the values specified for using DASD or tape units, as well as the values for tape-related options.
- Use the values specified for the SMS and alternate SMS data sets, data set thresholds, and alternate units.
- Process the options for image copy GDGs.
- Resolves the names of work data sets that JCL Generation passes from the JCL Generation option panels, such as SORTWORK, and the unload data sets that Execution uses
- Merges DD statements that are used by more than one command (for example, SYSUT1 or SORTWORK) to avoid duplicates and to use the highest estimated space
JCL Generation either performs standard ISPF file tailoring or simulates file tailoring by using compiled skeleton libraries (SLIBs) to generate JCL. A large number of symbolic variables are available to automatically vary the JCL generated according to, for example, the subsystem name and the database name.
The generated JCL includes DD statements for all data sets that the job or the Execution component needs, as well as the EXEC statement for the program and any necessary control parameters. For many of the work data sets that Execution uses, you can create the JCL for a cleanup job step that automatically deletes the work data sets at the end of the run. Other data sets are commented out in the JCL, providing you with the option to delete these as well.
JCL Generation data sets sizing function
You can use the JCL Generation data set sizing function to tailor the data set sizes when the JCL is built.
The function gathers information from one of the following sources (shown in general order of accuracy, from most accurate to least accurate):
- The BMC Statistics repository (statistics that the BMCSTATS or BMC AMI Stats utility gathers)
- Db2 system catalog (statistics that the IBM RUNSTATS utility gathers)
- Results of VSAM object sampling
- Default data set allocation parameters that are set from the JCL Generation Individual Data Set Options panel
Whether using the BMC Statistics repository, object sampling, or no sizing, JCL Generation obtains some information from the Db2 system catalog.
The formulas for estimating data set size are taken from the documentation for the IBM Db2 utilities and from the documentation for the BMC utilities. shows the statistics that JCL Generation uses for space estimation and the source of the statistics.
Data set sizing values and sources
Source | |||
|---|---|---|---|
Value | BMCSTATS | IBM RUNSTATS | VSAM sampling |
Number of active pages | X | X | X |
Number of modified pages | X | NA | X |
Page size | NA | X | NA |
Maximum row length | NA | X | NA |
Average row length | X | NA | X |
Number of rows | X | X | X |
Number of non-clustering indexes | NA | X | NA |
Longest key | X | X | NA |
Number of foreign keys | NA | X | NA |
Number of indexes | X | X | NA |
Longest foreign key | NA | X | NA |
Example of Worklist JCL
This is an example of batch HDDL worklist JCL.