MVS JCL and Utilities

This course will introduce students to the skills necessary to code batch jobs using OS/390 MVS and z/OS Job Control Language (JCL).


This course will introduce students to the skills necessary to code batch jobs using OS/390 MVS and z/OS Job Control Language (JCL).  The students will learn to code:

  • JOB statements.
  • EXEC statements.
  • DD statements for disk data sets, tape data sets, and printed reports.

The structure of OS/390 and z/OS job output and system messages are reviewed, and common JCL errors examined.

Students will learn the skills necessary to define and use Generation Data Groups (GDGs), JCL procedures, and INCLUDE groups. Student will learn to:

  • Define GDG indexes and model dataset control blocks.
  • Code DD statements to use existing GDG generations and create new generations.
  • Use ISPF and IDCAMS facilities to manage GDGs.
  • Code in‑stream procedures, cataloged procedures, and INCLUDE groups.
  • Use procedures and include members in batch jobs.
  • Specify private JCL libraries to contain the procedures and INCLUDE groups.
  • Customize procedures and INCLUDE groups with symbolic parameters.
  • Code DD and EXEC procedure overrides.
  • Perform condition checking via the COND JCL parameter and IF/ENDIF JCL statements.
  • Code the OUTPUT JCL statement.

Students will also learn how to use such utility programs as DFSORT, IEBGENER, IEFBR14, and IDCAMS.

A series of written and lab exercises will be used to reinforce the classroom education.


Programmer, analysts, technical support personnel, operators and managers working in a z/OS environment.

Students need a basic understanding of data processing concepts from previous experience (any vendor) or self-study.


40 hours


Job Control Language Concepts

  • Definition
  • Main Statement Types
  • Statement Format

JOB Statement

EXEC Statement

Data Definition (DD) Statement

  • Definition
  • DD Name Parameter
  • DSN Parameter
  • DISP Parameter
  • UNIT Parameter
  • SPACE Parameter
  • AVGREC Parameter
  • DSORG Parameter
  • RECFM Parameter
  • LRECL Parameter
  • BLKSIZE Parameter
  • DCB Parameter
  • Using Disk Data Sets
  • Using Tape Data Sets
  • EXPDT/RETPD Parameters
  • LABEL Parameter
  • VOL Parameter
  • SYSOUT DD Statement
  • In‑Stream Input (DD *)
  • JOBLIB/STEPLIB Statements

Miscellaneous JCL Statements

Structure of z/OS MVS Output

  • Sample Job Output
  • Common JCL Errors
  • Abends

Advanced DD Statement Topics

  • Data Set Concatenation
  • Dummy Files
  • Using Temporary Data Sets

Generation Data Groups

  • Purpose
  • Naming Convention
  • Using GDGs

JCL Procedures

  • Overview
  • Cataloged Procedures
  • Using Procedures
  • Symbolic Parameters
  • Procedure Overrides
  • MSGLEVEL Parameter
  • Common Procedure JCL Errors

Condition Codes and the IF JCL Statement

  • Overview
  • Statement Syntax
  • Testing Return Codes
  • Testing for ABENDs
  • Testing ABEND Codes
  • Testing for Step Execution

OUTPUT JCL Statement

  • Introduction
  • Statement Format
  • Printing Control
  • Output Disposition
  • Routing Control
  • SYSOUT DD Statement
  • Relation to OUTPUT Statement
  • Parameter Overrides
  • Using Multiple OUTPUT Statements

Utility Programs

  • IEFBR14