Chapter 1
An introduction to IBM mainframe systems

Knowledge objectives

  • Identify the three basic components of an IBM mainframe processor.
  • Identify the main difference between the z/Architecture found on IBM’s zSeries processors and earlier system architectures.
  • Name and briefly describe four types of I/O devices that are commonly found on an IBM mainframe.
  • Distinguish between a track and a cylinder on a disk pack.
  • Describe these five features of mainframe computer operating systems: virtual storage, multiprogramming, spooling, batch processing, and time sharing.
  • Describe how MVS, OS/390, and z/OS are related to one another.

Chapter 2
OS/390 and z/OS concepts and terms

Applied objective

  • Assign an appropriate name to a new data set.

Knowledge objectives

  • Identify what an address space is.
  • In general terms, explain how address spaces are used to implement virtual storage and multiprogramming.
  • In general terms, explain how paging is used to transfer portions of an address space to and from real storage.
  • In general terms, explain how swapping is used to transfer entire address spaces in and out of virtual storage.
  • Identify the information contained in a volume label.
  • Describe the role of the VTOC in processing DASD data sets.
  • Describe the three data set organizations that are most commonly used today: sequential, partitioned, and VSAM key-sequenced.
  • Distinguish between master and user catalogs.
  • Describe how the high-level qualifier in a data set name is commonly used.
  • Distinguish between EBCDIC and ASCII notation.
  • Describe unit allocation, volume allocation, and data set allocation.
  • List and describe the three types of open modes that can be used to open a file.
  • Distinguish between a job and a job step.
  • Identify the basic functions of the JOB, EXEC, and DD JCL statements.
  • Describe the basic function of a Job Entry Subsystem.
  • Name the five steps that are involved in processing a job.
  • Describe how the job class and priority affect the scheduling of a job.
  • Describe the four types of SYSOUT data that are produced by most jobs: the JES message log, the JCL listing, the system message log, and program output.
  • Describe how the output class affects the handling of a SYSOUT data set.
  • Distinguish between system generation and system initialization.

Chapter 3
How to use ISPF to work with JCL

Applied objectives

  • Use ISPF menus, PK keys, action bars, and commands to navigate through the ISPF panels.
  • Use ISPF facilities to create a JCL member, submit it for background processing, and display the resulting job output.

Knowledge objectives

  • Describe the naming conventions for partitioned data sets.
  • Explain the effect of the library type qualifier in a PDS name when you’re working in the ISPF editor.
  • Distinguish between a job name and a job identifier.
  • Name two ISPF facilities you can use to work with jobs and job output.
  • Name three SDSF queues you can use to check on a job you’ve submitted.
  • Describe the use of action characters in SDSF panels.

Chapter 4
The basics of Job Control Language

Applied objectives

  • Code a valid JOB statement using the format required by your installation.
  • Code an EXEC statement to invoke a program and pass a parameter value to it.
  • Code a DD statement for the following DASD data sets:

a.an existing cataloged data set

b.an existing uncataloged data set

c.a new non-VSAM data set

  • Code the JCL and data for an instream data set. The data may or may not include JCL statements.
  • Code a DD statement for a SYSOUT data set.
  • Given complete specifications for a job, code its JCL using the statements presented in this chapter.

Knowledge objectives

  • Describe the basic format of a JCL statement.
  • Describe the rules you must follow when coding a name in the name field.
  • Distinguish between positional and keyword parameters.
  • Describe how to code subparameters.
  • Describe how to continue JCL statements onto additional lines.
  • Describe how to code comments in a job stream.
  • Describe the purpose of the DISP parameter in a DD statement.
  • Describe the purposes of the UNIT, VOLUME, and SPACE parameters in a DD statement.
  • Describe the purpose of the DCB parameter in a DD statement.

Chapter 5
How to use JCL and JES facilities
to manage program execution

Applied objectives

  • Code JOB parameters to influence job scheduling in the following ways:

a.specify the job’s class

b.specify the job’s scheduling priority

c.hold the job

d.scan the job for syntax errors

  • Code JOB and EXEC parameters to:

a.limit the amount of storage available during a job setp

b.specify a job’s real storage requirements

  • Code JCL parameters to set the following processing limits:

a.execution time

b.SYSOUT print data

  • Code DD statements to allocate the following execution-related data sets:

a.job library

b.step library

c.dump data set

Knowledge objectives

  • Describe the rules you must follow when coding JES2 or JES3 control statements.
  • Name the JES2 statements you use (1) to specify a job’s scheduling priority and (2) to limit the amount of SYSOUT output a job produces.
  • Name the JES3 statement you use to control job processing options.
  • Describe the search sequence for a program named in an EXEC statement when private libraries are included in the job stream.

Chapter 6
How to use JCL facilities to allocate
other types of DASD data sets

Applied objectives

  • Code the JCL necessary to:

a.allocate a single-step temporary data set

b.allocate a passed temporary data set

  • Code the JCL necessary to allocate a dummy data set.
  • Code the JCL necessary to allocate concatenated data sets.
  • Code the JCL necessary to allocate more than one DASD volume to a single data set.
  • Code the SPACE parameter to:

