世代別データ グループの作成

GDG をセットアップする主な方法としては、次の 2 つがあります。

次の例では、世代別データ グループを作成する場合に使用できるジョブを示します。STEP00 では GDG ベースが作成され、STEP01 では 5 つの新しい GDG 世代が作成されます。

//MFIDMFGD JOB 'MFIDMFGD',CLASS=A,MSGCLASS=A,NOTIFY=MFIDF
//STEP00 EXEC PGM=IDCAMS
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//AMSDUMP DD SYSOUT=*
//SYSIN DD *
DELETE MFIDMF.TEST.GDG
DEFINE GENERATIONDATAGROUP(NAME(MFIDMF.TEST.GDG) 
       EMPTY NOSCRATCH LIMIT(96))/*
//STEP01 EXEC PGM=IEFBR14
//SYSUXX DD DSN=MFIDMF.TEST.GDG(+1),DISP=(NEW,CATLG),SPACE=(TRK,(5,2))
//SYSUXY DD DSN=MFIDMF.TEST.GDG(+2),DISP=(NEW,CATLG),SPACE=(TRK,(5,2))
//SYSUXZ DD DSN=MFIDMF.TEST.GDG(+3),DISP=(NEW,CATLG),SPACE=(TRK,(5,2))
//SYSUXA DD DSN=MFIDMF.TEST.GDG(+4),DISP=(NEW,CATLG),SPACE=(TRK,(5,2))
//SYSUXB DD DSN=MFIDMF.TEST.GDG(+5),DISP=(NEW,CATLG),SPACE=(TRK,(5,2))

MFIDMF.TEST.GDG.G0001V00、MFIDMF.TEST.GDG.G0002V00、MFIDMF.TEST.GDG.G0003V00、MFIDMF.TEST.GDG.G0004V00、MFIDMF.TEST.GDG.G0005V00 という名前の 5 つの世代が、STEP01 によって作成されます。

世代は、相対番号によって、実際の参照によって、または世代別データ グループ全体の一部として処理できます。たとえば、前述のジョブの実行後に次の各文を実行できます。

//SYSUT1 DD DSN=MFIDMF.TEST.GDG,DISP=SHR

これにより、MFIDMF.TEST.GDG.G0001V00 から MFIDMF.TEST.GDG.G0005V00 までの一組の連結されたデータ セットで構成されている世代別データ グループ MFIDMF.TEST.GDG 全体が参照されます。

//SYSUT1 DD DSN=MFIDMF.TEST.GDG(0),DISP=SHR

相対番号 0 を使用すると、MFIDMF.TEST.GDG.G0005V00 という名前のデータ セットが参照されます。

//SYSUT1 DD DSN=MFIDMF.TEST.GDG(-1),DISP=SHR

相対番号 -1 を使用すると、MFIDMF.TEST.GDG.G0004V00 という名前のデータ セットが参照されます。

//SYSUT1 DD DSN=MFIDMF.TEST.GDG(+1),DISP=SHR

相対番号 +1 を使用すると、MFIDMF.TEST.GDG.G0006V00 という名前の新しいデータ セットが参照されます。

//SYSUT1 DD DSN=MFIDMF.TEST.GDG.G0003V00,DISP=SHR

実際の参照である G0003V00 を使用すると、MFIDMF.TEST.GDG.G0003V00 という名前のデータ セットが参照されます。

番号のインクリメントは、ジョブごとに行われます。そのため、連続する 2 つのステップで +1 を参照した場合、各ステップは同じデータ セットを使用することになります。