Jcl-defining-datasets
JCL-データセットの定義
データセット名はファイルの名前を指定し、JCLのDSNで示されます。 DSNパラメーターは、新規作成または既存のデータセットの物理データセット名を参照します。 DSN値は、ピリオドで区切られた1〜8文字の長さのサブ名と、44文字(英数字)の合計長で構成できます。 構文は次のとおりです。
一時データセット*は、ジョブの期間だけストレージを必要とし、ジョブの完了時に削除されます。 そのようなデータセットは、 *DSN =&name として、または単にDSNを指定せずに表されます。
ジョブステップによって作成された一時データセットが次のジョブステップで使用される場合、 DSN = 。stepname.ddname *として参照されます。 これは*後方参照*と呼ばれます。
データセットの連結
同じ形式のデータセットが複数ある場合、それらを連結して、単一のDD名でプログラムへの入力として渡すことができます。
上記の例では、3つのデータセットが連結され、SORTIN DD名でSORTプログラムへの入力として渡されます。 ファイルはマージされ、指定されたキーフィールドでソートされ、SORTOUT DD名の単一の出力ファイルSAMPLE.OUTPUTに書き込まれます。
データセットのオーバーライド
標準化されたJCLでは、実行されるプログラムとその関連データセットは、JCLで呼び出されるカタログ式プロシージャ内に配置されます。 通常、テスト目的またはインシデント修正のために、カタログ式手順で指定されたデータセット以外の異なるデータセットを使用する必要がある場合があります。 その場合、プロシージャ内のデータセットはJCLでオーバーライドできます。
上記の例では、データセットIN1は、PROCのファイルMYDATA.URMI.INPUTを使用します。これは、JCLでオーバーライドされます。 したがって、実行で使用される入力ファイルはMYDATA.OVER.INPUTです。 データセットはSTEP1.IN1として参照されることに注意してください。 JCL/PROCに1つのステップしかない場合は、DD名だけでデータセットを参照できます。 同様に、JCLに複数のステップがある場合、データセットはJSTEP1.STEP1.IN1としてオーバーライドされます。
上記の例では、IN1で連結された3つのデータセットのうち、最初のデータセットはJCLでオーバーライドされ、残りはPROCに存在するものとして保持されます。
JCLでのGDGの定義
生成データグループ(GDG)は、共通の名前で相互に関連付けられたデータセットのグループです。 共通名はGDGベースと呼ばれ、ベースに関連付けられた各データセットはGDGバージョンと呼ばれます。
たとえば、MYDATA.URMI.SAMPLE.GDGはGDGベース名です。 データセットには、MYDATA.URMI.SAMPLE.GDG.G0001V00、MYDATA.URMI.SAMPLE.GDG.G0002V00などの名前が付けられます。 GDGの最新バージョンはMYDATA.URMI.SAMPLE.GDG(0)と呼ばれ、以前のバージョンは(-1)、(-2)などと呼ばれます。 プログラムで作成される次のバージョンは、JCLでMYDATA.URMI.SAMPLE.GDG(+1)として参照されます。
JCLでGDGを作成/変更する
GDGバージョンは、同じまたは異なるDCBパラメーターを持つことができます。 初期モデルDCBは、すべてのバージョンで使用されるように定義できますが、新しいバージョンを作成するときにオーバーライドできます。
上記の例では、IDCAMSユーティリティは、SYSIN DDステートメントで渡される以下のパラメーターを使用してGDGSTEP1のGDGベースを定義します。
- NAME は、GDGベースの物理データセット名を指定します。
- LIMIT は、GDGベースが保持できるバージョンの最大数を指定します。
- EMPTY は、LIMITに達するとすべての世代をカタログ解除します。
- NOEMPTY は、最も新しい世代をカタログ解除します。
- SCRATCH は、カタログ化されていない世代を物理的に削除します。
- NOSCRATCH はデータセットを削除しません。つまり、UNITおよびVOLパラメーターを使用して参照できます。
GDGSTEP2では、IEFBR14ユーティリティーは、すべてのバージョンで使用されるモデルDDパラメーターを指定します。
IDCAMSを使用して、LIMITの増加、EMPTYのNOEMPTYへの変更など、GDGの定義パラメーターを変更できます。SYSINコマンドを使用する関連バージョンは ALTER MYDATA.URMI.SAMPLE.GDG LIMIT(15)EMPTY です。
JCLでGDGを削除する
IEFBR14ユーティリティを使用して、GDGの単一バージョンを削除できます。
上記の例では、MYDATA.URMI.SAMPLE.GDGの最新バージョンが削除されます。 通常のジョブ完了のDISPパラメーターはDELETEとしてコーディングされていることに注意してください。 したがって、ジョブの実行が完了すると、データセットは削除されます。
IDCAMSは、SYSINコマンド DELETE(MYDATA.URMI.SAMPLE.GDG)GDG FORCE/PURGE を使用して、GDGおよびその関連バージョンを削除するために使用できます。
- FORCE は、GDGバージョンとGDGベースを削除します。 GDGバージョンのいずれかに有効期限が設定されており、まだ有効期限が切れていない場合、それらは削除されないため、GDGベースが保持されます。
- PURGE は、有効期限に関係なく、GDGバージョンとGDGベースを削除します。
JCLでGDGを使用する
次の例では、MYDATA.URMI.SAMPLE.GDGの最新バージョンがプログラムへの入力として使用され、MYDATA.URMI.SAMPLE.GDGの新しいバージョンが出力として作成されます。
ここで、GDGがMYDATA.URMI.SAMPLE.GDG.G0001V00などの実際の名前で参照されていた場合、実行前に毎回JCLを変更することになります。 (0)と(+1)を使用すると、実行のためにGDGバージョンが動的に置き換えられます。