a.release unused space

b.convert a block allocation to cylinders

c.request a contiguous space allocation

  • Use the referback facility to obtain DSNAME, VOLUME, or DCB information from a previous DD statement.
  • Code an IEFBR14 job step to allocate and deallocate data sets.

Knowledge objectives

  • Explain how to code the name for a temporary data set.
  • List one advantage of using VIO temporary data sets.
  • Describe what a dummy data set is.
  • Describe what concatenated files are.
  • Describe what a multi-volume data set is.
  • Describe the effect of a referback in a DD statement.
  • Describe why you would code a job that executes the IEFBR14 program.

Chapter 7
How to manage tape data sets

Applied objective

  • Code the JCL necessary to allocate a tape data set using:

a.one or more specific or non-specific volumes

b.whatever form of label processing is appropriate

Knowledge objectives

  • List the reasons why tape data sets are used in IBM mainframe shops.
  • Distinguish between tape cartridges and tape reels.
  • Describe the IBM standard labels used for tape data sets.
  • List other types of tape label processing that can be done on an IBM mainframe.
  • Explain why tape data may need to be converted between EBCDIC and ASCII format.
  • Distinguish between tape multi-volume files and multi-file volumes.
  • Describe the purpose of the RETPD or EXPDT parameter in a DD statement for a tape data set.
  • Describe the purpose of the LABEL parameter in a DD statement for a tape data set.

Chapter 8
How to manage SYSOUT data sets

Applied objectives

  • Code a job stream that uses default and explicitly referenced OUTPUT statements.
  • Code OUTPUT and DD statement parameters to perform the following functions for SYSOUT data sets:

a.specify an output class and priority

b.release the data set for immediate processing

c.route the data set to a specific destination

d.hold the data set on the output queue

e.produce multiple copies of the data set

f.set an output limit

g.print the data set on special forms

Knowledge objectives

  • Distinguish between default and explicitly referenced OUTPUT statements.
  • Distinguish between job-level and step-level default OUTPUT statements.
  • Describe how the options that are coded on a DD SYSOUT statement override the equivalent defaults in any applicable OUTPUT statements.
  • Identify the JES2 or JES3 control statements that duplicate the functions of the OUTPUT and DD statements.

Chapter 9
How to use JCL procedures

Applied objectives

  • Given specifications, code a JCL procedure (cataloged or instream) using any or all of the facilities presented in this chapter, including symbolic parameters.
  • Code a job stream that invokes a procedure and that:

a.adds, changes, or nullifies EXEC, DD, and OUTPUT statement parameters in the procedure as necessary

b.assigns values to symbolic parameters in the procedure as necessary

  • Code a JCLLIB statement to establish a private procedure library for a job.
  • Use the INCLUDE statement to copy JCL statements into a job stream.

Knowledge objectives

  • Distinguish between cataloged and instream procedures.
  • Describe the function of a PEND statement in a job stream.
  • Describe the effect of the JCLLIB statement on the search sequence used to locate a cataloged procedure.
  • Describe what an INCLUDE group is.
  • Explain why you would use parameter overrides in EXEC, DD, or OUTPUT statements.
  • Explain how to code the name for a symbolic parameter.
  • Explain why you would use symbolic parameters in a procedure.

Chapter 10
How to process jobs conditionally

Applied objectives

  • Code the COND parameter on a JOB or EXEC statement to conditionally execute job steps based on the return codes issued by previous job steps.
  • Code IF/THEN, ELSE, and ENDIF statements to control job step execution based on return codes issued by previous job steps.

Knowledge objectives

  • Distinguish between return codes (or condition codes) and completion codes.
  • Identify the return code and the completion code that indicate normal termination.
  • Distinguish between coding the COND parameter on a JOB statement and coding it on an EXEC statement.
  • In general terms, describe the differences between using the COND parameter and using the IF construct to handle conditional processing.

Chapter 11
How to use RESTART and other program execution facilities

Applied objectives

  • Code the RESTART parameter on a JOB statement to restart a job:

a.from the beginning of the first job step

b.from the beginning of a named job step within a job or cataloged procedure

  • Assuming your system is set to WLM compatibility mode, code the PERFORM parameter on a JOB or EXEC statement to specify the performance group for a job or job step.
  • Code a COMMAND statement to issue an MVS or JES command from the JCL stream.

Knowledge objectives

  • Explain what checkpoints are and how they’re used in a job.
  • In general terms, describe how and why restart processing is used.
  • Explain what an automatic restart is.
  • In general terms, describe what a performance group is.
  • Name the JES2 and JES3 statements that can be used to:

a.restart a job when the system fails

b.send a message to the operator

c.specify a job’s system affinity

Chapter 12
How to manage generation data groups

Applied objectives

  • Code the JCL necessary to create or retrieve generations of a generation data group.
  • Using figure 12-4 as a model, code a job that defines a generation data group and allocates a model DSCB.
  • Using figure 12-6 as a model, list GDG catalog information.

