170 likes | 480 Views
Managing Generation Data Groups . Chapter 12. Objectives. Knowledge objectives Explain what generation data groups are and why they’re used. Distinguish between relative and absolute generation numbers, How they refer to the generations of a GDG.
E N D
Managing Generation Data Groups Chapter 12 © 2002 - Mike Murach & Associates, 2007 - HCC, IBM
Objectives • Knowledge objectives • Explain what generation data groups are and why they’re used. • Distinguish between relative and absolute generation numbers, • How they refer to the generations of a GDG. • Name the two main functions to create a GDG. • Describe the role of the model DSCB in specifying DCB information for new generations of a GDG. • Distinguish between specific model DSCB and general-purpose model DSCB’s. • Name the utility to create and delete GDGs. • Name two facilities used to list GDG catalog information. • Applied objectives • Code the JCL necessary to create or retrieve generations of a generation data group. • Code a job that defines a generation data groupand allocates a model DSCB. • List GDG catalog information © 2002 - Mike Murach & Associates, 2007 - HCC, IBM
GDG Facts • A GDG, is a collection of two or more chronologically related versions of the same data set. • They are non-VSAM sequential data sets on tape or DASD. • Each time a generation data set is processed, a new generation is added to the GDG. • To refer to the generations we use relative generation numbers like • 0, -1, -2, and -3. • GDG’s and generation data sets in them must be cataloged. • During creation of a catalog entry for a GDG, you specify how many should be maintained © 2002 - Mike Murach & Associates, 2007 - HCC, IBM
Figure 12-01b The Relative Positions Of GDG Members © 2002 - Mike Murach & Associates, 2007 - HCC, IBM
Figure 12-02a Typical Update Procedure Using A Generation Data Group © 2002 - Mike Murach & Associates, 2007 - HCC, IBM
Formatting Generation And Version Numbers • Format • How the absolute generation numbers for the GDG members change • Data set name Data set name Relative name before processing after processing • PAYMAST(0) PAYMAST.G0012V00 PAYMAST.G0013V00 • PAYMAST(-1) PAYMAST.G0011V00 PAYMAST.G0012V00 • PAYMAST(-2) PAYMAST.G0010V00 PAYMAST.G0011V00 • PAYMAST(-3) PAYMAST.G0009V00 PAYMAST.G0010V00 datasetname.GnnnnVnn © 2002 - Mike Murach & Associates, 2007 - HCC, IBM
Syntax Referring To GDG Members dsname(relative-number) © 2002 - Mike Murach & Associates, 2007 - HCC, IBM
A Two-step Job That Updates A GDG Master File Twice //MM01PY1 JOB (36512),'R MENENDEZ',NOTIFY=&SYSUID//UPDATE1 EXEC PGM=PAY3200//OLDMAST DD DSNAME=MM01.PAYROLL.MASTER(0),DISP=OLD//NEWMAST DD DSNAME=MM01.PAYROLL.MASTER(+1),// DISP=(NEW,CATLG),// UNIT=SYSDA,VOL=SER=MPS8BV,// SPACE=(CYL,(10,1))//PAYTRAN DD DSNAME=MM01.PAYROLL.TRANS.CORP,DISP=OLD//PAYCORP DD SYSOUT=*//UPDATE2 EXEC PGM=PAY3210//OLDMAST DD DSNAME=MM01.PAYROLL.MASTER(+1),DISP=OLD//NEWMAST DD DSNAME=MM01.PAYROLL.MASTER(+2),// DISP=(NEW,CATLG),// UNIT=SYSDA,VOL=SER=MPS8BV,// SPACE=(CYL,(10,1))//PAYTRAN DD DSNAME=MM01.PAYROLL.TRANS.BRANCH,DISP=OLD//PAYLIST DD SYSOUT=* © 2002 - Mike Murach & Associates, 2007 - HCC, IBM
Two One-step Jobs Updating A GDG Master File • MM01PY2 • MM01PY3 //MM01PY2 JOB (36512),'R MENENDEZ',NOTIFY=&SYSUID//UPDATE1 EXEC PGM=PAY3200//OLDMAST DD DSNAME=MM01.PAYROLL.MASTER(0),DISP=OLD//NEWMAST DD DSNAME=MM01.PAYROLL.MASTER(+1),// DISP=(NEW,CATLG),// UNIT=SYSDA,VOL=SER=MPS8BV,// SPACE=(CYL,(10,1)),// DCB=(LRECL=80)//PAYTRAN DD DSNAME=MM01.PAYROLL.TRANS.CORP,DISP=OLD//PAYCORP DD SYSOUT=* //MM01PY3 JOB (36512),'R MENENDEZ',NOTIFY=&SYSUID//UPDATE2 EXEC PGM=PAY3210//OLDMAST DD DSNAME=MM01.PAYROLL.MASTER(0),DISP=OLD//NEWMAST DD DSNAME=MM01.PAYROLL.MASTER(+1),// DISP=(NEW,CATLG),// UNIT=SYSDA,VOL=SER=MPS8BV,// SPACE=(CYL,(10,1))//PAYTRAN DD DSNAME=MM01.PAYROLL.TRANS.BRANCH,DISP=OLD//PAYLIST DD SYSOUT=* © 2002 - Mike Murach & Associates, 2007 - HCC, IBM
DEFINE GDG • Syntax for AMS DEFINE GDG Command • DEFINE GDG|GENERATIONDATAGROUP ( NAME(entry-name) • LIMIT(limit) [ EMPTY | NOEMPTY ] [ SCRATCH | NOSCRATCH ] [ OWNER(owner-id) ] [ TO(yyyyddd) | FOR(nnnn) ] ) © 2002 - Mike Murach & Associates, 2007 - HCC, IBM
Samples of Code... • A Job • Defines A GDG And Allocates A Model DSCB • Creates A General-purpose Model DSCB • Defines A GDG With A General-purpose Model DSCB • Update A GDG Using A General-purpose Model DSCB //MM01DFG JOB (36512),'R MENENDEZ',NOTIFY=&SYSUID// EXEC PGM=IDCAMS//SYSPRINT DD SYSOUT=*//MODEL DD DSNAME=MM01.PAYROLL.MASTER,DISP=(,KEEP),// UNIT=SYSDA,VOL=SER=MPS800,SPACE=(TRK,(0)),// DCB=(DSORG=PS,RECFM=FB,LRECL=400)//SYSIN DD * DEFINE GDG ( NAME(MM01.PAYROLL.MASTER) -LIMIT(5) -NOEMPTY - SCRATCH )/* //MM01BR14 JOB (36512),'R MENENDEZ',NOTIFY=&SYSUID// EXEC PGM=IEFBR14//DD1 DD DSNAME=MODLDSCB,DISP=(NEW,CATLG),// UNIT=SYSDA,VOL=SER=MPS800,// SPACE=(TRK,(0)),// DCB=(DSORG=PS,RECFM=FB) //MM01DFG JOB (36512),'R MENENDEZ',NOTIFY=&SYSUID// EXEC PGM=IDCAMS//SYSPRINT DD SYSOUT=*//SYSIN DD * DEFINE GDG (NAME(MM01.PAYROLL.MASTER) - LIMIT(5) - NOEMPTY - SCRATCH )/* //MM01PY4 JOB (36512),'R MENENDEZ',NOTIFY=&SYSUID//UPDATE EXEC PGM=PAY3200//OLDMAST DD DSNAME=MM01.PAYROLL.MASTER(0),DISP=OLD//NEWMAST DD DSNAME=MM01.PAYROLL.MASTER(+1),DISP=(NEW,CATLG),// UNIT=SYSDA,VOL=SER=MPS8BV,// SPACE=(CYL,(10,1)),// DCB=(MODLDSCB,LRECL=400)//PAYTRAN DD DSNAME=MM01.PAYROLL.TRANS,DISP=OLD//PAYCORP DD SYSOUT=* © 2002 - Mike Murach & Associates, 2007 - HCC, IBM
Figure 12-06a Using ISPF DLIST Screen To List GDG Information © 2002 - Mike Murach & Associates, 2007 - HCC, IBM
Using GDG’s • Use AMS LISTCAT to list GDG information • A DD statement referring to a data set by absolute generation number //MM01LST JOB (36512),'R MENENDEZ',NOTIFY=&SYSUID// EXEC PGM=IDCAMS//SYSPRINT DD SYSOUT=*//SYSIN DD * LISTCAT ENTRIES(MM01.PAYROLL.MASTER) - GDG - ALL/* //OLDMAST DD DSNAME=MM01.PAYROLL.MASTER.G0009V00, // DISP=OLD © 2002 - Mike Murach & Associates, 2007 - HCC, IBM
Housekeeping • Syntax For The AMS DELETE GDG Command • Deleting a GDG DELETE entry-name GDG|GENERATIONDATAGROUP [ PURGE|NOPURGE ] [ FORCE|NOFORCE ] //MM01DELG JOB (36512),'R MENENDEZ',NOTIFY=&SYSUID// EXEC PGM=IDCAMS//SYSPRINT DD SYSOUT=*//SYSIN DD * DELETE MM01.PAYROLL.MASTER GDG - PURGE - FORCE/* © 2002 - Mike Murach & Associates, 2007 - HCC, IBM
End Presentation © 2002 - Mike Murach & Associates, 2007 - HCC, IBM