BUCHI'S HOME PAGE


JCL@

いよいよ本職の言語に入ります。はっきり言ってこういう仕事の中でも、
かなり限られた部分で使用しているものなので、普通に生活する上では
まずお目にかかる事はないでしょう(笑)実際自分もこの仕事について
はじめてみたし、見た瞬間に固まるほどわけわかりませんでした・・・
それぐらいなじみの薄い言語だと思いますが・・・マニアックなあなたはきっと見てくれるでしょう(笑) 

サンプル

JCLとはホスト(汎用機)のOSに対してジョブを引き渡す、実行するべき プログラムを指定する、データセットに対する資源の割り当ての要求、などOSに何をして欲しいかを 知らせるための言語です。まず、ごちゃごちゃ説明するよりサンプル見てもらったほうが早いと思うので サンプルを書きます。一般的(基本的)なJCLを記述します。


//JCL001 JOB J001,'J/BUCHI',CLASS=J,MSGCLASS=J,MSGLEVEL(1,0)
//***********************************************************
//*      PGM      STEP01                                    *
//***********************************************************
//STEP01  EXEC PGM=STEP01
//STEPLIB   DD DSN=PGM.LINKLIB,DISP=SHR
//SYSOUT   DD  SYSOUT=*
//SYSPRINT DD  SYSOUT=*
//SYSDBOUT DD  SYSOUT=*
//GAT002O  DD  DSN=GA.GAT002P,DISP=(,CATLG),
//             UNIT=SYSDA,SPACE=(TRK,(1500,450),RLSE),
//             DCB=(RECFM=FB,LRECL=120,BLKSIZE=0)
//GBT001I  DD  DSN=GA.GAT001P,DISP=SHR
/*
//

ステートメント

JCL先頭2桁(または3桁)には通常ステートメントが表示されます。

@// ・・・空白ステートメント
ジョブの終わりの指定

A/* ・・・区切りステートメント
入力ジョブストリーム(ジョブの流れ)内のデータの終わりを指定する

B//* ・・・コメント
JCLの文書化の助けとして使用。4〜80桁目に注釈を入れることができる。

※ジョブ・・・コンピュータに与える仕事の単位。通常1つのジョブは複数のジョブステップ(プログラム) から構成される。


JOB文

まずサンプルの頭の一行をJOB文もしくはジョブステートメントと呼びます。 JOB文は以下の形式で記述され、OSにジョブの開始を知らせ、必要な会計情報 を指示し、ジョブを実行するために必要なパラメータを与えます。


123                       80(桁)
//ジョブ名 JOB オペランド 注釈

ジョブ名・・・英数字または各国文字1〜8文字。最初の文字は必ず英字または 各国文字を使用し、3行目から始まる。

オペランド・・・システムに種々の情報を与える。ジョブクラス、ジョブの優先順位等。

オペランド欄に記述されるパラメータには代表的なもので以下のものがあります。

(1)定位置パラメータ
・会計情報・・・業務識別名等の情報
・プログラマ名・・・使用する場合は会計情報の直後に指定し20文字以内。
※定位置パラメータは任意選択であり、指定する場合は以下のように指定

//JCL001 JOB SIKIBETUMEI,'PUROGURAMAMEI',・・・
(2)キーワード・パラメータ・・・定位置パラメータの後ろに、任意の順序で記述

@MSGLEVEL=(JCL,割り振り)・・・JOB出力リストの一部としてどのようなメッセージ出力を書き出すかを指示

・割り振りメッセージ・・・OSがジョブの制御のために確保してデータセット資源をユーザに知らせるために出力
・終了メッセージ・・・JOBの終了時に行われるデータセットのあとしまSつ処理について知らせるために出力

JCL  意味
0   JOB文のみを出力
1   全てのJCL文とカタログ式プロシージャを出力
2   呼び出されたプロシージャを含まないJCL文のみを出力

プロシージャ・・・ある特定の処理を行うための一連の命令。処理の単位の一種と考えられる。
カタログ式プロシージャ・・・プログラムのコンパイル、アセンブル、連係編集、および実行をする際に、 同ジョブ制御ステートメントの集合を、ほとんど変更せずに、繰り返し使用する場合などに、 時間を節約しエラーの発生を防ぐために、数組のジョブ制御ステートメントを用意し、 これらをプロシージャー・ライブラリーと呼ばれる区分データ・セット(PDS)または 拡張区分データ・セット(PDSE)に保管したり、カタログしたりすることができます。 プロシージャー・ライブラリーのデータ・セット属性は、SYS1.PROCLIB(レコード長 80 で レコード形式 FB) に合わせなければなりません。システム・プロシージャー・ライブラリーである、SYS1.PROCLIB (または導入時に定義した プロシージャー・ライブラリー) 内のこのようなジョブ制御ステートメントの集合を、 カタログ式プロシージャーと呼びます。

割振り  意味
0   ジョブが異常終了しない限りメッセージは出力しない。
1   すべての割り振りメッセージを出力する

AMSGCLASS=class
・JCLステートメント、割り振りメッセージ、終了メッセージの出力クラスを指定する
・A〜Z、0〜9の一桁の文字

※出力クラス・・・出力されるデータは属性によってグループ化しておくと,効率良く出力処理ができる。このグループ化のために設けられている分類コードを出力クラスという。 通常,次のような属性によってグループ化される。
・出力媒体(印刷出力か,せん孔出力か)
・出力量
・出力緊急度
・出力帳票の種類
・出力先

//JCL001 JOB J001,'J/BUCHI',MSGCLASS=J,MSGLEVEL(1,0)
終了・割り振りメッセージ例

終了メッセージ

IEF237IALLOC.FOR JCL001 ASM STEP01
IEF237I 242 ALLOCATED TO SYS00979
IEF237I VIO ALLOCATED TO SYSUT1
IEF237I VIO ALLOCATED TO SYSLIN
IEF237I JES2 ALLOCATED TO SYSPRINT
IEF237I JES2 ALLOCATED TO SYSIN

IEF237I JCL001 ASM STEP01 -STEP WAS EXECTED - COND CODE 0000

割り振りメッセージ

IEF237I SYS1.MACLIB				KEEP
IEF237I VOL SER = MVSRES
		・
		・
		・
IEF285I JES2.JOB00721.S00102			SYSOUT
とりあえずこれが割り振りメッセージなんだなぐらいにとらえておいてください。

BCLASS=class
・ジョブに実行ジョブクラスを割り当てる指定できます。
・A〜Z,1〜9の一桁の文字で指定

//JCL001 JOB J001,'J/BUCHI',CLASS=J,MSGCLASS=J,MSGLEVEL(1,0)
Cその他のキーワードパラメータ
COND=(コード,演算子)・・・プログラムが終了した時の戻りコードをテストして、 ジョブステップの実行を迂回するように制御する。コードは0〜4095の10進数で指定。

※戻りコード・・・プログラム(ジョブステップ)が終了したあとにOSによって戻される、実行結果についての情報。
※演算子
GT :コードが戻りコードより大きい(>)
GE :コードが戻りコードより大きいか戻りコードに等しい(>=)
EQ :コードが戻りコードに等しい(=)
NE :コードが戻りコードに等しくない(!=)
LT :コードが戻りコードより小さい(<)
LE :コードが戻りコードより小さいか戻りコードに等しい(<=)

TIME=(分,秒)・・・ジョブがCPUを使用できる最大の時間を指定する。

TIME=(10,10)	10分10秒
TIME=5		5分
TIME=(,10)	10秒
TIME=1440	無制限
REGION=n [K or M]・・・ジョブに割り振られる記憶域の大きさを指定する。

PRTY=n・・・ジョブクラス内での選択優先順位を指定する

TYPRUN=HOLD or SCAN・・・ジョブの特殊処理を指定する

※HOLD・・・操作員がジョブを解放するまで、そのジョブは実行されないで待ち行列に保留されるように指示
※SCAN・・・構文の誤りを見つけるためにJCLステートメントを操作するだけで実行はしないことを指示

NOTIFY=ユーザ識別名・・・ジョブの終了時に完了メッセージをユーザのTSO端末に送るように指示

※TSO端末(Time Sharing Option)・・・IBMによるMVS(OS)対応の主要開発環境マネージャ。
・領域を分割して、その領域に接続した全ての端末で共用する。
・システム機能に対するユーザ・インターフェイスを提供する。

次へ目次へ


SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送