IBM 메인프레임 유틸리티 프로그램

IBM 메인프레임 유틸리티 프로그램은 MVS와 같은 IBM 메인프레임 운영 체제에 공급되는 유틸리티 소프트웨어로서, 데이터셋 등에 관련한 다양한 작업을 수행한다.
다음의 목록은 OS/360 이후 세대에 배포된 유틸리티를 기술한다. VSE나 VM 유틸리티는 포함되지 않는다.

IDCAMS

IDCAMS ("Access Method Services")는 가상 기억 접근 방식(VSAM)과 VSAM이 아닌 데이터셋을 만들고 수정한다. IDCAMS는 OS/VS의 VSAM과 함께 도입되었다. "접근 방식" 참조는 "VSAM이 다른 모든 접근 방식을 대체한다"는 OS/VS의 마인드에서 비롯된다. IDCAMS는 VSAM과 비VSAM 파일 모두를 위해 수많은 기능을 수행하는 것으로 간주된다.
예:
//XXXXXXXW JOB  XXXXXXX,AAAA,CLASS=G,MSGCLASS=1,NOTIFY=&SYSUID//STEP001  EXEC PGM=IDCAMS//SYSIN    DD *   REPRO INFILE(FILE01) OUTFILE(FILE02)/*//FILE01   DD DSN=PROD.FILE1.INPUT,disp=shr   .....//FILE02   DD DSN=PROD.FILE2.OUTPUT,//            DISP=(NEW,CATLG,DELETE),//            UNIT=DASD,//            SPACE=(TRK,(100,10),RLSE),//            DCB=(RECFM=FB,BLKSIZE=0,LRECL=80)//SYSPRINT DD SYSOUT=*//SYSOUT   DD SYSOUT=*//SYSUDUMP DD SYSOUT=*//*
위의 예에서 SYSIN 컨트롤 카드들은 인스트림 파일에서 가져오지만, 사용자가 원하는 경우 순차 파일이나 PDS 멤버, 또는 임시 데이터셋을 가리키게 할 수도 있다. SYSIN 파일의 사용 예는 다음과 같다:
//SYSIN    DD DSN=PROD.MYFILE.REPRO,DISP=SHR
다음과 같이 할 수도 있다:
//SYSIN    DD DSN=PROD.MYLIB.CNTLLIB(REPRO),//            DISP=SHR

IEBCOPY

IEBCOPY는 파티션된 데이터셋을 복사, 압축, 병합한다. 또, 복사 작업 도중 지정된 멤버를 선택, 제외시킬 수 있으며, 멤버를 대체하거나 멤버 이름을 바꿀 수 있다.
IBECOPY 유틸리티의 경우, 복사에 필요한 JCL 문은 다음과 같다:
//stepname EXEC PGM=IEBCOPY//SYSPRINT DD SYSOUT=class//MYDD1    DD DSN=xxxx.ppp.psps,DISP=SHR//MYDD2    DD DSN=xxxx.ppp.pssp,DISP=SHR//SYSIN    DD *    COPY INDD=MYDD1,OUTDD=MYDD2       SELECT MEMBER=(MEM1,MEM2,MEM3)/ EXCLUDE MEMBER=(SF,DF,SA)

IEBDG

IEBDG('Data Generator')는 패턴화된 데이터를 이루는 테스트 데이터셋을 만든다.

IEBEDIT

IEBEDIT는 JCL의 일부를 선택적으로 복사한다.
IEBEDIT 프로그램의 예는 다음과 같다:
//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)/*//

IEBGENER

IEBGENER는 순차 데이터셋으로부터 레코드를 복사하거나 파티션된 데이터셋을 만든다.
IEBGENER 프로그램을 사용하여 데이터셋을 다른 것으로 복사하는 예이다:
//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),//            UNIT=SYSDA,SPACE=(TRK,(5,5),RLSE),//            DCB=(RECFM=FB,LRECL=1440)//SYSPRINT DD SYSOUT=*//SYSIN    DD DUMMY

IEBIMAGE

IEBIMAGE는 IBM 3800 레이저 인쇄 하위 시스템과 IBM 4248 프린터를 위한 여러 종류의 정의들(이미지)을 조작한다. 일반적으로는 FCB(forms control buffer), 문자 정렬표, 문자 정의, 폼의 이미지가 텍스트와 나란히 출력물에 인쇄한다든지, 회사 로고를 문서에 인쇄한다든지, 단순히 그레이바 페이지를 인쇄하는 목적으로 사용된다. 이 유틸리티를 사용하여 다른 수많은 형태의 로고들을 그림으로 저장할 수 있고 필요하면 인쇄할 수도 있으며 모두 동일한 표준 블랙 페이퍼를 사용하므로 미리 인쇄된 수많은 폼을 쌓아둘 필요가 없고 조작자가 프린터들 중단하고 용지를 교환할 필요도 없다.

IEBISAM

IEBISAM은 ISAM 데이터셋의 적재를 해제하거나 적재하고, 복사하고 인쇄한다. ISAM은 현대의 대부분의 운영 체제에서 VSAM으로 대체되었기 때문에 흔히 사용되지 않는다. VSAM 파일들은 IEBISAM 대신 IDCAMS 유틸리티를 사용한다.

IEBPTPCH

IEBPTPCH ("PrinT and PunCH")는 순차 또는 파티션된 데이터셋으로부터의 레코드를 출력하거나 천공한다.
//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.89Second person            123 Williamson Hall      2.483rd person               321 Maag Library         1.52/*//SYSUT2   DD SYSOUT=*//
비어있는 데이터셋 확인: 데이터셋이 비어있는 것으로 확인되면 RC=4를, 그렇지 않으면 0을 반환한다.
//IEBPTPCH JOB//         EXEC PGM=IEBPTPCH//SYSUT1   DD DSN=<filename>,DISP=SHR//SYSUT2   DD DUMMY,//         DCB=(BLKSIZE=<block size>,RECFM=FA)//SYSIN    DD * PRINT TYPORG=PS/*//SYSPRINT DD SYSOUT=*//

IEBUPDTE

IEUPDTE는 순차 또는 파티션된 데이터셋의 변경 사항들을 통합한다. UNIX의 patch 유틸리티와 비슷하지만 상이한 입력 포맷 마커를 사용한다. (예: MVS의 "./ INSERT ..."는 유닉스 Patch의 "@@..." 가 된다.)
IEUPDTE에 쓰이는 작업 제어는 다음과 같다:
//stepname EXEC PGM=IEUPDTE,PARM=NEW//SYSPRINT DD SYSOUT=class//SYSUT1   DD ...//SYSUT2   DD ...//SYSIN    DD ...

IEFBR14

IEFBR14는 데이터셋의 할당이나 삭제만 취할 경우 JCL에 흔히 추가하는 더미 프로그램이다.
IEFBR14의 스텝의 예는 다음과 같다:
//IEFBR14  JOB  ACCT,'DELETE DATASET'//STEP01   EXEC PGM=IEFBR14//DELDD    DD DSN=xxxxx.yyyyy.zzzzz,//            DISP=(MOD,DELETE,DELETE),UNIT=DASD