Job_Control_Language
[Wikipedia|▼Menu]
.mw-parser-output .hatnote{margin:0.5em 0;padding:3px 2em;background-color:transparent;border-bottom:1px solid #a2a9b1;font-size:90%}

「JCL」はこの項目へ転送されています。2021年開始のプロサイクルロードレースリーグについては「ジャパンサイクルリーグ」をご覧ください。
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%;font-size:90%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}

この記事は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方
出典検索?: "Job Control Language" ? ニュース ・ 書籍 ・ スカラー ・ CiNii ・ J-STAGE ・ NDL ・ dlib.jp ・ ジャパンサーチ ・ TWL(2017年8月)

Job Control Language(JCL、ジョブ制御言語)とは、メインフレームコンピュータで使われるジョブ制御用スクリプト言語である。処理系によりJCS(Job Control Statement)、ECL(Executive Control Language)とも呼ぶ。
概要

ジョブ制御言語(JCL)は、メインフレームジョブ管理システム(ジョブ入力サブシステム)に対して、バッチ処理や常駐プロセス起動時の指定をするスクリプト言語である。

通常は、ジョブ名、ジョブの実行クラス(優先順位など)、ステップ名、使用するプログラム名、そのプログラムが格納されているライブラリー、使用する仮想メモリーの容量、使用する物理ファイル名(データセット名)やその属性(格納場所、新規作成の場合の容量など)、およびジョブ内(ステップ間)の制御を行う。なおジョブ間(ジョブフロー、ジョブストリーム)の制御を自動化する場合は、JCLではできないためジョブスケジューラなどで行う。

大半のメインフレームでは、プログラムから見えるコンピュータは仮想化されており、プログラムは物理ファイル名などを認識することはできない(従って記述もできない)ため、JCLによってはじめて、プログラム内の論理ファイル名と、実際の物理ファイル名などが、関連づけられる。

オープン系にはJCLと同等の機能はなくシェルスクリプトで代用することが多いが本来は全く異なるものである。メインフレームでのJCLは必須であり、プログラマ(プログラム)とオペレータ(運用管理)を分離している。このため運用管理担当者は、各プログラムの仕様を知ること無く、各ジョブがどの物理ファイル(データセット)を使用するか(しないか)を全て把握し、容易に変更できる。またプログラムが不測の物理ファイル(データセット)をアクセスしたり作成する事が無い。

JCLは、オペレーティングシステム(OS)やバージョンによって機能や構文が異なる。JCLを持つ主なOSには、以下がある。

MVS系

