No Slide Title
Download
Report
Transcript No Slide Title
Managing Generation Data
Groups
Stephen Linkin
Houston Community College
3/21/2007
© 2002 - Mike Murach & Associates,
2007 - HCC, IBM
1
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
3/21/2007
Code the JCL necessary to create or retrieve
generations of a generation data group.
Code a job that defines a generation data group
and allocates a model DSCB.
List GDG catalog information
© 2002 - Mike Murach & Associates,
2007 - HCC, IBM
2
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
3/21/2007
© 2002 - Mike Murach & Associates,
2007 - HCC, IBM
3
The Relative Positions Of GDG
Members
Before Processing
The update procedure
September
master
(0)
August
master
(-1)
July
master
(-2)
September
master
(0)
After processing
October
input
data
October
master
(0)
Update
program
September
master
(-1)
October
master
(+1)
August
master
(-2)
Figure 12-01b
3/21/2007
© 2002 - Mike Murach & Associates,
2007 - HCC, IBM
4
Typical Update Procedure Using
A Generation Data Group
Payroll
input
data
PAYMAST.G0012V00
(Current master)
Figure 12-02a
3/21/2007
Update
program
PAYMAST.G0013V00
(New master)
© 2002 - Mike Murach & Associates,
2007 - HCC, IBM
5
Formatting Generation And Version
Numbers
Format
datasetname.GnnnnVnn
How the absolute generation numbers for the GDG
members change
Relative name
Data set name
before processing
Data set name
after processing
PAYMAST(0)
PAYMAST(-1)
PAYMAST(-2)
PAYMAST(-3)
PAYMAST.G0012V00
PAYMAST.G0011V00
PAYMAST.G0010V00
PAYMAST.G0009V00
PAYMAST.G0013V00
PAYMAST.G0012V00
PAYMAST.G0011V00
PAYMAST.G0010V00
3/21/2007
© 2002 - Mike Murach & Associates,
2007 - HCC, IBM
6
Syntax Referring To GDG
Members
dsname(relative-number)
3/21/2007
© 2002 - Mike Murach & Associates,
2007 - HCC, IBM
7
A Two-step Job That Updates A
GDG Master File Twice
//MM01PY1
//UPDATE1
//OLDMAST
//NEWMAST
//
//
//
//PAYTRAN
//PAYCORP
//UPDATE2
//OLDMAST
//NEWMAST
//
//
//
//PAYTRAN
//PAYLIST
3/21/2007
JOB
EXEC
DD
DD
(36512),'R MENENDEZ',NOTIFY=&SYSUID
PGM=PAY3200
DSNAME=MM01.PAYROLL.MASTER(0),DISP=OLD
DSNAME=MM01.PAYROLL.MASTER(+1),
DISP=(NEW,CATLG),
UNIT=SYSDA,VOL=SER=MPS8BV,
SPACE=(CYL,(10,1))
DD
DSNAME=MM01.PAYROLL.TRANS.CORP,DISP=OLD
DD
SYSOUT=*
EXEC PGM=PAY3210
DD
DSNAME=MM01.PAYROLL.MASTER(+1),DISP=OLD
DD
DSNAME=MM01.PAYROLL.MASTER(+2),
DISP=(NEW,CATLG),
UNIT=SYSDA,VOL=SER=MPS8BV,
SPACE=(CYL,(10,1))
DD
DSNAME=MM01.PAYROLL.TRANS.BRANCH,DISP=OLD
DD
SYSOUT=*
© 2002 - Mike Murach & Associates,
2007 - HCC, IBM
8
Two One-step Jobs Updating A
GDG Master File
MM01PY2
//MM01PY2
JOB
MM01PY3
//UPDATE1
//MM01PY3
//OLDMAST
//UPDATE2
//NEWMAST
//OLDMAST
//
//NEWMAST
//
//
//
//
//PAYTRAN
//PAYTRAN
//PAYCORP
//PAYLIST
3/21/2007
(36512),'R MENENDEZ',NOTIFY=&SYSUID
EXEC PGM=PAY3200
JOB
(36512),'R
MENENDEZ',NOTIFY=&SYSUID
DD
DSNAME=MM01.PAYROLL.MASTER(0),DISP=OLD
EXEC
PGM=PAY3210
DD
DSNAME=MM01.PAYROLL.MASTER(+1),
DD
DSNAME=MM01.PAYROLL.MASTER(0),DISP=OLD
DISP=(NEW,CATLG),
DD
DSNAME=MM01.PAYROLL.MASTER(+1),
UNIT=SYSDA,VOL=SER=MPS8BV,
DISP=(NEW,CATLG),
SPACE=(CYL,(10,1)),
UNIT=SYSDA,VOL=SER=MPS8BV,
DCB=(LRECL=80)
SPACE=(CYL,(10,1))
DD
DSNAME=MM01.PAYROLL.TRANS.CORP,DISP=OLD
DD
DSNAME=MM01.PAYROLL.TRANS.BRANCH,DISP=OLD
SYSOUT=*
DD
SYSOUT=*
© 2002 - Mike Murach & Associates,
2007 - HCC, IBM
9
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) ] )
3/21/2007
© 2002 - Mike Murach & Associates,
2007 - HCC, IBM
10
Samples of Code...
A Job
Defines A GDG And Allocates A Model DSCB
//MM01DFG
Creates
JOB A (36512),'R
General-purpose
MENENDEZ',NOTIFY=&SYSUID
Model DSCB
//
EXECA PGM=IDCAMS
Defines
GDG With A MENENDEZ',NOTIFY=&SYSUID
General-purpose Model DSCB
//MM01BR14
JOB (36512),'R
//SYSPRINT DD
SYSOUT=*
//
EXEC
PGM=IEFBR14
Update
Using A General-purpose Model DSCB
//MODEL
DD A GDG
DSNAME=MM01.PAYROLL.MASTER,DISP=(,KEEP),
//MM01DFG
JOB
(36512),'R MENENDEZ',NOTIFY=&SYSUID
//DD1
DD DSNAME=MODLDSCB,DISP=(NEW,CATLG),
//
UNIT=SYSDA,VOL=SER=MPS800,SPACE=(TRK,(0)),
//
EXEC PGM=IDCAMS
UNIT=SYSDA,VOL=SER=MPS800,
//MM01PY4
JOB DCB=(DSORG=PS,RECFM=FB,LRECL=400)
(36512),'R
MENENDEZ',NOTIFY=&SYSUID
//
//SYSPRINT
DD
SYSOUT=*
//
SPACE=(TRK,(0)),
//UPDATE
EXEC
PGM=PAY3200
//SYSIN
DD
*
//SYSIN
DD
*
//
DCB=(DSORG=PS,RECFM=FB)
//OLDMAST
DD
DSNAME=MM01.PAYROLL.MASTER(0),DISP=OLD
DEFINE
GDG
(
NAME(MM01.PAYROLL.MASTER)
DEFINE
GDG
(NAME(MM01.PAYROLL.MASTER)
//NEWMAST DD LIMIT(5)
LIMIT(5)
-DSNAME=MM01.PAYROLL.MASTER(+1),DISP=(NEW,CATLG),
NOEMPTY
NOEMPTY
//
UNIT=SYSDA,VOL=SER=MPS8BV,
SCRATCH
)
SCRATCH
)
//
SPACE=(CYL,(10,1)),
/*
/*
//
DCB=(MODLDSCB,LRECL=400)
//PAYTRAN
//PAYCORP
3/21/2007
DD
DD
DSNAME=MM01.PAYROLL.TRANS,DISP=OLD
© 2002 - Mike Murach & Associates,
SYSOUT=*
2007 - HCC, IBM
11
Using ISPF DLIST Screen To List
GDG Information
Figure 12-06a
3/21/2007
© 2002 - Mike Murach & Associates,
2007 - HCC, IBM
12
Using GDG’s
Use AMS LISTCAT to list GDG information
//MM01LST
JOB (36512),'R
MENENDEZ',NOTIFY=&SYSUID
A DD statement
referring
to a data set by absolute
// generation
EXEC PGM=IDCAMS
number
//SYSPRINT DD
SYSOUT=*
//OLDMAST
DD
DSNAME=MM01.PAYROLL.MASTER.G0009V00,
//SYSIN
*
LISTCAT ENTRIES(MM01.PAYROLL.MASTER) //
DISP=OLD
GDG
ALL
/*
3/21/2007
© 2002 - Mike Murach & Associates,
2007 - HCC, IBM
13
Housekeeping
Syntax For The AMS DELETE GDG Command
DELETE entry-name
GDG|GENERATIONDATAGROUP
[ PURGE|NOPURGE ]
[ FORCE|NOFORCE ]
Deleting a GDG
//MM01DELG JOB (36512),'R MENENDEZ',NOTIFY=&SYSUID
//
EXEC PGM=IDCAMS
//SYSPRINT DD
SYSOUT=*
//SYSIN
DD
*
DELETE MM01.PAYROLL.MASTER GDG
PURGE FORCE
/*
3/21/2007
© 2002 - Mike Murach & Associates,
2007 - HCC, IBM
14
End Presentation
3/21/2007
© 2002 - Mike Murach & Associates,
2007 - HCC, IBM
15