BookRags.com Literature Guides Literature
Guides
Criticism & Essays Criticism &
Essays
Questions & Answers Questions &
Answers
Lesson Plans Lesson
Plans
My Bibliography Periodic Table U.S. Presidents Shakespeare Sonnet Shake-Up
Research Anything:        
History | Encyclopedias | Films | News | Create a Bibliography | More... Login | Register | Help

IBM mainframe utility programs

Print-Friendly
About 10 pages (3,061 words)

Bookmark and Share Know this topic well? Help others and get FREE products!

IBM mainframe utility programs are supplied with IBM mainframe operating systems such as MVS to carry out various tasks associated with datasets, etc.

Contents

Disk drive support

ICKDSF

ICKDSF ("Device Support Facility") installs, initializes and maintains DASD, either under an operating system, or standalone.

VSAM utilities

IDCAMS

IDCAMS ("Access Method Services") generates and modifies VSAM and Non-VSAM datasets. The "Access Method" reference derives from the initial "VSAM replaces all other access methods" mindset of OS/VS. It probably has the most functionality of all the utility programs, performing many functions, for both VSAM and non-VSAM files. It was intended to replace most of the other dataset utility programs.

Dataset utilities

IEBCOMPR

IEBCOMPR compares records in sequential or partitioned data sets. The IEBCOMPR utility is used to compare two sequential or partitioned data sets. This data set comparison is performed at the logical record level. Therefore, IEBCOMPR is commonly used to verify that a backup copying of a data set is current. During processing, IEBCOMPR compares each record from each data set, one by one. If the records are unequal, IEBCOMPR lists the following information in the SYSOUT: - The record and block numbers in question. - The names of the DD statements in which the inconsistency occurred. - The unequal records. When comparing sequential data sets, IEBCOMPR considers the data sets equal if the following conditions are met: - The data sets contain the same number of records. - The corresponding records and keys are identical. For partitioned data sets, IEBCOMPR considers the data sets equal if the following conditions are met: - The directory entries for the two partitioned data sets match - that is, the names are the same, and the number of entries are equal. - The corresponding members contain the same number of records. - The corresponding records and keys are identical. If ten unequal comparisons are encountered during processing, IECOMPR terminates with the appropriate message.

//XXXXXXXW JOB   XXXXXXX,AAAA.A.A,CLASS=G,MSGCLASS=1,NOTIFY=XXXXXXX
//S010IEBC EXEC  PGM=IEBCOMPR,ACCT=PJ00000000
//     INCLUDE   MEMBER=@BATCHS
//SYSIN    DD    DUMMY
//*
//SYSUT1   DD    UNIT=DASD,DISP=SHR,DSN=XXXXXXX.PREVBIB
//SYSUT2   DD    UNIT=DASD,DISP=SHR,DSN=XXXXXXX.PREVCAT
//SYSUT#   DD

IEBCOPY

IEBCOPY copies, compresses and merges partitioned datasets. It can also select or exclude specified members during the copy operation, and rename or replace members. Some of the tasks that IEBCOPY can perform include the following: - Creating a backup of a partitioned data set (PDS) - Copying a PDS in place to reclaim the unused space from deleted members; Also called compressing a PDS. - Copying selected members to another PDS. - Renaming selected members of a PDS. - Merging multiple partitioned data sets into a single PDS. - Altering, copying and reblocking load moduled. The IEBCOPY utility differs from the other IEB-type utilities in that the DDNAMEs of the input and output DD statements are defined by the JCL code as opposed to using the standard SYSUT1 and SYSUT2 DDNAMEs. For the IEBCOPY utility, the required job control statements are as follows:

//stepname EXEC PGM=IEBCOPY 
//SYSPRINT DD  SYSOUT=class
//anyname1 DD  ...
//anyname2 DD  ...
//SYSUT3   DD  ...
//SYSUT4   DD  ...
//SYSIN    DD  ...

