JCLとは
JCL (Job Control Language) は、メインフレーム上でジョブ(バッチ処理)を実行するために使用されるスクリプト言語。今回はJCLの実行方法や結果確認方法、プロシージャー、ライブラリについて整理する。
実行方法
実行方法
SUBMITコマンドを使ってJCLを実行。SUBMITは、JCLジョブをジョブキューに登録し、システムに実行させるためのコマンド
結果確認
ジョブが完了した後、NotifyでMAXCC(最大Condition Code)を確認することで、簡易的に結果を確認
MAXCCはジョブの各ステップで発生したCondition Codeのうち、最大の値を示す
| Condition Code | 意味 |
|---|---|
| 0 | 正常終了 |
| 4 | 警告終了。成功だが軽微な警告や問題が発生している可能性 |
| 8 | エラー終了。何らかのエラーが発生し、期待した結果を得られなかった。 |
| 12 | 深刻なエラー。ジョブやステップが正しく実行できなかった。 |
| 16 | 致命的なエラー。処理が完全に失敗した。 |
JESとは
JCLをサブミットするとJES(Job Entry Subsystem)に処理が渡る。
JESは、メインフレーム上でジョブを管理・制御するサブシステム。ジョブを受け取り、実行するためのキューに配置し、終了後の出力を管理する。
JESのプロセスは以下の通り。
| プロセス | 内容 |
|---|---|
| ジョブの受け取り | SUBMITコマンドでジョブがキューに登録される |
| スケジューリング | システムのリソース状況に応じて、ジョブの実行を順次スケジュール |
| 実行管理 | ジョブが実行される間、CPUやメモリ、入出力デバイスなどのリソースを割り当て |
| 終了と通知 | ジョブが完了したらMAXCCで結果を通知 |
| SPOOL | 実行中のジョブや出力結果を一時的に保存 |
| Output |
※SPOOLとは、Simultaneous Peripheral Operation On-lineの略
SDSFについて
SDSFでは、ジョブの状態や出力を表示し、管理することがでいる。
特にstatus画面ではジョブの詳細を確認・操作できる。
status画面で使用できる主なオプションは以下の通り。
| オプション | 説明 |
|---|---|
| ? | コマンドの詳細なヘルプを表示。 |
| S | ジョブの詳細ステータスを表示。 |
| Owner | 特定のユーザーのジョブを表示。 |
| F | ジョブの出力ファイルを表示。 |
| Pre | プレフィックスを指定してジョブをフィルタリング。 |
| P | ジョブを一時停止(ホールド)する。 |
| C | ジョブの詳細をキャンセル。 |
| XDC | 出力を別のデバイスにリダイレクト。 |
プロシージャについて
JCLにおいて、主に3つのプロシージャータイプが存在する。
| タイプ | 説明 |
|---|---|
| インストリームプロシージャー | JCL内に直接記述されたプロシージャー。ジョブの一部として定義され、ジョブの中でのみ有効。外部からの参照は不可。 |
| カタログプロシージャー | カタログに保存されたプロシージャー。複数のジョブから参照して再利用可能。同じ処理を複数のジョブで使い回せる。 |
| ネストプロシージャー | プロシージャーの中で別のプロシージャーを呼び出す。複数のプロシージャーを組み合わせて、より複雑な処理を構成可能 |
シンボルパラメーター:「&」
「&」を使ってプロシージャー内の変数を定義し、ジョブ実行時に実際の値で置き換え可能。
最後に
一旦、メインフレームシリーズはここで終わりにします。(私の業務上必要なくなりそうなので。。。)
