z/OS JCL Workshop Part 2 - Advanced Functions & Utilities including ICETOOL

This course builds on the skills taught in the definitive introductory JCL course - z/OS JCL Workshop Part 1 - Foundation Skills. The course teaches the exploitation of the important advanced features and facilities available in z/OS JCL, and shows how JCL maintenance can be simplified in order to aid productivity.

This course also introduces and explains the use of DFSORT ICETOOL, a dataset reporting utility that provides a batch front-end for DFSORT, which is capable of performing complex sorting, copying, merging, reporting and analytical tasks using multiple datasets in a single job. This tool can be called from a program or executed directly in a batch job. ICETOOL provides a set of 'operators' that provides a wide variety of tasks, and this course shows how to effectively exploit the benefits offered by this utility.

The course is taught through a combination of classroom tuition and practical hands-on exercises.

This course is also available for exclusive one-company presentations and for live presentation over the Internet, via the Virtual Classroom Environment service.

Virtual Classroom Environment dates - click to book!

UK Start Times

11 September 2024

What is a 'Virtual Classroom Environment'?


What do I need?

  • webcam
  • headphones with microphone
  • sufficient bandwidth, at least 1.5 Mb/s in each direction.

What you will learn

On successful completion of this course you will be able to:

  • code jobs to run on systems other than the local host
  • code JCL statements to create PDSE library and data files
  • code JCL to create VSAM datasets without IDCAMS
  • use the OUTPUT statement more fully
  • describe the function of various batch utilities
  • code and execute nested procedures
  • use the INCLUDE statement to ease JCL maintenance
  • use the SET statement to resolve job wide variables
  • describe how SET is used by z/OS when commands are issued to invoke jobs
  • code jobs that invoke DFSORT
  • code jobs that invoke ICETOOL
  • exploit ICETOOL to optimise your batch applications
  • use ICETOOL to produce listings
  • exploit ICETOOL to analyse data
  • exploit ICETOOL to invoke SORT, MERGE and JOINKEYS
  • exploit symbols when invoking DFSORT and ICETOOL.

Who Should Attend

Systems Programmers, Programmers, Operations Analysts and Operators.


A good knowledge and understanding of JCL. This can be gained by attending the course z/OS JCL Workshop Part 1 - Foundation Skills.


3 days

Fee (per attendee)

£1750 (ex VAT)


This includes free online 24/7 access to course notes.


Hard copy course notes are available on request from rsmshop@rsm.co.uk

at £50.00 plus carriage per set.

Course Code



z/OS JCL Review

Introduction; Structure of a job; Job processing in z/OS; JOB output; JCL statement types; JCL statement format and coding rules; JCL operand types: Positional parameters, Keyword parameters, Sub-parameters; JCL summary; JCL error points.

JES Control Statements

Introduction; Why have a Job Entry Sub-system?; JES historical requirements; JES2 versus JES3; JES2 processing overview; JES3 processing overview; Placement of JES2 statements; JES2 statement types; JES2 statement syntax; JES2 command statements.

JCL Command Processing

Introduction; Command authorisation; Internal Reader controls; z/OS command authorisation; z/OS command disposition; JES2 commands; z/OS commands; z/OS command groups: INFO, I/O, CONS, MASTER, SYS; COMMAND statement; Sample exploitation; JES2 Command and Internal Reader.

Remote Batch Execution

Introduction; Local versus Remote definition; Local processing; Remote processing (Remote Job Entry - RJE); Remote processing (Network Job Entry - NJE); Sysplex; JES2 control statements: /*XEQ, /*ROUTE XEQ, /*ROUTE, /*XMIT; Security and Remote Job Execution; RACF overview; Propagation or not; JOB statement parameters.
This segment gives a brief overview of RJE and covers the security aspects of remote job submission.

Output Processing

Introduction; Positioning on a page; Control characters; Forms Control Block; Impact of JOB statement on output processing; Accounting Information; JOB statement keywords; JES2 statements: /*JOBPARM; /*OUTPUT, /*ROUTE; DD statement keywords; DCB parameter and output processing; OUTPUT statement; Implicit statements; Explicit statements; OUTPUT statement parameters; Output routing; Using DEST on the DD statement; Using multiple OUTPUT statements; Printing before JOB end; Setting output defaults; Output processing options.

Partitioned Data Set Extended (PDSE)

Introduction; 6.2 What is a PDS?; PDS disadvantages; What is a PDSE?; What are the advantages of a PDSE?; Types of PDSE; PDSE and BLKSIZE; PDSE concatenation; PDSE processing restrictions; Allocating a PDSE - IDCAMS; Allocating a PDSE via JCL; Migrating load modules to program objects.
This segment describes how to create PDSE, and HFS files. It also describes how to create VSAM datasets directly, without IDCAMS.

z/OS DFP Utilities

What is a utility program?; Data Facility Product (DFP); DFP Utilities; DFP - system utilities; General overview; Standard DD statements; IEHINITT; IEHINITT control statement; IEHLIST; IEHMOVE; IEHPROGM; IFHSTATR; DFP - Data Set Utilities; General overview; Standard DD statements; IEBCOMPR; IEBCOPY; COPY operation; Partial copy; IEBDG; DSD statement; FD statement; REPEAT statement; CREATE statement; IEBEDIT; IEBGENER and ICEGENER; IEBIMAGE; IEBISAM; IEBPTPCH; IEBUPDTE; Access Method Services - IDCAMS.
Covers the usage of the various utilities, including when they may be required instead of using TSO/E functions.


Introduction; Positioning DFSMSdss; Dataset compression; Defragmentation; Full volume dumping; Partial volume dumping; Restoring; Migrating program objects.

Advanced Catalogued Procedures

Introduction; Why JCL procedures; What and where is a procedure library?; Procedure specific JCL statements; JCLLIB statement; Order of search; Security and 24 by 7 implications; Statements: PROC, PEND, INCLUDE, SET; Sample procedure; Started jobs; Benefits of procedures today.
Describes the concept of nested procedures and how they are coded. It offers an approach to using the INCLUDE statement to ease JCL maintenance and improve support staff productivity. It also describes how the SET statement can be used to resolve job wide variables and explores the process of starting jobs and procedures via a start command.


Introduction; Data Facility/Sort; How Sort works; Sort phases; Control fields; Sort operation; Control statements; JCL requirements; Messages; Syntax; Sort fields specification; MERGE field specification; MODS specification; INCLUDE/OMIT specification; RECORD specification; OUTFIL specification; ALTSEQ specification; OUTREC specification; SUM specification; OPTION specification; Common format codes for control fields.

Inroduction to ICETOOL

What does ICETOOL do ?; ICETOOL job format; Operator statement syntax; Comment statements; Return Codes.

ICETOOL Operators


Invoking ICETOOL

Invoking ICETOOL directly; JCL requirements; Return Codes; Messages; Invoking ICETOOL from a program; TOOLIN interface; Parameter list interface; Explanation of fields; Statement Area Address and Statement Area; Return Area Address and Return Area; Examples.

Using Symbols for Fields and Constants

Field and Constant Symbols Overview; DFSORT Example; SYMNAMES DD statement; SYMNAMES statements; SYMNOUT DD statement; using symbols on DFSORT statements; using symbols on ICETOOL statements.

© RSM Technology 2022