COBOLとJCL連携で学ぶJES2・JES3入門!ジョブ管理の基礎知識を初心者向けに解説
生徒
「COBOLを動かしたら、JES2とかJES3って言葉が出てきました。これは何をしているんですか?」
先生
「JES2やJES3は、JCLで書いたジョブを管理してくれる仕組みです。たくさんの仕事を順番にさばく係なんですよ」
生徒
「ジョブを管理するって、どういうイメージですか?」
先生
「学校の職員室で配られる書類を例にしながら説明していきます」
1. ジョブ管理とは何か
COBOLとJCLを使うメインフレーム環境では、プログラムはジョブという単位で実行されます。 ジョブとは「このプログラムを、この条件で動かしてください」という一つの仕事のまとまりです。 プログラミング未経験の方は、ジョブを提出された宿題のようなものだと考えてください。
宿題が一人分なら簡単ですが、何百人分も集まると、順番に処理しないと混乱します。 その整理役をしているのが、JES2やJES3と呼ばれるジョブ管理システムです。
2. JESとは何の略か
JESはJob Entry Subsystemの略です。 日本語にすると「仕事を受け付ける仕組み」といった意味になります。 JCLで書かれたジョブは、まずJESに渡され、実行の順番を待つことになります。
例えるなら、JCLが申込用紙、JESが受付窓口です。 受付がなければ、誰の仕事を先に処理するか分からなくなってしまいます。
3. JES2の基本的な役割
JES2は、最も広く使われているジョブ管理方式です。 主に一つのコンピュータの中で、多くのジョブを効率よく順番待ちさせます。 初心者が触れる環境の多くは、JES2が使われています。
JES2は、ジョブの受付、実行待ち、実行後の結果出力までを管理します。 結果として出てくるログや実行結果も、JES2が整理してくれます。 これは、宿題を受け取り、採点し、結果を返す先生のような役割です。
4. JES3の基本的な役割
JES3は、複数のコンピュータをまとめて管理するための方式です。 大規模なシステムで、たくさんの機械を使って処理する場合に使われます。
イメージとしては、JES2が一つの教室を管理する先生だとすると、 JES3は学校全体を管理する職員室のような存在です。 どのコンピュータでジョブを動かすかも判断します。
5. COBOLとJCLとJESの関係
COBOLはプログラムの中身を書き、JCLは実行の指示を書きます。 そして、その指示を受け取って実際に順番管理をするのがJESです。 この三つは、それぞれ役割が違いますが、連携して動いています。
流れとしては、「JCLを書く → JESが受付する → COBOLが実行される」という順番です。 どこか一つでも欠けると、プログラムは正しく動きません。
6. 初心者が知っておくべきポイント
初心者のうちは、JES2とJES3の細かい違いを覚える必要はありません。 「ジョブの順番を管理してくれる仕組みがある」という理解ができれば十分です。
JCLエラーや実行待ちの状態を見るとき、裏でJESが動いていることを意識すると、 なぜ待たされているのか、なぜ止まったのかが分かりやすくなります。 JESは、COBOLとJCLを支える縁の下の存在です。