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