Generating JCL
When you generate JCL for Execution, the DASD MANAGER PLUS product uses symbolic variables to resolve all data set names that appear on the interface panels of the components.
For more information on symbolic variables, see the supported symbolic variables table in User-defined programs or services.
DASD MANAGER PLUS passes parameters (from the product options file (POF) and Execution panels) to Batch JCL Generation using the AJXIN and AJXPOFIN input streams. These parameters include the names of input files, JCL files, and the diagnostic output files. (For more information about the AJXIN and AJXPOFIN input streams, see the DASD MANAGER PLUS for DB2 Reference Manual.)
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 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:
- Sizing the data sets
- Using the values specified for using DASD or tape units, as well as the values for tape-related options
- Using the values specified for the SMS and alternate SMS data sets, data set thresholds, and alternate units
- Processing the options for image copy GDGs
- Resolves the names of work data sets (such as SORTWORK, and the permanent data sets that Execution uses) that DASD MANAGER PLUS passes from the JCL Generation option panels,
- Merges DD statements that more than one command uses (for example, SYSUT1 and SORTWORK) so that the component does not generate duplicates and uses the highest estimated space
You can add debugging comments in the generated JCL by specifying Gen JCL debug Yes on the DASD MANAGER PLUS General Options panel (see Setting-general-user-options). You can then see information such as the variables that the product uses for creating the JCL and their assigned values.
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. These symbolic variables are listed in Symbolic-variables.
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.
Modifying ISPF skeletons and variables
The JCL Generation component generates JCL by using a method that improves upon standard ISPF file-tailoring services. The method used is based on ISPF skeletons.
The $AJXDOC member in the HLQ.BMCSLIB data set lists and briefly describes each non-DD and DD statement skeletons that JCL Generation uses. The member also lists the variables that JCL Generation uses to construct the default names for permanent data sets.
Each skeleton name in the $AJXDOC member has a corresponding member in the HLQ.BMCSLIB data set. Some of the members that contain skeletons also provide comments, tips, and suggestions for using the skeletons.
You can specify up to five user-defined variables in the POF. The JCL Generation User Defined Variables panel allows you to specify variable names (up to eight characters). Each variable has a corresponding symbolic variable, as shown in the following table. You can use the symbolic variables in your job cards or data set prefixes. For information about specifying the variables, see Setting-user-variables.
User-defined variables
POF variable | Symbolic variable |
|---|---|
USER_VAR1_CHAR | &UVR1 |
USER_VAR2_CHAR | &UVR2 |
USER_VAR3_CHAR | &UVR3 |
USER_VAR4_CHAR | &UVR4 |
USER_VAR5_CHAR | &UVR5 |
Symbolic-variables describes the symbolic and SLIB variables that JCL Generation uses and specifies the length of each variable.
To improve the performance of the JCL construction phase of JCL Generation, BMC uses an SLIB compiler. Consequently, if you edit SLIBs after installation, you must recompile them.
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 NGT 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. The following table 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 |
Related topic