This course builds on the skills taught in the definitive introductory JCL course - 'z/OS JCL Workshop Part 1 - Foundation Skills'. It teaches the exploitation of the important advanced features and facilities available in z/OS JCL. It also shows how JCL maintenance can be simplified in order to aid productivity.<br>The 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. This course shows how to effectively exploit the benefits offered by this utility.<br><br>The course is taught through a combination of classroom tuition and practical hands-on exercises.<br><br>This course is also available for one-company, on-site presentations and for live presentation over the Internet, via the Virtual Classroom Environment service.


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

Delegates will learn how 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.


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.

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.

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.


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.


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.