運用JCLの品質を保つ事は、顧客そして自分を守ること

By 岡田 - Posted: 2013/08/23 Last updated: 2016/12/04 - Leave a Comment
印刷用ページの表示 印刷用ページの表示
諸事情があり、投稿する時間を削いでいました

前の会社で私の部署がメインフレームのSI事業を展開していた時、私は多くの企業の運用JCLを見てきました。その度に運用JCLの品質がピンからキリまで存在していることに、とても胸が痛みました。

自分たちの生計を生み出してくれているシステムを守るために使うJCLにトラブルをいつ引き起こしても不思議ではない状態を見てきたからです。それは一度や二度ではありませんでした。

一番多かったのが、DISPの記述方法です。

データを出力する時や、区分データセットのコンデンスを行うなど(ディレクトリ領域の変更が伴う)は他のタスクに掴まれないように、DISP=OLDにするのが常識なのですが、DISP=SHRにしているユーザが多いのです。

SHRでも目的は達成できますが、他のタスクに掴まれた状態の時に重なると、、
ご想像のようになります

それぞれの担当SEは口々にこう言いました。
「昔から使っているJCLだから」と、、

でもその思いが、いざトラブルになった時に自分を苦しめることになるのです。
トラブルの障害報告をする時、昔から使っているJCLだったからと説明できるはずがありません

運用JCLを前任者から引き継いだら、自分のJCLの技術を磨けると思って、JCLの品質確認が必要と思います。

===
私は、今回ある例えが浮かんできた
新しく赴任された勤務地で支給された机の中がいろいろなもので煩雑だった。
この状態で、あなたはこのまま仕事を始められるだろうか、、

机の中を掃除したり、掃除できないにしてもどのようなものがあるかを整理するだろう
最悪の場合、机の中に違法な物があったら、自分の所有物でない事を証明できるだろうか、、

運用JCLも同じことと思います。
顧客を守ること、そして自分を守ること
===
でも、なにを基準に、、という問題が出てきます。

それを少しでも解消できる物として、VOS3が用意しているのが、IPPユティリティです

IPPという概念はVOS3/ASから導入されました。
PP(アプリケーション)のインストールやゼネレーション作業を前のOSであるVOS3/ES1よりも劇的に作業が容易になりました

その中の一つとして提供しているのがIPPユティリティです

この中には、磁気ディスク及び磁気テープの初期化、区分データセットのメンバ一覧、メンバの削除、コンデンスなど運用に必要なツールが標準提供されています。

これを使うことで、上記に書かれていたコンデンスの際のDISPの記述誤りを防ぐことができます

また、このIPPユティリティのもう一つの利点として、JCLを別途作らなくても、コンソールからSTARTコマンドとして実行できることです。
トラブルが起こったら、TSSを起動して、JCLを作って実行するという手間がかかっていたのですが、それがSTARTコマンド一発で解消できるのです。
例題を最後に書きます

それを見極めるのには、多くのトラブルを経験してきた熟練者の判断が必要かもしれません

メインフレーム技術者も大器晩成と思います

○提供されているIPPユティリティの一例

○ユーザ作成モジュールの退避と回復
○データセットの割り当て(VSAM、ページデータセット)
○カタログの内容印刷
○区分データセットのメンバ一覧印刷
○磁気テープの内容印刷
○VTOCの内容印刷
○データセットの削除
○区分データセット内のメンバ削除
○区分データセットの無効領域の詰め替え(コンデンス)
○磁気ディスクの初期化
○磁気テープの初期化


例)テープ(NOLABEL)の初期化をそれぞれの方法で書いて見る
○デバイスT90にNOLABELのテープを初期化する

1)JCL(IPPを使わない場合)
//MTINIT JOB
// EXEC PGM=JSFTINT
//SYSPRINT DD SYSOUT=*
//INPUT DD UNIT=(T90,1,DEFER),DCB=(DEN=4,TRTCH=C)
//SYSIN DD *
INPUT INITT SER=NOLABEL,DISP=REWIND
//

2)JCL(IPPを使う場合)
//MTINIT JOB
// EXEC PROC=IPPUTL,P=JSXUVOLT,UNIT=(T90,1,DEFER),
// VOL=PRIVATE,DCB=(DEN=4,TRTCH=C),FVSN=NOLABEL,INF=’DISP=REWIND’

3)STARTコマンドで行う場合
S IPPUTL,P=JSXUVOLT,UNIT=(T90,1,DEFER),VOL=PRIVATE,DCB=(DEN=4,TRTCH=C),FVSN=NOLABEL,INF=’DISP=REWIND’


Posted in つぶやき・雑感 • • Top Of Page