The EXEC statement specifies the utility program name IEBCOPY. You can give this EXEC statement any stepname you wish, as long as you adhere to the naming conventions for JCL statements. Following the EXEC statement are the specific DD statements used by IEBCOPY. These DD statements must appear in every step that uses IEBCOPY. In addition, the DD statements can be listed in any order within the step. The SYSPRINT DD statement specifies a message data set to which the output message generated from the utility, such as error and allocation messages, are sent. The anyname1 and anyname2 DD statements are specific to the IEBCOPY utility. These DD statements indicate the partitioned input and output data sets, respectively. You can use any DDNAME for these two DD statements, as long as you adhere to the naming conventions for DDNAMEs. As you will see, these DDNAMEs are specified in the utility control statements to tell IEBCOPY the name of the input and output data sets. The SYSUT3 statement specifies a spill (work) data set on DASD that is used to hold the input data set's directory entries during the copying. This work data set is used if there is not enough virtual storage allocated to the program by the JOB or EXEC statement REGION parameter. The SYSUT4 DD statement also specifies a spill(work) data set on DASD. This is used to hold the output data set's directory entries during the copying, if enough virtual storage is not available. The SYSIN DD statement specifies the utility control data set.

IEBDG

IEBDG ('Data Generator') creates test datasets consisting of patterned data.

IEBEDIT

IEBEDIT selectively copies portions of JCL. An example of an IEBEDIT program:

//IEBEDITJ JOB ACCT,'',CLASS=P,MSGCLASS=T,MSGLEVEL=(1,1),NOTIFY=&SYSUID
//STEP0001 EXEC PGM=IEBEDIT
//SYSPRINT DD SYSOUT=*
//SYSUT1   DD DSN=xxxxx.yyyyy.zzzzz,DISP=SHR
//SYSUT2   DD SYSOUT=(*,INTRDR)
//SYSIN    DD *
    EDIT TYPE=INCLUDE,STEPNAME=(STEP10,STEP5,STEP15)
