IBM メインフレーム ユーティリティプログラム

**IBM Mainframe Utility Programs**（IBMメインフレーム ユーティリティ・プログラム）は、IBMのメインフレーム用のユーティリティ・プログラム。ここではオペレーティングシステムのうちOS/360およびその後継であるMVSやz/OS用について記述する。

IBMはこれらのプログラムをユーティリティやサービスエイド(service aids)と呼ぶが、その相違は曖昧で、多くはユーティリティ・ソフトウェアと言える。

以下のプログラムは全てOS/360系であり、DOS/360系やTPF系やVM系は含んでいない。

## ICKDSF
ICKDSF はDASDをインストールしたり、初期化したり、保守するのに用いられる。オペレーティングシステムに繋いでいても、切り離されていても使用できる。

 サンプル (VTOCをデフォルトサイズで作成)
 //ICKDSF1 JOB (ICKDSF,,TEST),'DISK INIT',CLASS=A,MSGCLASS=A,
 //         MSGLEVEL=(1,1)
 //ICKDSF01 EXEC PGM=ICKDSF
 //SYSPRINT DD  SYSOUT=*
 //SYSIN    DD  *
   INIT UNIT(unitaddr) NOVERIFY VOLID(volume) VTOC(END)
 /*

## IDCAMS
IDCAMS は VSAM データセットを生成したり、変更を加えたりするのに用いる。

 サンプル(DB2の一時表領域の作成をしている)
 //WRKFILE EXEC PGM=IDCAMS
 //SYSPRINT DD SYSOUT=*   
 //SYSIN DD *             
  DEFINE  CLUSTER -
        ( NAME(DSNCAT.DSNDBC.WRKFILE.DSN4K01.I0001.A001) -
          LINEAR -
          REUSE -
          VOLUMES(volume)  -
          CYLINDERS(1000 50) -
          SHAREOPTIONS(3 3) ) -
     DATA -
        ( NAME(DSNCAT.DSNDBD.WRKFILE.DSN4K01.I0001.A001) ) - 
     CATALOG -
        ( DSNCAT )

## IEBCOMPR
IEBCOMPR は順次データセットまたは区分データセットを比較（コンペア）するのに用いる。

 サンプル(順編成ファイルの比較している)
  //STEP001  EXEC PGM=IEBCOMPR
  //SYSPRINT DD  SYSOUT=*
  //SYSUT1   DD  DISP=SHR,DSN=COMPARE.DATA
  //          UNIT=3390,VOL=SER=WRKVOL
  //SYSUT2   DD  DISP=SHR,DSN=TARGET.DATA
  //          UNIT=3390,VOL=SER=GYOVOL
  //SYSIN    DD  *
     COMPARE   TYPORG=PS
  /*

## IEBCOPY
IEBCOPY は区分データセットをコピー、圧縮（コンプレス）、合併（マージ）するのに用いられる。コピーする際、メンバーの選択 (select, exclude)、メンバー名の変更 (rename)、メンバーの置換 (replace) ができる。

 サンプル(メンバーコピー)
  //STEP01   EXEC PGM=IEBCOPY,REGION=4M
  //SYSPRINT DD SYSOUT=*
  //SYSUT3   DD SPACE=(CYL,400),UNIT=SYSDA
  //SYSUT4   DD SPACE=(CYL,400),UNIT=SYSDA
  //I1       DD DISP=SHR,DSN=USER.LIBRARY1
  //O1       DD DISP=SHR,DSN=USER.LIBRARY2
  //SYSIN    DD *
    COPY I=I1,O=O1
      S M=(PGM001)
  /*

## IEBDG
IEBDG ('Data Generator') は、パターン化されたデータから成るテストデータセットを作成する。

## IEBEDIT
IEBEDIT は、JCL の一部分をコピーする。

## IEBGENER
IEBGENER は、順次データセットのレコードをコピーする。あるいは、区分データセットに格納する。

 サンプル(順次データのコピー)
  //STEP01   EXEC PGM=IEBGENER,REGION=4M
  //SYSPRINT DD SYSOUT=*
  //SYSUT1   DD DISP=SHR,DSN=USER.SEQDETA1
  //SYSUT2   DD DSN=USER.SEQDATA2,
  //          DISP=(NEW,KEEP,DELETE),UNIT=3390,VOL=SER=volume,
  //          SPACE=(TRK,(850,100),RLSE)
  //SYSIN    DD DUMMY

## IEBIMAGE
IEBIMAGE は IBM 3800 プリントサブシステムのロードモジュールを扱う。

## IEBISAM
IEBISAM は ISAM データセットの印刷やデータのロード、アンロードを行う。

## IEBPTPCH
IEBPTPCH は順次データセットまたは区分データセットを印刷、またはパンチする。

## IEFBR14
IEFBR14 はダミープログラムで、通常はデータセットのアロケーション（作成）やデリート（削除）に使用する。IEFBR14 は最初、機械語の命令の1つ "Branch to Register" 14 のみで出来ていた。IBMのアセンブリ言語では記憶するのに BR 命令を使用した。そこから、IEF BR 14 の名が付いた。この命令が1つだけのプログラムは、エラーを内包する。それはリターンコードをセットしない、というものだ。そこで、リターンコードをクリアするために2つめの命令が付け加えられた。現在では、正しいステータスとともに終了する。

## IEBUPDTE
IEBUPDTE は順次データセットと区分データセットの変換を実施する。

## IEHINITT
IEHINITT ('INIT Tape') は、ラベルを書き込むことによってテープを初期化する。

## IEHLIST
IEHLIST はデータセットのリストを取る。

## IEHMOVE
IEHMOVE は、データの集まりを移動したりコピーしたりするのに用いる。

## IEHPROGM
IEHPROGM はシステム制御データを作成したり (build) 保守したりするのに用いる。また、データセットを消したり (scratch) 、名前を変更する (rename) のに用いられる。

## 脚注

## 関連項目
*Job Control Language
*Multiple Virtual Storage
*データセット (IBMメインフレーム)