Job control language (JCL) is a set of statements that you code to tell the z/OS operating system about the work you want it to perform. Although this set of statements is quite large, most jobs can be run using a very small subset. Learnabout essential and most frequently used JCL statements and parameters, as well as coding techniques.
JCL statements tell z/OS where to find the appropriate input, how to process that input (that is, what program or programs to run), and what to do with the resulting output.
All jobs use three main types of JCL statements:
• JOB statement to identify the unit of work you want the operatingsystem to perform
• One or more EXEC statements, depending on the number of job steps within the job
• DD statements to identify the input and output data sets
JCL statements: What does the JOB statement do?
The JOB statement is the firstcontrol statement in a job. It marks the beginning of a job and also specifies the name of the job.
The JOB statement also might provide details and parameters that apply to all job steps within the job, such as accounting information and conditions for job termination. It also may contain any comments that help describe the statement.
This JCL example contains two JOB statements:
//JOBNUM1 JOB504,SMITH PAYROLL
//STEP1 EXEC PGM=PROGRAM1
//DD1 DD DSN=HLQ.OUTPUT
//JOBNUM2 JOB 600,JONES
In the first JOB statement:
• The name field contains the job name "JOBNUM1". In every JOB statement, the name field contains a one- through eight-character name that identifies the job so that other JCL statements or the operating system can refer to it. Each job should be assigned aunique name.
• The parameter field, which defines information that applies to the entire job, contains an accounting number (504), the programmer's name (SMITH). These parameters are positional, and must appear in the order shown.
• The comment field contains PAYROLL.
The end of JOBNUM1 is marked by the beginning of the next JOB statement (//JOBNUM2). The end of a job also may be indicatedby a null statement, which consists of only two forward slashes (//).
JCL JOB statements: Positional and frequently used parameters
In addition to the two positional parameters, job accounting information and programmer name, the JOB statement alsomay contain over 20 keyword parameters. But you'll most often use only this handful.
JOB statements have two positional parameters:
Job accounting information
The value that you code for job accounting information depends on the guidelines set at your company. The value is usually a number that identifies a department or person to whom processor time is billed.
Job accountinginformation may consist of multiple pieces of information, not just a single value as shown in this example.
The programmer name identifies the person or group responsible for a job. The programmer's name is not a mandatory part of the JOB statement unless your company has made it so.
As with the positional parameters for the JOB statement, keyword parameter values apply for theentire job. The JOB statement has over twenty different keyword parameters, but you are most likely to use only these few:
Use the CLASS parameter if your company uses classes to group jobs. Grouping jobs helps to:
• Achieve a balance between different types of jobs. A good balance of job class assignments helps to make the most efficient use possible of the system....