/*
//

In data set xxxxx.yyyyy.zzzzz you have to write a JCL program which contains 15 steps. After that you have to execute the above program.

IEBGENER

IEBGENER copies records from a sequential dataset, or creates a partitioned dataset. Some of the tasks that IEBGENER can perform include the following: - Creating a backup of a sequential data set or a member of a PDS. - Changing the physical block size or logical record length of a sequential data set. - Creating an edited data set. - Printing a sequential data set or a member of a PDS. - Creating partitioned output data set from sequential input data set. An example of an IEBGENER program to copy one dataset to another:

//IEBGENER JOB  ACCT,'DATA COPY',MSGCLASS=J,CLASS=A
//STEP010  EXEC PGM=IEBGENER                       
//SYSUT1   DD DSN=xxxxx.yyyyy.zzzzz,DISP=SHR 
//SYSUT2   DD DSN=aaaaa.bbbbb.ccccc,DISP=(,CATLG),
//         DCB=(RECFM=FB,LRECL=1440),SPACE=(TRK,(5,5),RLSE),
//         UNIT=SYSDA                       
//SYSPRINT DD SYSOUT=*                             
//SYSIN    DD DUMMY                                

The EXEC statement specifies the program IEBGENER. You can give this EXEC statement any stepname that you wish, as long as you adhere to the naming conventions for JCL statements. Following the EXEC statement, are the specific DD statements used by IEBGENER. These DD statements must appear in every step that uses IEBGENER. In addition, the DD statements can be listed in any order within the IEBGENER step. The SYSPRINT DD statement specifies a message data set to which the output message generated from the utility, such as information and error message, are sent. Remember that the SYSPRINT DD statement can specify a system output device, a tape data set, or a DASD data set. The SYSUT1 DD statement specifies the input data set, that is, the name of the data set that you wish to copy. For the IEBGENER utility, this DD statement specifies a sequential data set or a member of a PDS. The SYSUT2 DD statement specifies the output data set, that is, the name of the data set you wish to create or to which you wish to copy members. This DD statement specifies a sequential data set, a PDS, or a member of a PDS. The SYSIN DD statement specifies the utiity control statements. The utility control statements are optional for IEBGENER. If utility control statement are used, the SYSIN DD statement defines instream data, a sequential data set, or member of a PDS. If you do not need to include any utility control statement you should specify a DUMMY parameter on the SYSIN DD statement. On some systems it is possible to send email from a batch job by directing the output to the "SMTP" external writer. On such systems, the technique is as follows:

//IEBGENER JOB  ACCT,'DATA COPY',MSGCLASS=J,CLASS=A
//NORMRC   EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1   DD *,LRECL=80
HELO <SYSTEMID>
MAIL FROM:<USERID@SYSTEMID>
RCPT TO:<USERID@SYSTEMID>
DATA
From: <USERID@SYSTEMID>
To: <USERID@SYSTEMID>
Subject: Test Mail
TEST MAIL FROM MAINFRAME
.
QUIT
/*
//SYSUT2   DD SYSOUT= (B, SMTP), LRECL=80
//SYSIN    DD DUMMY

IEBIMAGE

IEBIMAGE manipulates character set definitions (aka "load modules" or "images") for the IBM 3800 printing subsystem.

IEBISAM

IEBISAM unloads, loads, copies and prints ISAM datasets. (OBSOLETE) ISAM is no longer supported by most modern operating systems. VSAM is used instead. See IDCAMS.

IEBPTPCH

IEBPTPCH ("PrinT and PunCH") prints or punches records from a sequential or partitioned dataset. Some of the tasks that IEBPTPCH can perform include the following: - Printing or punching an entire data set, sequential or partitioned (PDS). - Printing or punching selected PDS members. - Printing or punching selected records from a sequential or partitioned data set. - Printing or punching a PDS directory. - Printing or punching an edited version of a sequential data set or PDS.

//IEBPTPCH JOB
//         EXEC PGM=IEBPTPCH
//SYSIN    DD *
 PRINT     MAXFLDS=2
 TITLE     ITEM=('Name',22),
           ITEM=('GPA',50)
 TITLE     ITEM=(' ',1)
 RECORD    FIELD=(25,1,,22),
           FIELD=(4,51,,50)
/*
//SYSPRINT DD SYSOUT=*
//SYSUT1   DD *
Person 1                 307 C Meshel Hall        3.89
Second person            123 Williamson Hall      2.48
3rd person               321 Maag Library         1.52
/*
//SYSUT2   DD SYSOUT=*
//

IEBUPDTE

IEBUPDTE ("UPDaTE") incorporates changes to sequential or partitioned datasets. The UNIX "patch" utility is a similar program, but uses different input format markers (e..g, "./ INSERT ..." in MVS becomes "@@..." in Unix Patch). Some programmers pronounce it "I.E.B. up-ditty". The IEBUPDTE utililty is a utility used to maintain source libraries. Some of the functions that IEBUPDTE can perform include the following: - Creating and updating libraries - Modifying sequential data sets or PDS members - Changing the organization of a data set from sequential to partitioned or from partitioned to sequential. IEBUPDTE is commonly used to distribute source libraries from tape to DASD. IEBUPDTE uses the same job control statements required by most IEB-type utilities. The only exceptions are as follow: - IEBUPDTE accepts a PARM parameter coded on the EXEC statement. - IEBUPDTE reads the input data set from either the SYSUT1 DD statement or from the SYSIN DD statement. The job control used by IEUPDTE are as follows:

 //stepname EXEC PGM=IEUPDTE,PARM=parm 
 //SYSPRINT DD SYSOUT=class
 //SYSUT1   DD ...
 //SYSUT2   DD ...
 //SYSIN    DD ...

The EXEC statement specifies the program IEBUPDTE and an optional PARM value, NEW or MOD. A PARM value of NEW indicates that the utility control statements and the input data are contained in the SYSIN DD statement. In this case, no SYSIN1 DD statement is required. A PARM value of MOD indicates that the SYSIN DD statement contains only utility control statements, as opposed to utility control statements plus the input data. Therefore, the SYSUT1 DD statement is required to define the input data set.

Scheduler utilities

IEFBR14

IEFBR14 is a dummy program, normally inserted to JCL when the only desired action is allocation or deletion of datasets. An example of an IEFBR14 program:

//IEFBR14  JOB  ACCT,'DELETE DATASET'
//         EXEC PGM=IEFBR14
//DELDD    DD   DSN=xxxxx.yyyyy.zzzzz,
//              DISP=(MOD,DELETE,DELETE),UNIT=DASD

It consisted initially as a single instruction a "Branch to Register" 14. The mnemonic used in the IBM Assembler was BR and hence the name: IEF BR 14. The calling sequence for OS/360 contained the return address in Register 14. A branch to Register 14 would thus immediately exit the program. However, before and after executing this program, the operating system would allocate & deallocate datasets as specified in the DD statements, so it is commonly used as a quick way to set up or remove datasets. This single instruction program had an error in it. It didn't set the return code and hence a second instruction had to be added to clear the return code so that it would exit with the correct status. There was an additional error reported and fixed by IBM on this now two instruction program. This reported error was due to the IEFBR14 program not being link-edited as reentrant.

System utilities

IEHINITT

IEHINITT ("INITalize Tape") initializes tapes by writing tape labels. Multiple tapes may be labeled in one run of the utility. IBM standard or ASCII labels may be written. An example of an IEHINITT program:

//IEHINITT  JOB  ACCT,'LABEL TAPES',MSGCLASS=J,CLASS=A
//STEP0001 EXEC PGM=IEHINITT,REGION=8M                      
//SYSPRINT DD SYSOUT=A 
//LABEL DD DCB=DEN=2,UNIT=(3490,1,DEFER) 
//SYSIN DD * 
LABEL INITT SER=123450,NUMBTAPE=3 
/

This example will label 3 tapes on a 3490 magnetic tape unit. Each tape will receive an IBM standard label. The VOLSER will be incremented by one for each tape labeled. Each tape will be rewound and unloaded after being labeled.

IEHLIST

IEHLIST is a utility used to list entries in a Partitioned Dataset (PDS) directory or to list the contents of a Volume Table of Contents (VTOC). The IEHLIST utility is used to list the entries contained in any one of the following: - PDS directory - VTOC - Catalog (OS CVOL) An example of an IEHLIST program:

//IEHLIST  JOB  ACCT,'LIST PDS',MSGCLASS=J,CLASS=A
//STEP0001 EXEC PGM=IHLIST,REGION=8M                      
//SYSPRINT DD SYSOUT=A
//PDS1     DD DSN=xxxx.yyyy.zzzz,DISP=OLD
//SYSIN    DD *
  LISTPDS DSNAME=xxxx.yyyy.zzzz,FORMAT
/*

This job will produce a formatted listing of the PDS directory of the PDS named xxxx.yyyy.zzzz. An example of an IEHLIST program to list a VTOC is very similar:

//IEHLIST  JOB  ACCT,'LIST VTOC',MSGCLASS=J,CLASS=A
//STEP0001 EXEC PGM=IHLIST,REGION=8M                      
//SYSPRINT DD SYSOUT=A
//VOL1    DD VOL=SER=vvvvvv,DISP=OLD
//SYSIN   DD *
  LISTVTOC VOL=vvvvvv,FORMAT
/*

IEHMOVE

IEHMOVE moves or copies collections of data. (However, IBM does not recommend using the IEHMOVE utility in a DFSMS environment.) A move differs from a copy in that during a move the original data set is deleted, or scratched. Some of the tasks that IEHMOVE can perform include the following: - Moving or copying sequential and partitional data sets - Moving or copying multi- volume data sets - Moving an entire volume of data sets On the surface, IEHMOVE may seen redundant to the IEBGENER and IECOPY utilities. However, IEHMOVE is more powerful. The main advantage of using IEHMOVE is that you do not need to specify space or DCB information for the new data sets. This is because IEHMOVE allocates this information based on the existing data sets. Another advantage of IEHMOVE is that you can copy or move groups of data sets as well as entire volumes of data. Because of the ease in moving groups of data sets or volumes, the IEHMOVE utility is generally favored by system programmers. The job control statements required by the IEHMOVE utility are as follows:

//stepname EXEC PGM=IEHMOVE,PARM='LINECNT=xx,POWER=n'
//SYSPRINT DD  SYSOUT=class
//SYSUT1   DD  UNIT=aaaa,VOL=SER=bbbbbb,DISP=OLD
//anyname1 DD  UNIT=cccc,VOL=SER=dddddd,DISP=OLD
//anyname2 DD  UNIT=eeee,VOL=SER=ffffff,DISP=OLD
//SYSIN    DD  ...

Following the EXEC statement are the specific DD statements used by IEHMOVE. These statements must appear in every step that uses IEHMOVE. In addition, DD statements used by IEHMOVE can be listed in any order within the job step. The DD statements for IEHMOVE, order than SYSPRINT and SYSIN, refer to DASD or tape volumes instead of individual data sets. However, referencing volumes can pose a problem. Remember that when you modify a data set, you allocate it with a disposition of OLD (DISP=OLD) to prevent other users from accessing the data set at the same time. However, specifying DISP= OLD grants exclusive access to a volume. Therefore, when your IEHMOVE job runs, other users cannot use the volumes allocated by IEHMOVE. This is acceptable for private volumes, such as tape volumes or mountable volumes, but unacceptable public volumes, such as DASD volumes. The SYSPRINT DD statement specifies a message data set to which the output message generated from the utility, such as information and error messages, are sent. The SYSUT1 DD statement specifies a DASD volume where three work data set required by IEHMOVE are allocated. You must specify unit and volume information for this DD statement. IEHMOVE was one of the first systems to be developed in PL/S.

IEHPROGM

IEHPROGM builds and maintains system control data. It is also used for renaming and scratching (deleting) a data set. Some of the tasks that IEHPROGM can perform include the following: - Deleting (scratching) a data set or PDS member - Renaming a data set or PDS member - Cataloging or uncataloging a data set - Maintaining data set passwords

Supporting Programs

(The following programs are not technically utilities -- they are not supplied with the Operating System, but are sold as separate packages. Still, as they are standard items required for programming the computer, nearly all shops will have them installed.)

SORT

The Sort/Merge utility is program to sort records in a file into a specified order, or merge pre-sorted files. It is very frequently used; often the most commonly used application program in a mainframe shop. Modern sort/merge programs also can select or omit certain records, summarize records, remove duplicates, reformat records, and produce simple reports. Sort/merge is important enough that there are multiple companies each selling their own sort/merge package for IBM mainframes.

IGYCRCTL

IGYCRCTL is a COBOL compiler that prepares a COBOL source program for execution by producing a machine-language object module. Note that the object module produced by the compiler must be processed by the linkage editor, IEWL, before the compiled program is ready for execution. (This is the compiler for the current IBM Enterprise COBOL for z/OS product; there have been several previous IBM COBOL compilers over the years, with different names, as well as compilers for various other programming languages.)

DFSMS

DFSMS (System Managed Storage) is a set of programs that allows the operating system itself to take over many of the tasks of managing storage, tasks that were previously performed manually by systems programmers. The storage administrator defines classes of storage, and rules defining dataset assignment into these classes. From then on, the system manages the datasets automatically, taking care of assigning datasets to storage volumes, providing backup and recovery, migrating datasets up or down between secondary and tertiary storage as needed, and balancing usage of system resources. See also: hierarchical storage management.

External links

View More Summaries on IBM mainframe utility programs
 
Ask any question on IBM mainframe utility programs and get it answered FAST!
Answer questions in BookRags Q&A and earn points toward
discounted or even FREE Study Guides and other BookRags products!
Learn more about BookRags Q&A
Copyrights
IBM mainframe utility programs from Wíkipedia. ©2006 by Wíkipedia. Licensed under the GNU Free Documentation License. View a list of authors or edit this article.

Article Navigation
Join BookRagslearn moreJoin BookRags




About BookRags | Customer Service | Report an Error | Terms of Use | Privacy Policy