JOB Card Keyword Parameters

All other parameters except positional parameters in the JOB statement are called keyword parameters. Information passed in keyword parameters used by the JES (Job Entry System).

Each keyword parameter is independent and not dependent on other parameters except some (USER, PASSWORD, GROUP, PRTY).

Some of the keyword parameters can code at the JOB, and EXEC statements.

Notes -

  • All Keyword parameters are optional and can code in any order.
  • Keyword parameters follow the positional parameter programmer name.
  • A comma separates each keyword parameter (,).
  • Keyword parameter information applies to all steps.
  • The total keyword parameters are more than 20.

Frequently used Parameters -

CLASS The CLASS parameter is used to classify the jobs. The classification is based on how much time they are running. i.e., SHORT RUN or LONG RUN jobs.
Syntax - CLASS=class-character
class-character represents a single character value (A to Z, 0 to 9).
Example - Let us assume CLASS=A represents shortest job and CLASS=Z represents longest job. And also assume that the below jobs are using same files for processing.
JOB1 -
//             'PAWAN Y',
//             CLASS=B,
//             NOTIFY=&SYSUID 
JOB2 -
//             'PAWAN Y',
//             CLASS=Z,
//             NOTIFY=&SYSUID 
What will happen if both jobs are submitted at the same time?
JOB1 starts executing first, and JOB2 will be on hold. Once JOB1 execution is completed, JOB2 starts execution.
MSGCLASS MSGCLASS parameter is used to specify the output device to where the system and JCL messages are routed (written and printed).
Syntax - MSGCLASS=msg-class-value
msg-class-value represents a single character, and it allows alphabets (A to Z) and numbers (0 to 9).
Example - MSGCLASS parameter with value "C"(assigned to a printer in london).
//             'PAWAN Y',
//             MSGCLASS=C,
//             NOTIFY=&SYSUID 
The JOB statement sends to the Printer in London for printing the job log.
MSGLEVEL MSGLEVEL parameter controls the printing of job messages in the output listing or job log (i.e., in the SPOOL by default).
Syntax - MSGLEVEL=([statements][,execution-status])
statements - Specifies what JCL statements/messages to print in the output listing. It is optional and valid values from 0 to 2.
  • 0 - Only JOB Statements.
  • 1 - All Statements.
  • 2 - Only JCL statements.
execution-status - Specifies when to print the job related messages in the spool. It is optional and valid values are 0-1.
  • 0 - Print allocation and termination messages only when JOB ended abnormally.
  • 1 - Print allocation and termination when JOB ended either normally or abnormally
Example -
//             'PAWAN Y',
//             MSGLEVEL=(1,1)
System prints all statements, its allocation and termination messages when JOB completed either normally or abnormally.
PRIORITY PRTY parameter is used to assign a selection priority to jobs. JES system uses the PRTY value to decide the execution sequence of the jobs when they have same CLASS value.
Syntax - PRTY=priority-number
priority-number Specifies the priority number value ranges from 0-15 in JES2 and 0-14 in JES3. Higher number will have the higher priority during the execution.
Example -
JOB1 -
//             'PAWAN Y',
//             CLASS=A,
//             PRTY=9 
JOB2 -
//             'PAWAN Y',
//             CLASS=A,
//             PRTY=11 
What will happen if both jobs are submitted at the same time?
JOB-B has the highest priority (11) within CLASS 'A'. JOB-B starts executing before JOB-A even though JOB-A and B are submitted at the same time.
TIME The TIME parameter is used to specify the maximum CPU utilization time allowed for the job to execute. The system will automatically cancel the job execution if the execution time exceeds the specified time.
Syntax - TIME={([minutes][,seconds])} {1440 } {NOLIMIT } {MAXIMUM }
  • minutes - value should be from 0 through 357912 (248.55 days).
  • Seconds - value should be between 0 to 59 seconds.
  • NOLIMIT - Specifies that the job can use the processor for an unlimited time.
  • 1440 - Specifies that the job can use the processor for 24 hours.
  • MAXIMUM - JOB can use the processor for 248.55 days (357912 minutes).
