Download as pdf or txt
Download as pdf or txt
You are on page 1of 99

1

OS/390 & z/OS - Utilities


2
Course Objectives
Appreciate the use of Utilities
Know the Types of Utilities
Have an in-depth knowledge of common IBM Utilities
Know the purpose and structure of each Utility
Know the usage of the various parameters of different Utilities
Be able to write Utilities and execute them
3
Sessions Outline
Session 1:
Overview of IBM Utilities
Main Types of Dataset Utilities
IDCAMS
Session 2:
IEBGENER, IEFBR14 , IEBCOPY
Session 3:
SORT, IEHPROGM, IEHLIST, IEBCOMPR, IKJEFT01,
ADRDSSU
4
OS/390 & z/OS -Utilities
Session 1
5
Session 1 - Coverage
Introduction Utilities
Types of Utilities
Dataset Utilities
System Utilities
Access Method Services
6
Introduction - Utilities
Frequently performed function:
Copy sequential files / partitioned datasets / VSAM
Catalog / Uncatalogdatasets
Rename datasets
Compress partitioned datasets
Include / Exclude members to partitioned datasets when a copy transaction
is implemented
Compare sequential and partitioned datasets
Generate generation data groups
Create/delete datasets allocate/deallocatespace on datasets or code other
functions on the DD statement, without having to execute a program
7
What is a UTILITY?
A UTILITY program performs a basic function, i.e., it does a routine job
which is required repeatedly in an installation.
IBM provides a number of prewritten utility programs to assist users in
organizing and maintaining data
Each utility program falls into one of the two classes, based on the function
performed and the type of control of the utility. The three classes are:
Dataset utilities
System utilities and
Access Method Services
8
Dataset Utilities
Dataset Utility Programs,
Can be used to create, reorganize, change or compare data at the
dataset or record level.
Can be executed as jobs or be invoked as subroutines of a calling
program.
9
Dataset Utility Programs
To Create and Copy datasets
IEFBR14 (null program)
IEBGENER
IEBCOPY
SORT
10
System Utilities
System Utility Programs:
System utility programs can be used to maintain and manipulate
system and user datasets
These programs must reside in an authorized library
They can be executed as jobs or be invoked as subroutines of an
authorized program
11
System Utility Programs
To Maintain and Manage Catalogs
IEHPROGM
IEHLIST
12
Access Method Services
High performance access method to process both VSAM and non-
VSAM datasets
Virtual Storage Access Method (VSAM)
13
IDCAMS
14
IDCAMS
Purpose:
To work on the VSAM datasets
To copy a VSAM dataset to another flat file
To copy a VSAM to another VSAM (repro)
15
IDCAMS: Example 1
Example:
INDD is the input and is a VSAM dataset
OUTDD is the output and is a flat file created with Variable block size
(format = VB)
//STEP1 EXEC PGM=IDCAMS
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//INDD DD DISP=SHR,DSN=(existing VSAM dataset)
//OUTDD DD DISP=SHR,DSN=(existing flat file)
//SYSIN DD *
REPRO INFILE(INDD) OUTFILE(OUTDD)
16
IDCAMS: Example 2
Example:
INDD is the input an existing VSAM dataset
OUTDD is the output a blank VSAM dataset
//STEP1 EXEC PGM=IDCAMS
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//OUTDD DD DISP=SHR,DSN=SSG1M.RKR.UTIL.VSAM.AIF
//INDD DD DISP=SHR,DSN=SSG1M.RKR.UTIL.VSAM.REPRO.IN
//SYSIN DD *
REPRO INFILE(INDD) OUTFILE(OUTDD)
17
Session 1 - Summary
Frequently performed functions Requirement for utilities
Types of Utilities
Dataset Utilities - Operate on the data at dataset or record level
System Utilities Operate on the user datasets
Access Method Services IDCAMS operate on both VSAM and Non
VSAM datasets
18
Functions of Utilities
Session 2
19
Session 2 - Coverage
IEFBR14 - Null Program
IEBCOPY Copy datasets
IEBGENER Work on PDS members
20
IEFBR14
21
IEFBR14
Purpose:
Carries out no processing of its own
Used to Create and Catalog empty datasets
Delete datasets that are no longer required
22
IEFBR14: Create and Catalog a Dataset
Example 1:
//JOBCARD
//STEP01 EXEC PGM=IEFBR14
//FILE1 DD DSN=TCS.EMP.MASTER,
// DISP=(NEW,CATLG,DELETE),
// UNIT=DISK,VOL=SER=TRG001,
// SPACE=(CYL,(10,10),RLSE),
// DCB=(RECFM=FB,LRECL=500)
23
IEFBR14: Uncatalogand Delete a Dataset
Example 2:
//JOBCARD
//STEP01 EXEC PGM=IEFBR14
//FILE1 DD DSN=TCS.EMP.MASTER,
// DISP=(OLD,UNCATLG)
//*
//STEP02 EXEC PGM=IEFBR14
//FILE2 DD DSN=TCS.EMP.MASTER
// DISP=(OLD,DELETE),UNIT=DISK
//
24
IEBCOPY
25
IEBCOPY
Purpose:
To perform functions on Partitioned Datasets
To copy a Partitioned Dataset to a DASD Volume
Compress Partitioned datasets
Merge datasets
Copy PDS to another PDS or PS (unloading)
Restore a PDS from a tape backup to a DASD (loading)
Select / Exclude members of a PDS in a Copy operation
26
IEBCOPY: Job Control Statements
//JOBCARD
//STEP01 EXEC PGM=IEBCOPY
//SYSPRINT DD Defines a sequential dataset for messages
//SYSUT1 DD or anyname1 Defines an INPUT partitioned dataset
//SYSUT2 DD or anyname2 Defines an OUTPUT partitioned dataset
//SYSUT3 DD Defines a spill dataset on a direct access device. It is
used when there is no space in virtual storage for some
or all of the current directory entries of the input PDS.
//SYSUT4 DD Defines a spill dataset on a direct access device. It is
used when there is no space in virtual storage for some
or all of the current directory entries of the output PDS.
//SYSIN DD Defines the CONTROL dataset
27
IEBCOPY: Example 1
To copy members from three partitioned datasets DATASET1, DATASET2, DATASET3 to
an existing partitioned dataset DATASET4.
//JOBCARD
//STEP01 EXEC PGM=IEBCOPY
//SYSPRINT DD SYSOUT=A
//INOUT1 DD DSN=DATASET1,DISP=OLD
//INOUT2 DD DSN=DATASET2,DISP=OLD
//INOUT3 DD DSN=DATASET3,DISP=OLD
//INOUT4 DD DSN=DATASET4,DISP=OLD
//SYSUT3 DD UNIT=SYSDA,SPACE=(TRK,(1))
//SYSUT4 DD UNIT=SYSDA,SPACE=(TRK,(1))
//SYSIN DD *
COPYOPER COPY OUTDD=INOUT4,
INDD=INOUT1,
INDD=INOUT2,
INDD=INOUT3
/*
28
IEBCOPY: Example 2
To copy all the members of INOUT6 (PDS) to INOUT2 (PDS)
replacing identically named members.
//SYSIN DD *
COPYOPER COPY OUTDD=INOUT2
INDD=((INOUT6,R))
/*
29
IEBCOPY: Example 3
To copy members C,D,E,A and G from INOUT6 and INOUT2 to INOUT4.
(INOUT6, INOUT2 and INOUT4 are partitioned datasets)
//SYSIN DD *
COPYOPER COPY OUTDD=INOUT4
INDD=INOUT6
INDD=INOUT2
SELECT MEMBER=(C,D,E,A,G)
30
IEBCOPY: Example 4
In example 3, if members E and G can replace identically named member of
INOUT4, the control statements are as follows:
//SYSIN DD *
COPYOPER COPY OUTDD=INOUT4
INDD=INOUT6,INOUT2
SELECT MEMBER=(C,D,(E,,R),A,(G,,R))
31
IEBCOPY: Example 5
In example 4 the members C and D are renamed as J and K respectively
and G replaces identically named member of output PDS
E is renamed T and replaces identically named member of output PDS
//SYSIN DD *
COPYOPER COPY OUTDD=INOUT4
INDD=INOUT6,INOUT2
SELECT MEMBER=((C,J),(D,K),(E,T,R),A,(G,,R))
32
IEBCOPY: Example 6
Suppose in a copy operation from INOUT1 to INOUT2, members A, B, C
and D have to be excluded
//SYSIN DD *
COPYOPER COPY
OUTDD=INOUT2,INDD=INOUT1
EXCLUDE MEMBER=(A,B,C,D)
/*
33
IEBCOPY: Example 7
To Compress a partitioned dataset, assign the same dataset name to INDD
and OUTDD
//SYSIN DD *
COPY OUTDD=DATASET1,INDD=DATASET1
/*
34
IEBCOPY: Example 8
Multiple COPY operations to copy members A and B from DATASET1 and all members of
DATASET2 except C and G to DATASET3
All members copied from DATASET2 are permitted to replace identically named members
of DATASET3
//SYSIN DD *
COPYOPER COPY OUTDD=DATASET3,
INDD=DATASET1
SELECT MEMBER=(A,B)
COPY O=DATASET3,
I=(DATASET2,R)
EXCLUDE MEMBER=(C,G)
/*
35
IEBGENER
36
IEBGENER
Purpose:
To copy sequential datasets
Create a backup of a sequential dataset or a member of a partitioned
dataset
Produce a partitioned dataset or a member of a partitioned dataset, from
a sequential input dataset
Expand an existing partitioned dataset by creating partitioned members
and merging them into the existing dataset
Produce an edited sequential of partitioned dataset
Convert data formats, rearrange input fields and change the logical record
length of a dataset
37
IEBGENER: Job Control Statements
//JOBCARD
//STEP01 EXEC PGM=IEBGENER
//SYSPRINT DD Defines a sequential dataset for messages
(System output device / Tape volume / DASD
volume)
//SYSUT1 DD Defines the INPUT dataset (Sequential dataset /
Member of a PDS)
//SYSUT2 DD Defines the OUTPUT dataset (Sequential dataset /
PDS / Member of a PDS)
//SYSIN DD Defines the CONTROL dataset (Very often
DUMMY)
38
IEBGENER: Example 1
To copy a Tape file TCS.EMP.MASTER of VOL SER 007311, to a DASD
file TCS.EMP.MST.DISK. The Input Employee master record is 500 bytes in
length
//JOBCARD
//STEP1 EXEC PGM=IEBGENER
//SYSUT1 DD DSN=TCS.EMP.MASTER,UNIT=TAPE,DISP=OLD,
// VOL=SER=007311,LABEL=(,SL)
//SYSUT2 DD DSN=TCS.EMPMST.DISK,UNIT=DISK,
// VOL=SER=TCS3010,DISP=(NEW,CATLG),
// SPACE=(TRK,(10,10)),DCB=(RECFM=FB,LRECL=500)
//SYSPRINT DD SYSOUT=A
//SYSIN DD DUMMY
39
Utility Control Statements
Used to create a copy of a dataset in which:
The fields of each record have been rearranged, omitted or replaced
by a literal, and/or
The logical record length has been changed
The Control Statements most commonly used in IEBGENER are:
GENERATE
RECORD
MEMBER
40
GENERATE, RECORD & MEMBER Statements
Generate Statement used to tell IEBGENER that editing is to be performed
Record Statement used to define the fields and literals for editing
Member Statement identifies the names to be assigned to the members
generated in the PDS
Syntax :
GENERATE (MAXFLDS=M, MAXLITS=N, MAXNAME=X,
MAXGPS=Y)
RECORD FIELD=(l,il,,ol)
RECORD IDENT=(l,name,il)
MEMBER NAME=(member,alias)
41
GENERATE Statement parameters
MAXFLDS total number of field operands in the RECORD statements
MAXLITS total number of characters in the literals in the RECORD
statements
MAXNAME number of member names in all subsequent MEMBER
statements
MAXGPS number of times the IDENT parameter appears in subsequent
RECORD statements
42
Record Statement: FIELD Parameters
Length - Length in bytes of the input field or literal to be processed.
Default is 80 bytes. If a literal is to be processed, a length of 40 or less
must be specified
Input-location or literal
Specifies the starting byte of the field to be processed. Default is 1
Specifies a literal to be placed in the specified output location
Conversion: specifies a two-byte code that indicates the type of conversion
to be performed on this field. Default (NO conversion)
Output-location: Specifies the starting location of this field in theoutput
records. Default is 1.
43
IEBGENER: Example 2
//JOBCARD
//EXEC PGM=IEBGENER
//SYSIN DD *
GENERATE MAXFLDS=1
RECORD FIELD=(35,1,,1)
/*
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD *
Dataset to be copied
/*
//SYSUT2 DD DSN=name,UNIT=DASD,
// DISP=(NEW,CATLG,DELETE),SPACE=(TRK,(3,1),RLSE),
// DCB=(LRECL=35,RECFM=FB)
44
IEBGENER: Example 3
//SYSIN DD *
GENERATE MAXFLDS=3,MAXLITS=11
RECORD FIELD=(10,'**********',,1),
FIELD=(5,1,,11,),
FIELD=(1,'=',,16)
/*
45
Record Statement: IDENT Parameters
Identifies the last record of a collection of records in the input dataset
Length: in bytes of the identifying names; cannot exceed 8 bytes
Name: Exact literal that identifies the last input record of each record
group (include in quotes)
Input-location: Starting byte of the field that contains the identifying
name in the input records
46
IEBGENER: Example 4
Create a partitioned dataset consisting of three members, MEMBER1,
MEMBER2, MEMBER3 from sequential input
The sequential input has FIRSTMEM as the first 8 characters of the last
record of the first member, and SECNDMEM for the second member
47
IEBGENER: Example 4
//JOBCARD
//STEP01 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=A
//SYSUT1 DD DSN=INSET,DISP=OLD
//SYSUT2 DD DSN=NEWSET,UNIT=DISK,DISP=(NEW CATLG),
// VOL=SER=TRG001,SPACE=(TRK,(5,5,5)),DCB=(RECFM=FB,LRECL=80)
//SYSIN DD *
GENERATE MAXNAME=3,MAXGPS=2
MEMBER NAME=MEMBER1
GROUP1 RECORD IDENT=(8,'FIRSTMEM',1)
MEMBER NAME=MEMBER2
GROUP2 RECORD IDENT (8,'SECNDMEM',1)
MEMBER NAME=MEMBER3
48
Session 2 - Summary
IEFBR14 - Null Program
IEBCOPY Copy datasets
IEBGENER Work on PDS members
49
Functions of Utilities
Session 3
50
Session 3 - Coverage
Sort / Merge Utility
IEHPROGM
IEHLIST
IEBCOMPR
IKJEFT01
ADRDSSU
51
Sort/Merge Utility
52
Sort/Merge Basics
Sort/Merge Utility used to
Sort records in ascending or descending order within a file
Merge two or more files into a single file
Select a subset of records from an input file
SUM values in records
Reformat records
53
Job Control Statements for SORT
//JOBCARD
//STEPNAME EXEC PGM=SORT
//STEPLIB DD <Defines the library containing the DFSORT pgm>
//SYSOUT DD <Defines the message dataset>
//SORTIN DD <Defines the INPUT dataset>
//SORTWKnnDD <Defines a WORK storage dataset>
//SORTOUT DD <Defines the OUTPUT dataset>
//SYSIN DD <Contains DFSORT program control statements>
54
SORT Statement Basics
Write the fields in parentheses, separated by commas
The starting position of the key field
Length of the key field in bytes
A code for data format
Letter 'A' for Ascending order or 'D' for Descending order
Example:
1 2......................................................71
SORT FIELDS=(110,5,CH,A)
55
Data Format Codes
Data Format Code
EBCDIC Character CH
ASCII Character AC
Binary BI
Zoned Decimal ZD
Packed Decimal PD
56
SORT: Example 1
Now let us consider sorting by multiple fields like COURSE DEPARTMENT,
COURSE NUMBER and BOOK TITLE. Then,
SORT FIELDS=(110,5,CH,A,115,5,CH,A,1,75,CH,A)
This is EQUIVALENT to:
SORT FIELDS=(110,10,CH,A,1,75,CH,A)
When all the control fields are of the same data format, then
SORT FIELDS=(110,10,A,1,75,A),FORMAT=CH
57
SORT JCL: Example 2
Sort the book store file records in ASCENDING order of COURSE
DEPARTMENT and COURSE NUMBER and DESCENDING order of
NUMBER IN STOCK
Assume that the program SORT is available in a partitioned dataset
IBM.UTIL.LOADLIB
58
SORT JCL: Example 2
//JOBCARD
//STEP01 EXEC PGM=SORT
//STEPLIB DD DSN=IBM.UTIL.LOADLIB,DISP=SHR
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN= BOOK.STORE.INPUT,DISP=OLD
//SORTWK01 DD UNIT=3380,SPACE=(TRK,(1,1))
//SORTOUT DD DSN=BOOK.STORE.OUT,
// DISP=(NEW,CATLG,DELETE),UNIT=DISK,
// VOL=SER=TRG001,SPACE=(CYL,(10,1),RLSE),
// DCB=(RECFM=FB,LRECL=173,BLKSIZE=1730)
//SYSIN DD *
SORT FIELDS=(110,10,CH,A,162,4,BI,D)
/*
59
MERGE Files
Files to be merged should be sorted on the same set of keys on
which they are being merged
Do not use SORTWKnnDD statement
Instead of SORTIN DD, use SORTINnnDD; one SORTINnnDD
statement for each input file nn --> 01 to 16
In Utility Control Statements, MERGE replaces SORT
60
MERGE JCL: Example 1
Merge 3 files that have been sorted in
ASCENDING order of COURSE DEPARTMENT
ASCENDING order of COURSE NUMBER
DESCENDING order of NUMBER IN STOCK
61
MERGE JCL: Example 1
//JOBCARD
//STEP01 EXEC PGM = SORT
//STEPLIB DD DSN=IBM.UTIL.LOADLIB,DISP=SHR
//SYSOUT DD SYSOUT=*
//SORTIN01 DD DSN=BOOK.STORE.INPUT1,DISP=OLD
//SORTIN02 DD DSN=BOOK.STORE.INPUT2,DISP=OLD
//SORTIN03 DD DSN=BOOK.STORE.INPUT3,DISP=OLD
//SORTOUT DD DSN=BOOK.STORE.OUT,DISP=(NEW,CATLG,DELETE),
//UNIT=DISK,VOL=SER=TRG001,SPACE=(CYL,(10,1),RLSE),DCB=(RECF
M=FB,LRECL=173,BLKSIZE=1730)
//SYSIN DD *
MERGE FIELDS=(110,10,CH,A,162,4,BI,D)
/*
62
Other Sort/Merge Control Statements
INCLUDE and OMIT
Improves the Sort/Merge Efficiency by letting sort or merge just the
records that need to be processed
INREC and OUTREC
Improves the Sort/Merge efficiency by letting sort or merge onlythe
fields of the input records that need to be included in the output file
SUM statement
Lets you add up numeric data in sorted records that have the same
control field values and writes just one output record for each value
SUM FIELDS=NONE to eliminate duplicate records from a file
63
Tailoring the input file
Inclusion and Omission can be done by comparing the contents of a record
field with either
Another field or
A constant (Character string / Decimal Number / Hexadecimal string)
Two or more conditions can be combined by logical 'AND' and 'OR'
Both INCLUDE and OMIT cannot be used together
64
How to write INCLUDE/OMIT statements
Syntax:
INCLUDE COND=(field,comparison,{field }, [ {AND}, ])
{constant} {OR }
OMIT COND=(field,comparison,{field }, [ {AND}, ])
{constant} {OR }
Write in parentheses, and separated by commas:
the position, length, and data format of the field to be compared
comparison operator
the position, length, and data format of the field compared against OR
a constant
65
List of Comparison operators
Operators
EQ Equal To
NE Not Equal To
GT Greater Than
GE Greater Than Or Equal To
LT Less Than
LE Less Than Or Equal To
66
INCLUDE statement: Example
Suppose in a Book store file we want only the books (in ascending order of
book title) for which the number of copies sold YTD that has exceeded 250
The SORT Control statements are:
INCLUDE COND=(166,4,BI,GT,250)
SORT FIELDS=(1,75,CH,A)
67
OMIT statement: Example
Suppose only those books for which NUMBER SOLD YTD exceeds 125
and the LAST NAME of the author is MARTIN are to appear in the
descending order of Price
The corresponding SORT control statements are
OMIT COND=(166,4,BI,LE,125,OR,76,15,CH,NE,C'MARTIN')
SORT FIELDS=(170,4,BI,D)
68
Rules for padding/truncation
In a field-to-field comparison, the shorter field is padded as appropriate with
blanks or zeroes
In a field-to-constant comparison, the constant is padded or truncated to the
length of the field
Note:
The decimal constants are padded or truncated on the left
Character and Hexadecimal constants are padded or truncated on the
right
69
Reformatting
Reformatting records with OUTREC: After records are sorted they can be
reformatted by using OUTREC control statement.
Fields can be deleted
Order of the fields can be rearranged
Zeroes or blanks can be inserted BEFORE, BETWEEN or AFTER
fields
If record length gets changed in the process of using OUTREC statement,
the new record length has to be specified on the SORTOUT DD statement
70
How to write the OUTREC statement?
Syntax:
INREC FIELDS=([c:][separation-fld,]position,length[,align,])
OUTREC FIELDS=([c:][separation-fld,]position,length[,align,])
Specify the input location and length of the fields to appear, in the desired order
(data format is not specified)
Write in parentheses and separated by commas:
c: Specifies the column (byte) in which a data field or separation field should be
placed, relative to the start of the record
align tells the sort/merge utility to align the field on a halfword(H), fullword(F),
or doubleword(D) boundary
71
Reformatting the Output Record: Example 1
Suppose only the BOOK TITLE, NUMBER IN STOCK, are to appear in
ASCENDING order of BOOK TITLE, the output record becomes 79 bytes long
The SORTOUT DD Statement becomes
//SORTOUT DD DSN=BOOK.OUTPUT, DISP=(NEW,CATLG,),
// UNIT=DISK,VOL=SER=TRG001,DCB =(RECFM=FB,
// LRECL=79,BLKSIZE=790),SPACE=(TRK,(5,))
DFSORT control statements are
//SYSIN DD *
SORT FIELDS=(1,75,CH,A)
OUTREC FIELDS=(1,75,162,4)
72
OUTREC: Example 2
If it is required to add a 4-byte Binary field between BOOK TITLE and
NUMBER IN STOCK and fill it up with ZEROES, the following control
statement has to be given:
OUTREC FIELDS=(1,75,4Z,162,4)
LRECL on the SORTOUT DD statement should be 83
73
OUTREC: Example 3
Suppose a 20 character blank field is to be prefixed to the output records,
the following control statement has to be given:
OUTREC FIELDS=(20X,1,75,4Z,162,4)
LRECL on the SORTOUT DD statement should be 103
74
Reformatting records with INREC
The INREC control statement allows to reformat the input recordsbefore
they are processed
Reformatting is performed before SORT/MERGE
Note:
If reformatting using INREC changes the location of key fields, the new
location has to be specified in the SORT statement
75
INREC: Example
If only the BOOK TITLE and NUMBER SOLD YTD are to appear in
descending order of NUMBER SOLD YTD the following control statement
has to be given:
//SYSIN DD *
INREC FIELDS=(1,75,166,4)
SORT FIELDS=(76,4,BI,D)
/*
76
IEHPROGM
77
IEHPROGM
Catalog a Dataset
Un catalog a Dataset
Rename Datasets
Create an index of a GDG
Delete the index of an existing GDG
78
//JOBCARD
//STEPNAME EXEC PGM=IEHPROGM
//SYSPRINT DD SYSOUT=print-device-class
//SYSUT1 DD UNIT=unitname,
// VOL=SER=vol-no
//SYSUT2 DD UNIT=unitname,
// VOL=SER=vol-no
//SYSIN DD *
<- parameters for above functions ->
/*
//
IEHPROGM
79
A dataset can be cataloged using the CATLG statement
Syntax:
//SYSIN DD *
CATLG DSN=data-set-name
VOL=device-name=vol.no
/*
//
IEHPROGM
80
A dataset can be uncatalogedusing the UNCATLG statement.
Syntax:
//SYSIN DD *
UNCATLG DSN=data-set-name
/*
//
SYSUT2 is not coded
IEHPROGM
81
A dataset can be renamed using the RENAME command
Syntax:
//SYSIN DD *
RENAME DSN=data-set-name,
VOL=device-name=volume=number
NEWNAME=new-name
/*
//
IEHPROGM
82
IEHLIST
83
IEHLIST
Used to list a PDS directory, VTOC or system catalog
84
Example 1: To list the VTOC of a specified DASD Volume given Volume
name and disk type.
//JOBCARD
//STEP010 EXEC PGM=IEHLIST
//*
//SYSPRINT DD SYSOUT=*
//*
//DD4 DD UNIT=SYSDA,VOL=SER=MVSDLB,DISP=OLD
//*
//SYSIN DD *
LISTVTOC VOL=3350=MVSDLB
/*
//
IEHLIST
85
Example 2: To list the members and statistics for a PDS .
//SYSIN DD *
LISTPDS DSNAME=(SYS1.LINKLIB),VOL=3350=MVSRES
/*
Example 3: To list the Catalog (iedatasets that are in the catalog) for a
specific DASD volume
//SYSIN DD *
LISTCTLG VOL=3350=PUB000
/*
IEHLIST
86
IEBCOMPR
87
Used to Compare two sequential datasets
Compare two partitioned datasets
If the two datasets are identical then zero will be returned upon successful
completion of the job
If the datasets are not identical then a condition code of 8 will be returned
The datasets that are compared must have same record length and format,
however block size need not be the same
IEBCOMPR
88
Syntax:
//JOBCARD
//STEPNAME EXEC PGM=IEBCOMPR
//SYSPRINT DD SYSOUT=print-device-class
//SYSUT1 DD DSN=data-set-1-features
//SYSUT2 DD DSN=data-set-2- features
//SYSIN DD *
COMPARE TYPORG=data-set-type
/*
//
IEBCOMPR
89
IKJEFT01
90
IKJFET01
Purpose:
To issue TSO commands through the JCLs
To copy files from and to oMVS, and MVS
91
IKJEFT01: Example 1
INDD means the input file in the oMVSthat needs to be copied onto the flat file -
JES DD
//COPY EXEC PGM=IKJEFT01
//JES DD DSN=HLQ.IN,DCB=(RECFM=V,LRECL=256),DISP=NEW
//IN DD PATH='/usr/lpp/ssg/ssgrav/in',
// PATHOPTS=ORDONLY
//SYSTSPRT DD DUMMY
//SYSTSIN DD *
OCOPY INDD(ERRORF) OUTDD(JES)
//*
92
IKJEFT01: Example 2
To get a list of datasets that start with a particular HLQ
//LISTMEM EXEC PGM=IKJEFT01
//SYSTSPRT DD DSN=SSGRAV.MEMBERS,DISP=NEW
//SYSTERM DD DUMMY
//SYSTSIN DD *
PROFILE PREFIX(HLQ)
LISTCAT
93
ADRDSSU
94
ADRDSSU
Purpose:
To move huge data from one volume to another
95
ADRDSSU
Example:
INDD is the input, or the volume from which the datasets need tobe moved
OUTDD is the output volume
The include option can be used to mention different qualifiers (say HLQ.** or HLQ.NEXT.** or
** - for all)
//MOVE01 EXEC PGM=ADRDSSU,REGION=0M
//SYSPRINT DD SYSOUT=*
//INDD DD VOL=SER=Y2KZ02,UNIT=3390,DISP=SHR
//OUTDD DD VOL=SER=DEVZ20,UNIT=3390,DISP=SHR
//SYSIN DD *
COPY DS(INCLUDE(**)) -
LIDD(INDD) -
OUTDD(OUTDD) -
ALLDATA(*) -
CATALOG DELETE
//
96
Session 3 - Summary
Sort / Merge Utility
IEHPROGM Catalog, Uncatalog, Rename, Create/Delete GDG index
IEHLIST List VTOC, PDS and Catalog
IEBCOMPR Compare datasets
IKJEFT01 Issue TSO Commands
ADRDSSU Move Volumes of data
97
Course Summary
Purpose of Utilities
Main Types of Utilities
Functions of each type of Utility
IEBGENER, IEFBR14, IEBCOPY
Sort/Merge Operations
INCLUDE/OMIT and INREC/OUTREC Control Statements
98
References
MurachsOS/390 and z/OS JCL by Raul Menendez and Dough Lowe
System 390 Job Control Language by Gary DeWardBrown
99
THANK YOU

You might also like