技術とか戦略とか

IT技術者が技術や戦略について書くブログです。

JCLの紹介

もしもメインフレーム(ホスト)を使うシステムの担当になってしまったら、必ずと言って良いほどお世話になるのがJCLです。
JCLとはメインフレームのプログラムを動かすためのスクリプトのようなものであり、UnixシェルスクリプトWindowsのバッチファイルに相当します。
また、メインフレームからの脱却に成功したレガシーシステムでも、システム移行や教育コストの都合上、JCLの面影を残したシェルスクリプト・バッチファイルが使われることが多く、JCLを読むことができればそのようなシステムに出くわした時にも理解が早くなります。
 
今回は、色々なサイトを見ながらJCLの紹介をします。
 
【JCLの概要】
JCL入門 >> 「メインフレーム・コンピューター」で遊ぼう

http://www.arteceed.net/?p=154

 
こちらのページには、簡単なJCLの例を出してJCLとはどのようなものなのか説明しています。
例として出されているJCLは以下です。
簡単に説明すると、1行目はジョブ名とジョブの種別、2行目は実行するプログラム名、3行目はインプットファイル名とインプットファイルの読み込み方、4行目はアウトプットファイルの情報(SYSOUT=コンソール)を指定しています。
//JOBA JOB MSGCLASS=H
//STEP1 EXEC PGM=PGMA
//INPUT DD DSN=USER.DATA1,DISP=SHR
//OUTPUT DD SYSOUT=*
 
なお、このサイトは、メインフレームの技術者のコミュニティサイトとしても機能しているようです。
詳細に踏み込んだ記事も掲載されていますし、掲示板は今でも更新されています。
 
【JCLのリファレンス類】
FUKU’s Another Room-z-OS,MVS技術情報

http://yfuku.sakura.ne.jp/mvs/mvsindex.html


 
こちらのページでは、JCLのリファレンスに相当する情報が書かれています。
難しすぎず簡単すぎず、実運用で必要な情報が書かれています。
「JOB制御ステートメント」の「DDステートメント」の下記の記述はメインフレームから脱却したシステムでも良く見られるものなので、レガシーシステムに関わる方は頭に入れておいて損はないでしょう。
NEW:このステップで新規データ・セットを作成します。
OLD:このステップ以前からデータ・セットが存在している場合で占有の読み取りです。
SHR:このステップ以前からデータ・セットが存在している場合で共有の読み取りです。
MOD:このステップ以前からデータ・セットが存在しレコードをデータ・セットの終わりに追加します。
KEEP:このステップが終了した場合、データ・セットを保存します。
DELETE:このステップが終了した場合、データ・セットを削除します。
CATLG:このステップが終了した場合、データ・セットをカタログします。
UNCATLG:このステップが終了した場合、データ・セットをアンカタログします。
PASS:このデータ・セットを同一ジョブ内の後続のステップに渡します。
 
なお、JCLのリファレンスは今でも本が出ているようです。
もしも本格的にJCLに関わることになってしまったら、このような本を購入するのも一考でしょう。

https://www.amazon.co.jp/MVS-JCL%E9%80%86%E5%BC%95%E3%81%8D%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9-OS%E3%82%AA%E3%83%9A%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%BB%E3%83%8F%E3%83%B3%E3%83%89%E3%83%96%E3%83%83%E3%82%AF-%E7%A5%9E%E5%B1%85-%E4%BF%8A%E5%93%89/dp/4990506200

 
メインフレームの入門】
第1回 ジョブとは何か? - 運用テクニック - システム管理者の会ポータルサイト

https://www.sysadmingroup.jp/back_number/kh/technic/012/277.php

 
こちらのページでは、メインフレームの仕組みに関して入門的なことが書かれています。
JCLを書いて運用する上では、単にJCLの文法を覚えるだけでなくメインフレームの仕組みもある程度理解する必要が出てくるので、このようなサイトで勉強しておくと良いでしょう。