Thursday, February 9, 2012

GDG - A Basic Introduction


Introduction
  • GDG stands for Generation Data Group. Here a group of files are related functionally or chronologically and can be accessed individually or as a group. These files share a unique name.
  •  Every dataset in a GDG has a Generation number and version number. Eg.TESTGDG.DATA.G0001.V00
  • Subsequent files are named by incrementing the Generation number(G0001-G9999).
  • The current generation is referred a 0. The next generation as +1 an previous generation as -1
  • Every time a new gen is created, it becomes the current gen and the current gen becomes the previous generation.
  • All generations must be cataloged to keep track of the relative generation  numbers
  • Maximum number of versions for a GDG is 255.
  • Each generation can have same or different DCB parameters.
Why We Need IT:
  1. Record keeping
  2. Easy to relate data sets
  3. Auto deletion of outdated datasets
  4. No need to change the JCL every time.
How to define a GDG :
To use the GDG we have to define the GDG base / index.

//STEP10 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
            DEFINE GDG(NAME(TESTGDG.DATA.GDG) -
            LIMIT(10) -
            NOEMPTY -
            SCRATCH)
/*

Where,
  • GDG name can range from 1-44
  • LIMIT can range from 1-255

Various Other Options: 

Empty Vs NoEmpty
Empty:-This option will delete all the older generations if the limit of generations is reached
Example: If a GDG is defined with a limit of 10 and 11th generation is created then all the old 10 generations are deleted and the 11th generation is created.
NoEmpty:- This option will delete the oldest generation if the limit of generations is reached .
Example: If a GDG is defined with a limit of 10 and 11th generation is created then the 1st  generation is  deleted and the 11th generation is created.

Scratch Vs NoScratch

Scratch:-This option will delete the generation completely if the dataset is deleted. 
NoScratch-> This option will uncatalog the dataset if the dataset is deleted.

Creating a GDG version:
GDG version can be created in same JCL by giving +1 to the GDG base name.
STEP1   EXEC PGM=IEFBR14                                 
INFILE  DD  DSN= TESTGDG.DATA.GDG (+1),   
        DISP=(NEW,CATLG,DELETE),                         
        UNIT=SYSDA,                                      
        SPACE=(CYL,(200,200),RLSE),                      
       DCB=(LRECL=2700,BLKSIZE=0,RECFM=FB)                
                                                         
Altering a GDG:
We can also change the attributes of a GDG using the ALTER keyword.
//STEP1   EXEC PGM=IDCAMS                      
//SYSPRINT DD SYSOUT=*                         
//SYSIN    DD *                                
    ALTER TESTGDG.DATA.GDG  NOSCRATCH     
/*                                             
Deleting a GDG generation:
//STEP1   EXEC PGM=IEFBR14                    
//DL       DD  DSN=TESTGDG.DATA.GDG(+1),      
//         DISP=(OLD,DELETE,DELTE)            
/*      
Deleting a GDG base /Index:
Two parameters for deleting the base .
1.PURGE:    Object will be deleted regardless of the expiration date.   
//SYSIN    DD  *                  
   DELETE TESTGDG.DATA.GDG PURGE    
2.FORCE: Object will be delete even though it is not empty.   
//SYSIN    DD  *                  
   DELETE TESTGDG.DATA.GDG FORCE


No comments:

Post a Comment