Knowledge objectives

  • Explain what generation data groups are and why they’re used.
  • Distinguish between relative generation numbers and absolute generation numbers, and explain how they’re used to refer to the generations of a GDG.
  • Name the two main functions that must be done to create a GDG.
  • Describe the role of the model DSCB in specifying DCB information for new generations of a GDG.
  • Distinguish between a specific model DSCB and a general-purpose model DSCB.
  • Name the utility that’s used to create and delete GDGs.
  • Name two facilities you can use to list GDG catalog information.

Chapter 13
How to use the SMS facilities
for data set allocation

Applied objectives

  • Code DD parameters to create an SMS-managed data set by:

a.assigning specific storage, data, and management classes to the data set

b.letting the ACS routines assign classes to the data set

  • Code DD parameters to perform the following functions if SMS is active on the system:

a.allocate the space for a new data set in terms of records

b.model a new data set after an existing data set

Knowledge objectives

  • In general terms, describe how SMS manages file creation.
  • Distinguish between the DD parameters that can be coded only for SMS-managed data sets and those that can also be coded for non-SMS data sets as long as SMS is active on the system.
  • Describe the typical functions of a storage class, data class, and management class.
  • List some of the advantages a PDSE has over a PDS, and name the DD parameter you can use to create a PDSE.
  • Distinguish between using the REFDD parameter and the LIKE parameter to model a new data set after an existing one.

Chapter 14
VSAM concepts and terms

Knowledge objectives

  • Name and describe three types of VSAM files, and identify the type you’re most likely to use.
  • Explain the function of an alternate index.
  • Explain the function of a reusable data set.
  • Explain the function of the Integrated Catalog Facility (ICF) for VSAM files.
  • Explain the function of control intervals and control areas for VSAM files.
  • Explain how the use of free space affects the addition of records to a KSDS.
  • In general terms, explain how VSAM finds a record in a KSDS using its primary key.
  • In general terms, explain how alternate indexing affects the efficiency of VSAM file access.

Chapter 15
How to use JCL for VSAM data sets

Applied objectives

  • Given the requirements for a job that processes VSAM files, code a DD statement to:

a.allocate an existing VSAM file

b.allocate a DUMMY file when the program expects a VSAM file

c.create a new VSAM file, assuming SMS is active

Knowledge objectives

  • Explain why you need to code only a few DD parameters for an existing VSAM data set.
  • Explain how you can delete a VSAM data set without using AMS if SMS is active on your system.
  • Explain what DD statements you need when a job executes a COBOL program that uses alternate indexes to access a VSAM file.
  • Explain how using standard JCL (under SMS) instead of AMS to create a VSAM file can simplify volume allocation.

Chapter 16
How to use Access Method Services (AMS)

Applied objectives

  • Given an AMS job that uses any of the commands covered in detail in this chapter, identify what the job does.
  • Given syntax reference material, do the following:

a.Code an AMS DEFINE CLUSTER job to define a VSAM file.

b.Code an AMS LISTCAT job to list catalog entries.

c.Code an AMS ALTER job to change file attributes.

d.Code an AMS DELETE job to delete a catalog entry.

e.Code an AMS PRINT job to print a file. The print operation may or may not require all of the file’s records, and the output may be printed in character format, hex format, or both.

f.Code an AMS REPRO job to copy a file. The copy operation may or may not require all of the file’s records.

g.Code an AMS DEFINE ALTERNATEINDEX (or AIX) job to define an alternate index for a VSAM file.

h.Code a DEFINE PATH command to define the alternate index path for a VSAM file.

i.Code a BLDINDEX command that builds or rebuilds an alternate index.

Knowledge objectives

  • Name the two DD statements that are required in any job that executes the AMS utility, IDCAMS, and explain what they’re used for.
  • Describe the rules for coding AMS commands.
  • Distinguish between a generic entry name and a level entry name for the AMS LISTCAT command, and describe the effect of coding entry types for either one.
  • Describe the type of catalog information that can be listed by the AMS LISTCAT command.
  • Name the three AMS commands that are required to define and build an alternate index for a KSDS.
  • Explain what an upgrade set is for a base cluster, and describe how it gets updated.

Chapter 17
How to use JCL procedures
to compile and test programs

Applied objectives

  • Given reference material, code the JCL necessary to invoke the following OS/390 COBOL program development cataloged procedures, supplying any DD statements that might be necessary to allocate required data sets:

a.the compile-only procedure

b.the compile-and-link procedure

c.the compile-link-and-go procedure

Knowledge objectives

  • Describe the steps involved in a compile-link-and-go procedure, and list the input and output of each step.
  • Describe the differences between a source program, an object module, and a load module.
  • Describe the functional difference between the linkage editor and the loader, and explain when you would use a compile-load-and-go procedure.
  • Describe the extra step that’s required in preparing a CICS program for execution.
  • Name the four types of compilation procedures that IBM supplies for OS/390 programming languages.
  • List the more commonly used options for the OS/390 COBOL compilers, and explain how to specify them when you invoke a program development procedure.

Chapter 18
How to use the OS/390 utility programs