IBMのMVS系(OS/360、OS/VS、MVS、MVS/XA、MVS/ESA、OS/390、z/OS

富士通MSP(MVS互換OS。JCLもMVSベースだが独自の拡張あり)

日立製作所VOS3(MVS互換OS。JCLもMVSベースだが独自の拡張あり)



VSE系

IBMのVSE系(DOS/VSE、VSE/ESA、z/VSE。JCS(Job Control Statement)と呼び、機能・構文もMVS系とは異なる)



富士通のXSP(機能・構文もMSPとは異なる)


GCOS系(多機能で一般のシェルスクリプトに近い)

BullGCOS

日本電気ACOS



ユニシスOS2200 (EXEC制御文(EXECutive制御文)と呼ぶため、厳密にはECL(Executive Control Language) と称されるが、JCLという呼称が一般化されている)


ユニシスMCP

なおメインフレーム専用OSでも、対話型志向のIBM z/VMなどにはJCLは存在しない(ゲストOSの各ユーザーがREXXなどのスクリプト言語を使用して自動化できるが、必須ではなくUNIXなどに近い)。またメインフレームでUNIXやLinuxなどを稼働させる場合も、もちろんJCLは存在しない。
MVS系のJCL

JCLは、バッチ処理をどのように動かすか、サブシステムをどのように起動させるかを、ジョブエントリーシステム(Job Entry Subsystem 2/3、JES2 または JES3)に対して指示するものである。

JCLの各行の先頭2文字は、"//" で始まる。このスラッシュは、パンチカードを使ってJCLを読み込ませジョブを投入していたときの名残である。誤ってパンチカードを後ろからカードリーダーに挿入してしまった場合(代わりにシーケンス番号が先頭に来ることになるだろう)、リーダーは "//" が先頭にないことを読み取って、そのカードを拒絶するようになっていた。

互換性(上位互換下位互換)のために、z/OS で使う JCL の文法は、1960年代から基本的には変わっていない。OS/360 で動いたものと同じ JCL が z/OS でも動いている。
文法

JCL ステートメントの1行の長さは80バイトで、1行またはそれ以上のステートメントで1本の JCL が構成される。

JCL ステートメントは1カラム目から71カラム目までを使用する(コメントは除く)。73カラム目から80カラム目は、しばしばシーケンス番号が記述される。

71文字を超えて1つのステートメントを記述する場合には(コメントは除く)、先の行の最後はカンマで終わり、次の行は4カラム目から16カラム目の間から始める(もちろん、全ての行の先頭2文字は "//" である)。
Identifierフィールド、Identifier欄

JCLは、1カラム目から2カラム目の "//" から始まる。下記を除く:

"/*" もしくはユーザー定義の別の delimiter

"//*" は、その行全てがコメントであることを指示する。

名前フィールド、名前欄

名前フィールドは、1つのステートメントである。だから、他のステートメントがそのステートメントを指し示す・言及することができる。3カラム目から始まり、8文字以内の長さでなければならない。アルファベットと数字、"#" や "@" や "$" などの文字が使用できる。名前の先頭は、数字であってはならない。ジョブ名、ステップ名、プロシージャ名、DD名を記述する。
オペレーションフィールド、オペレーション欄

オペレーションフィールドは、実行すべきコマンド、オペレーション("JOB"、"EXEC"、"DD" など)を記述する。少なくとも1文字の空白が先におかれなければならない。
パラメータ/オペランドフィールド、パラメータ/オペランド欄

キーワードパラメータの順序は決まっていない。パラメータとパラメータの間に空白は置かない。空白の後はコメントになる。行内のパラメータの記述の左側、パラメータの前には、可読性を高めるための空白が入る。
コメントフィールド、注釈欄

JCL のステートメントのパラメータフィールドの後ろにインラインコメントを記述する場合には、少なくとも1文字の空白を入れてステートメントとコメントを分ける。71カラム目を超えてコメントを記述する場合には、72カラム目を空白にしない(通常、"X" が使われる)。次の行は "// " の後1カラム目から3カラム目の間からコメントの記述を続ける。
ジョブ

1つのジョブ(JOB)はジョブステートメント(ジョブ文)で始まり、 "//" だけの空行(空文)で終わる。1つのジョブ(JOB)の中の各々のステップ(STEP)は、1つのエグゼキュート(EXEC)ステートメント(EXEC文)と複数のデータディファニッション(DD)ステートメント(DD文)、各々のDDステートメントに1つのアクセスするデータセットで構成される。
JOB文//jobname JOB (accounting information),CLASS=x,MSGCLASS=x,REGION=nK,TIME=(m,s),NOTIFY=XXXXXX

CPU や I/O など、コンピュータ資源を使用した分の使用料を使用した部署に請求するために、必要な会計上の情報が、カッコやクオーテーションマークで区切られて記述される。

CLASS パラメータは、ジョブがどのイニシエータで走るかを決める。その他、ジョブの優先度を指定するパラメータなどがある。

MSGCLASS パラメータはジョブの実行結果をどこに出力するかを指定する。出力クラスは個別のプリンタや、指定のファイルなどに割り振られていて、ユーザーは希望の出力先を指定する。

REGION パラメータは、ジョブが使用できる仮想記憶の最大量、リージョンのサイズを決める。キロやメガという単位を用いて指定できる。指定できる大きさは、システムを構築するときにジョブクラス毎に設定される。

TIME パラメータは、CPU を使用できる最大時間を決める。分、秒で指定する。ジョブの全てのステップが使用する時間を指定する。使用できる最大時間は、1439分59秒(TIME=(1439,59))。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:27 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef