JCLってなに?
JCL(Job Control Language)は、IBMメインフレームでバッチ処理を実行するための制御言語です。
たとえば「どのプログラムをどう実行するか」「どのデータを使うか」などを指示します。
JCLの基本構成
JCLは主に以下の3つで構成されます:
ステートメント | 役割 |
---|---|
JOB | ジョブ全体の定義 |
EXEC | 実行するプログラムの指定 |
DD | ファイルやライブラリの指定 |
JOB文のパラメータ解説
以下はJOB文の一例です:
//COPY JOB CLASS=A,MSGCLASS=H,REGION=4M,NOTIFY=&SYSUID
各パラメータの意味は以下のとおりです:
パラメータ | 意味 |
---|---|
CLASS=A | ジョブの優先度や実行キューを指定(Aは通常の優先度) |
MSGCLASS=H | ジョブの出力ログの出力先(Hはスプールにログを保存し表示可能) |
REGION=4M | 使用するメモリ量(この例では4MB) |
NOTIFY=&SYSUID | ジョブ完了時に通知されるユーザーID(&SYSUIDは実行者のIDに置換される) |
例:ライブラリコピーのJCL
//COPY JOB CLASS=A,MSGCLASS=H,NOTIFY=&SYSUID
//STEP01 EXEC PGM=IEBCOPY
//IND01 DD DISP=SHR,DSN=MODEL.LOAD
//OUTD01 DD DISP=SHR,DSN=TEST.LOAD
//SYSIN DD *
COPY OUTDD=OUTD01,INDD=((IND01,R))
/*
このJCLは、IEBCOPYユーティリティを使って、LOADモジュールを別のライブラリにコピーします。
ポイント:
・EXEC PGM=IEBCOPY:コピー専用のユーティリティを実行
・DD文でコピー元(IND01)とコピー先(OUTD01)を指定
・SYSINで具体的なコピー指示(COPY命令)を記述
まとめ
・ JCLはメインフレーム上で処理を動かすための「指示書」
・基本の3文(JOB/EXEC/DD)を覚えよう
・IEBCOPYのようなユーティリティを使うと実用的な処理が書ける