Example - The job can use the processor for 9 minutes and 30 seconds.
//             'PAWAN Y',
//             TIME=(9,30)
REGION The REGION parameter is used to specify the amount of central or virtual memory required to execute the job. The system applies the REGION parameter value to each step of the job.
Syntax - REGION={ValueK/ValueM}
  • ValueK - ValueK is used to specify the storage in Kilobytes. The value is the 7-digit value from 1 through 2096128KB (2047 MB or 2 GB).
  • ValueM - ValueM is used to specify the storage in Megabytes. The value is the 4-digit value from 1 through 2047 MB (2 GB).
Example - Allocate virtual memory for job processing.
//             'PAWAN Y',
//             REGION=100K
NOTIFY NOTIFY is used to notify the user about the job status (either successful or unsuccessful).
  • &SYSUID - The system identifies the userid who submits the job and sends the notification.
  • USERID - Specifies the TSO userid to notify.
Example - Sending notification to the user who submits the job.
//             'PAWAN Y',
//             NOTIFY=&SYSUID 
RESTART RESTART is used to restart the job execution from a specific step (at which step the job failed). The step can be a job step, a procedure step, or a checkpoint.
Syntax - RESTART=stepname[.procname]
  • Stepname - Specifies the step name where the execution should start.
  • Procname - Specifies the PROC name in which procedure the RESTART step is coded.
Example - Restart from STEP02.
//             'PAWAN Y',
//             RESTART=STEP02
COND The COND parameter is used to specify conditional processing within a JCL. It helps to validate the return code to determine whether a job will continue processing or not. The job processing will continue when the condition is false and terminates when the condition is true.
Syntax - COND=(return-code/RC,operator/RO)
  • RC/Return-code - RC is the Return Code of the precious step. The valid RC values are from 0 to 4095.
  • RO/Operator - RO is the Relational Operator used to validate the return code. The valid Relational Operator are - GT, GE, EQ, LT, LE, NE.
Example - COND=(4,GE)
//             'PAWAN Y',
//             COND=(4,GE),
//             NOTIFY=&SYSUID
Each step should complete its execution with the return code 0 to complete the job successfully. If any step return code is greater than 0, then the job execution terminates from there.

Rarely used Parameters -

ADDRSPC ADDRSPC parameter is used to specify the type of storage (virtual or central) needed by the system to process the job.
SCHENV SCHENV parameter specifies the WLM (Work Load Manager) scheduling environment that is associated with the current job when submitted.
TYPERUN TYPRUN is used to request special job processing like scanning jobs for syntax errors, library errors, etc.
BYTES BYTES parameter is used to specify the maximum amount of output to be printed on SYSOUT datasets in terms of bytes.
JESLOG The JESLOG parameter is used to specify whether the JESLOG (JESMSGLG and JESYSMSG) files are spin-eligible or not.
JOBRC JOBRC means the JOB Return Code. The JOBRC parameter is used to control how the job return code is set.
LINES LINES parameter is used to specify the maximum output lines to be printed on SYSOUT datasets.
PAGES The PAGES parameter is used to specify the maximum output pages to be printed on SYSOUT datasets.
RD RD stands for restart definition. RD parameter used to -
  • Allow JES to perform an automatic job restart after the job failure.
  • Allow the operator to perform an automatic job or a checkpoint restart if a job fails.
SECLABEL SECLABLE represents the security level and security categories defined by RACF.
MEMLIMIT The MEMLIMIT parameter is used to specify the virtual memory limit (above the default limit) that a job can use from the total virtual memory space.
SYSTEM SYSTEM is used to specify the eligible systems to process the job.
USER The USER parameter is used to identify who submits (userid) the job.
PASSWORD The PASSWORD parameter is used to identify the current RACF password.
GROUP The GROUP parameter is used to specify the userID connecting the RACF-defined group.
SYSAFF SYSAFF is used to specify the JES2 members and JES3 systems that are eligible to process the job.
UJOBCORR UJOBCORR is used to specify the user portion of the job correlator.
DSENQSHR DSENQSHR parameter specifies how the system treats the file disposition changes between the job steps.

Outdated Parameters -

Cards or Tapes are not used nowadays, and we can ignore the parameters related to them. Below are the list of those parameters with brief information -

CARDS Used to specify the maximum amount of output (in thousands of bytes) to be printed on cards, almost having the same functionality as BYTES.
CCSID Supports data conversion on access to ISO/ANSI Version 4 tapes using access methods BSAM or QSAM.

Example -

Scenario - Simple JCL to explain different JCL statements.

Keyword parameters