IBM mainframe utility programs
Encyclopedia
IBM mainframe utility programs are supplied with IBM
mainframe
operating system
s such as MVS
to carry out various tasks associated with datasets
, etc.
, and then modified or extended by IBM from versions originally written by a user.
These utilities are usually invoked via Job Control Language
(JCL). They tend to use common JCL DD identifiers for their data sets:
. 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.
Example:
In the example above, SYSIN control cards are coming from an in-stream file, but you can instead point to any sequential file or a PDS member containing control cards, if you wish.
Example of using SYSIN files would be something like this:
or this:
s.
The IEBCOMPR utility is used to compare two sequential or partitioned datasets. 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:
When comparing sequential data sets, IEBCOMPR considers the data sets equal if the following conditions are met:
For partitioned data sets, IEBCOMPR considers the data sets equal if the following conditions are met:
If ten unequal comparisons are encountered during processing, IECOMPR terminates with the appropriate message.
Note: IEBCOMPR is not a very flexible or user-friendly compare program. It can't restrict the comparison to only certain columns, it can't ignore differences in white space, it doesn't tell you where in the record the difference occurs, and it halts after 10 differences. On the other hand, it is fast, and it is present on all IBM mainframes. So it is very useful in comparing load modules, or checking that a copy worked properly. For comparisons of programs or reports, the ISPF
SuperC (ISRSUPC) compare program is often used instead.
s. 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:
The IEBCOPY utility differs from the other IEB-type utilities in that the DDNAMEs of the input and output DD statements are defined in the user commands as opposed to using the standard SYSUT1 and SYSUT2 DDNAMEs. For the IEBCOPY utility
, the required job control statements are as follows:
The MYDD1 and MYDD2 DD statements are names chosen by the user for the partitioned input and output data sets, respectively. You can use any valid DDNAME for these two DD statements. These DDNAMEs are specified in the utility control statements to tell IEBCOPY the name of the input and output data sets.
An example of an IEBEDIT program:
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.
The syntax of the EDIT statement is:
Default: If START is omitted and only one EDIT statement is provided, the first job encountered in the input data set is processed. If START is omitted from an EDIT statement other than the first statement, processing continues with the next JOB statement found in the input data set.
When coded with TYPE=POSITION, STEPNAME specifies the first job step to be placed in the output data set. Job steps preceding this step are not copied to the output data set.
When coded with TYPE=INCLUDE or TYPE=EXCLUDE, STEPNAME specifies the names of job steps that are to be included in or excluded from the operation. For example, STEPNAME=(STEPA,STEPF-STEPL,STEPZ) indicates that job steps STEPA, STEPF through STEPL, and STEPZ are to be included in or excluded from the operation.
If STEPNAME is omitted, the entire input job whose name is specified on the EDIT statement is copied. If no job name is specified, the first job encountered is processed.
Default: The resultant output is listed in the message data set.
See here for more info.: http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/dgt1u104/5.2.2?SHELF=&DT=19990113105507&CASE=
Some of the tasks that IEBGENER can perform include the following:
An example of an IEBGENER program to copy one dataset to another:
For straight copy tasks, the sort
program can often do these faster than IEBGENER. Thus many mainframe shops make use of an option that automatically routes such tasks to the sort ICEGENER program instead of IEBGENER.
On some systems it is possible to send email
from a batch job by directing the output to the "
It is also possible to attach files while sending the mails from Mainframe.
datasets. This is largely obsolete — ISAM has been replaced by VSAM on most modern operating systems, so the IDCAMS utility is used instead of this.
Some of the tasks that IEBPTPCH can perform include the following:
Empty dataset check: If dataset to be checked is empty then RC=4 else 0.
Some programmers pronounce it "I.E.B. up-ditty".
The IEBUPDTE utility is used to maintain source libraries.
Some of the functions that IEBUPDTE can perform include the following:
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:
The job control used by IEUPDTE are as follows:
is a dummy program, normally inserted to JCL when the only desired action is allocation or deletion of datasets.
An example of an IEFBR14
step:
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.
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. IEF is, of course, the "prefix" of OS/360's "job management" subsystem.
This single instruction program had an error in it — it didn't set the return code. 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 error was due to the IEFBR14 program not being link-edited as reenterable (simultaneously usable by more than one caller).
Some hackers have taken IEFBR14 and changed the BR 14 instruction to BR 15, thereby creating "the shortest loop in the world", as register 15 contains the address of the IEFBR14 module itself, and a BR 15 instruction would simply re-invoke the module, forever.
.
labels may be written.
An example of an IEHINITT program:
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.
).
The IEHLIST utility is used to list the entries contained in any one of the following:
An example of an IEHLIST program:
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:
) environments are now common, and IBM does not recommend using the IEHMOVE utility in those. 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:
On the surface, IEHMOVE may seen redundant
to the IEBGENER and IEBCOPY 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 programmer
s.
A sample IEHMOVE job:
The DD statements for IEHMOVE, other than SYSPRINT and SYSIN, refer to DASD or tape volumes instead of individual data set
s. However, referencing volumes can pose a problem, since specifying DISP=OLD gains exclusive access to a volume. Therefore, while your IEHMOVE job runs, that entire volume (and all datasets on it) is unavailable to other users. This is acceptable for private volumes, such as tape
volumes or mountable volumes, but unacceptable public volumes, such as DASD volumes.
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.
Some of the tasks that IEHPROGM can perform include the following:
For cataloging:
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.
used in a computer shop will have an associated compiler
that translates a source program into a machine-language object module. Then the object module from the compiler must be processed by the linkage editor, IEWL, to create an executable load module.
IGYCRCTL is a common example of a compiler; it 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.) There are many other compilers for various other programming languages.
IBM
International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...
mainframe
Mainframe computer
Mainframes are powerful computers used primarily by corporate and governmental organizations for critical applications, bulk data processing such as census, industry and consumer statistics, enterprise resource planning, and financial transaction processing.The term originally referred to the...
operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
s such as MVS
MVS
Multiple Virtual Storage, more commonly called MVS, was the most commonly used operating system on the System/370 and System/390 IBM mainframe computers...
to carry out various tasks associated with datasets
Data set (IBM mainframe)
data set , dataset , is a computer file having a record organization. The term pertains to the IBM mainframe operating system line, starting with OS/360, and is still used by its successors, including the current z/OS. Those systems historically preferred this term over a file...
, etc.
History/Common JCL
Many of these utilities were designed by IBM users, through the group SHARESHARE (computing)
SHARE Inc. is a volunteer-run user group for IBM mainframe computers that was founded in 1955 by Los Angeles-area IBM 701 users. It evolved into a forum for exchanging technical information about programming languages, operating systems, database systems, and user experiences for enterprise users...
, and then modified or extended by IBM from versions originally written by a user.
These utilities are usually invoked via Job Control Language
Job Control Language
Job Control Language is a scripting language used on IBM mainframe operating systems to instruct the system on how to run a batch job or start a subsystem....
(JCL). They tend to use common JCL DD identifiers for their data sets:
- SYSIN — input file for the 'commands' for the utility. Often set to DUMMY if the default action is desired.
- SYSUT1 — input file.
- SYSUT2 — output file.
- SYSUT3 — work (spill) file for input (SYSUT1) (often not used).
- SYSUT4 — work (spill) file for output (SYSUT2) (often not used).
- SYSPRINT — output file for printed output from the utility.
- SYSOUT — output file for messages from the utility.
- SYSUDUMP — output file for a system 'dump' if the program fails.
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/VSOS/VS1
Operating System/Virtual Storage 1, or OS/VS1,was an IBM mainframe computer operating system designed to be run on IBM System/370 hardware....
. 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.
Example:
In the example above, SYSIN control cards are coming from an in-stream file, but you can instead point to any sequential file or a PDS member containing control cards, if you wish.
Example of using SYSIN files would be something like this:
or this:
IEBCOMPR
IEBCOMPR compares records in sequential or partitioned data setData set (IBM mainframe)
data set , dataset , is a computer file having a record organization. The term pertains to the IBM mainframe operating system line, starting with OS/360, and is still used by its successors, including the current z/OS. Those systems historically preferred this term over a file...
s.
The IEBCOMPR utility is used to compare two sequential or partitioned datasets. 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.
Note: IEBCOMPR is not a very flexible or user-friendly compare program. It can't restrict the comparison to only certain columns, it can't ignore differences in white space, it doesn't tell you where in the record the difference occurs, and it halts after 10 differences. On the other hand, it is fast, and it is present on all IBM mainframes. So it is very useful in comparing load modules, or checking that a copy worked properly. For comparisons of programs or reports, the ISPF
ISPF
In computing, Interactive System Productivity Facility is a software product for the z/OS operating system that runs on IBM mainframes...
SuperC (ISRSUPC) compare program is often used instead.
IEBCOPY
IEBCOPY copies, compresses and merges partitioned data setData set (IBM mainframe)
data set , dataset , is a computer file having a record organization. The term pertains to the IBM mainframe operating system line, starting with OS/360, and is still used by its successors, including the current z/OS. Those systems historically preferred this term over a file...
s. 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 modules.
The IEBCOPY utility differs from the other IEB-type utilities in that the DDNAMEs of the input and output DD statements are defined in the user commands as opposed to using the standard SYSUT1 and SYSUT2 DDNAMEs. For the IEBCOPY utility
Utility
In economics, utility is a measure of customer satisfaction, referring to the total satisfaction received by a consumer from consuming a good or service....
, the required job control statements are as follows:
The MYDD1 and MYDD2 DD statements are names chosen by the user for the partitioned input and output data sets, respectively. You can use any valid DDNAME for these two DD statements. These DDNAMEs are specified in the utility control statements to tell IEBCOPY the name of the input and output data sets.
IEBEDIT
IEBEDIT selectively copies portions of JCL.An example of an IEBEDIT program:
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.
The syntax of the EDIT statement is:
START=jobname
specifies the name of the input job to which the EDIT statement applies. Each EDIT statement must apply to a separate job. If START is specified without TYPE and STEPNAME, the JOB statement and all job steps for the specified job are included in the output.Default: If START is omitted and only one EDIT statement is provided, the first job encountered in the input data set is processed. If START is omitted from an EDIT statement other than the first statement, processing continues with the next JOB statement found in the input data set.
TYPE={POSITION|INCLUDE|EXCLUDE}
specifies the contents of the output data set. These values can be coded:POSITION
specifies that the output is to consist of a JOB statement, the job step specified in the STEPNAME parameter, and all steps that follow that job step. All job steps preceding the specified step are omitted from the operation. POSITION is the default.INCLUDE
specifies that the output data set is to contain a JOB statement and all job steps specified in the STEPNAME parameter.EXCLUDE
specifies that the output data set is to contain a JOB statement and all job steps belonging to the job except those steps specified in the STEPNAME parameter.STEPNAME=(namelist)
specifies the names of the job steps that you want to process.namelist
can be a single job step name, a list of step names separated by commas, or a sequential range of steps separated by a hyphen (for example, STEPA-STEPE). Any combination of these may be used in one namelist. If more than one step name is specified, the entire namelist must be enclosed in parentheses.When coded with TYPE=POSITION, STEPNAME specifies the first job step to be placed in the output data set. Job steps preceding this step are not copied to the output data set.
When coded with TYPE=INCLUDE or TYPE=EXCLUDE, STEPNAME specifies the names of job steps that are to be included in or excluded from the operation. For example, STEPNAME=(STEPA,STEPF-STEPL,STEPZ) indicates that job steps STEPA, STEPF through STEPL, and STEPZ are to be included in or excluded from the operation.
If STEPNAME is omitted, the entire input job whose name is specified on the EDIT statement is copied. If no job name is specified, the first job encountered is processed.
NOPRINT
specifies that the message data set is not to include a listing of the output data set.Default: The resultant output is listed in the message data set.
See here for more info.: http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/BOOKS/dgt1u104/5.2.2?SHELF=&DT=19990113105507&CASE=
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 setData set (IBM mainframe)data set , dataset , is a computer file having a record organization. The term pertains to the IBM mainframe operating system line, starting with OS/360, and is still used by its successors, including the current z/OS. Those systems historically preferred this term over a file...
or a member of a PDSData set (IBM mainframe)data set , dataset , is a computer file having a record organization. The term pertains to the IBM mainframe operating system line, starting with OS/360, and is still used by its successors, including the current z/OS. Those systems historically preferred this term over a file...
. - Changing the physical block sizeBlock sizeBlock size can refer to:*Block , the size of a block in data storage and file systems.*Block size , the minimal unit of data for block ciphers.*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:
For straight copy tasks, the sort
Mainframe sort merge
The Sort/Merge utility is a mainframe program to sort records in a file into a specified order, merge pre-sorted files into a sorted file, or copy selected records...
program can often do these faster than IEBGENER. Thus many mainframe shops make use of an option that automatically routes such tasks to the sort ICEGENER program instead of IEBGENER.
On some systems it is possible to send email
Email
Electronic mail, commonly known as email or e-mail, is a method of exchanging digital messages from an author to one or more recipients. Modern email operates across the Internet or other computer networks. Some early email systems required that the author and the recipient both be online at the...
from a batch job by directing the output to the "
SMTP
" external writer. On such systems, the technique is as follows:It is also possible to attach files while sending the mails from Mainframe.
IEBIMAGE
IEBIMAGE manipulates several types of definitions (AKA images) for the IBM 3800 printing subsystem and the IBM 4248 printer. Common uses are for forms control buffers (FCB's), character arrangement tables, character definitions and images of forms to be printed on the output along with the text, for company logos to be printed on the page, or just to print 'graybar' pages (alternating gray & white horizontal backgrounds, to match the previous greenbar paper). With this utility, many different forms or logos could be stored as images, and printed when needed, all using the same standard blank paper, thus eliminating the need to stock many preprinted forms, and the need for operators to stop the printer and change paper.IEBISAM
IEBISAM unloads, loads, copies and prints ISAMISAM
ISAM stands for Indexed Sequential Access Method, a method for indexing data for fast retrieval. ISAM was originally developed by IBM for mainframe computers...
datasets. This is largely obsolete — ISAM has been replaced by VSAM on most modern operating systems, so the IDCAMS utility is used instead of this.
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 setData set (IBM mainframe)data set , dataset , is a computer file having a record organization. The term pertains to the IBM mainframe operating system line, starting with OS/360, and is still used by its successors, including the current z/OS. Those systems historically preferred this term over a file...
, 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.
- Check for empty dataset
Empty dataset check: If dataset to be checked is empty then RC=4 else 0.
IEBUPDTE
IEBUPDTE ("UPDaTE") incorporates changes to sequential or partitioned datasets. The UNIXpatchPatch (Unix)patch is a Unix program that updates text files according to instructions contained in a separate file, called a patch file. The patch file is a text file that consists of a list of differences and is produced by running the related diff program with the original and updated file as arguments...
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 utility is used to maintain source libraries.
Some of the functions that IEBUPDTE can perform include the following:
- Creating and updating librariesData set (IBM mainframe)data set , dataset , is a computer file having a record organization. The term pertains to the IBM mainframe operating system line, starting with OS/360, and is still used by its successors, including the current z/OS. Those systems historically preferred this term over a file...
- 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
Direct access storage device
In mainframe computers and some minicomputers, a direct access storage device, or DASD , is any secondary storage device which has relatively low access time relative to its capacity....
.
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, NEW or MOD. NEW indicates that the utility control statements and the input data are contained in the SYSIN DD statement, so no SYSUT1 DD statement is needed. MOD indicates that the SYSIN DD statement contains only utility control statements, without input data. Therefore, the SYSUT1 DD statement is required to define the input data set.
- 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:
IEFBR14
IEFBR14IEFBR14
IEFBR14 is an IBM mainframe utility program. It runs in all IBM mainframe environments derived from OS/360, including z/OS. It is a placeholder whose purpose is to do nothing...
is a dummy program, normally inserted to JCL when the only desired action is allocation or deletion of datasets.
An example of an IEFBR14
IEFBR14
IEFBR14 is an IBM mainframe utility program. It runs in all IBM mainframe environments derived from OS/360, including z/OS. It is a placeholder whose purpose is to do nothing...
step:
The calling sequence for OS/360 contained the return address
Return address
In postal mail, a return address is an explicit inclusion of the address of the person sending the message. It provides the recipient with a means to determine how to respond to the sender of the message if needed....
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.
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. IEF is, of course, the "prefix" of OS/360's "job management" subsystem.
This single instruction program had an error in it — it didn't set the return code. 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 error was due to the IEFBR14 program not being link-edited as reenterable (simultaneously usable by more than one caller).
Some hackers have taken IEFBR14 and changed the BR 14 instruction to BR 15, thereby creating "the shortest loop in the world", as register 15 contains the address of the IEFBR14 module itself, and a BR 15 instruction would simply re-invoke the module, forever.
System utilities
These utilities are normally used by systems programmers in maintaining the operation of the system, rather than by programmers in doing application work on the system.ICKDSF
ICKDSF ("Device Support Facility") installs, initializes and maintains DASD, either under an operating system, or standaloneStandalone
A standalone entity is something that has no dependencies; it can "stand alone". Standalone may also refer to the following topics:*Standalone software*the standalone attribute in XML*a standalone expansion pack for games...
.
IEHDASDR
IEHDASDR (“Direct Access Storage Dump and Restore”), an older program not found in the current z/OS manuals, dumps datasets from disk to a printer or backup and restores them from backups.IEHINITT
IEHINITT ("INITalize Tape") initializes tapes by writing tape labels. Multiple tapes may be labeled in one run of the utility. IBM standard or ASCIIASCII
The American Standard Code for Information Interchange is a character-encoding scheme based on the ordering of the English alphabet. ASCII codes represent text in computers, communications equipment, and other devices that use text...
labels may be written.
An example of an IEHINITT program:
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 (VTOCVTOC
In the IBM mainframe storage architecture, Volume Table Of Contents, or VTOC, is a data structure, that provides a way of locating the data sets that reside on a particular disk volume. It can reside within the first 64K tracks on the volume, and lists the names of each data set on the volume as...
).
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:
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:
IEHMOVE
IEHMOVE moves or copies collections of data. However, DFSMS (System Managed StorageHierarchical storage management
Hierarchical storage management is a data storage technique which automatically moves data between high-cost and low-cost storage media. HSM systems exist because high-speed storage devices, such as hard disk drive arrays, are more expensive than slower devices, such as optical discs and magnetic...
) environments are now common, and IBM does not recommend using the IEHMOVE utility in those. 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
Redundant code
Redundant code is a computer programming term for code, which may be source code or compiled code in a computer program, that has any form of redundancy, such as recomputing a value that has previously been calculated and is still available, code that is never executed , or code which is executed...
to the IEBGENER and IEBCOPY utilities. However, IEHMOVE is more powerful. The main advantage of using IEHMOVE is that you do not need to specify space
Space
Space is the boundless, three-dimensional extent in which objects and events occur and have relative position and direction. Physical space is often conceived in three linear dimensions, although modern physicists usually consider it, with time, to be part of a boundless four-dimensional continuum...
or DCB
Data Control Block
In IBM mainframe operating systems, such as OS/360, MVS, z/OS, a Data Control Block is a description of a dataset in a program. A DCB is coded in Assembler programs using the DCB macro instruction...
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 programmer
Programmer
A programmer, computer programmer or coder is someone who writes computer software. The term computer programmer can refer to a specialist in one area of computer programming or to a generalist who writes code for many kinds of software. One who practices or professes a formal approach to...
s.
A sample IEHMOVE job:
The DD statements for IEHMOVE, other than SYSPRINT and SYSIN, refer to DASD or tape volumes instead of individual data set
Data set (IBM mainframe)
data set , dataset , is a computer file having a record organization. The term pertains to the IBM mainframe operating system line, starting with OS/360, and is still used by its successors, including the current z/OS. Those systems historically preferred this term over a file...
s. However, referencing volumes can pose a problem, since specifying DISP=OLD gains exclusive access to a volume. Therefore, while your IEHMOVE job runs, that entire volume (and all datasets on it) is unavailable to other users. This is acceptable for private volumes, such as tape
Compact Cassette
The Compact Cassette, often referred to as audio cassette, cassette tape, cassette, or simply tape, is a magnetic tape sound recording format. It was designed originally for dictation, but improvements in fidelity led the Compact Cassette to supplant the Stereo 8-track cartridge and reel-to-reel...
volumes or mountable volumes, but unacceptable public volumes, such as DASD volumes.
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
- CatalogingCatalogingCataloging is the process of listing or include something in a catalog. In library science is is the producing of bibliographical descriptions of books or other kinds of documents...
or uncataloging a data set - Maintaining data set passwordPasswordA password is a secret word or string of characters that is used for authentication, to prove identity or gain access to a resource . The password should be kept secret from those not allowed access....
s
For cataloging:
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/MergeMainframe sort merge
The Sort/Merge utility is a mainframe program to sort records in a file into a specified order, merge pre-sorted files into a sorted file, or copy selected records...
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.
Compilers/Linker
Each programming languageProgramming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....
used in a computer shop will have an associated compiler
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...
that translates a source program into a machine-language object module. Then the object module from the compiler must be processed by the linkage editor, IEWL, to create an executable load module.
IGYCRCTL is a common example of a compiler; it is the compiler for the current IBM Enterprise COBOL
COBOL
COBOL is one of the oldest programming languages. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments....
for z/OS product. (There have been several previous IBM COBOL compilers over the years, with different names.) There are many other compilers for various other programming languages.