PDSE Workbench

Use PDSE Workbench to manage members of all PDS and PDSE data sets, including member generations.

Version 2 PDSE data sets support multiple levels, or generations, of members. For a PDSE to support member generations it must be created with these attributes:
  • Data set type of LIBRARY.
  • Data set version of 2.
  • Number of generations (MAXGENS) greater than zero.
For example, in JCL, this would be:
//PDSEV2   DD DSN=USER.PDSE2.FB80,DISP=(NEW,CATLG), 
//         DSNTYPE=(LIBRARY,2),MAXGENS=20, 
//         RECFM=FB,LRECL=80,BLKSIZE=0, 
//         UNIT=SYSALLDA,SPACE=(CYL,(10,10,1))
Note: A version 2 PDSE that is created with MAXGENS=0 will have the performance improvements of version 2 PDSE, but will not support member generations.

Terminology

Member generation
An earlier saved copy of a member.
Current member
The primary version of a member. By definition, the absolute and relative generation numbers for the current member are always zero.
Absolute generation number
The absolute generation number is a positive number, or 0 for the current member. The first generation created has an absolute generation of 1. The number increases as each new generation is created, even as older generations are removed:

GEN(n), GEN(n-1), GEN(n-2), …

Note: The absolute generation number for a member never changes. When a member generation is deleted, the absolute generation number is never reused. Even when a current member and all of its generations are deleted, information about the last absolute generation number is retained in the PDSE structure. If the member is recreated, member generations will continue from the next absolute generation number.
Relative generation number
The relative generation number is a negative number, or 0 for the current member. The most recent generation created will have a relative generation of -1, then -2, and so on. The relative generation numbers of a generation change as each new generation is created, or a member generation is deleted or recovered:

GEN(-1), GEN(-2), … , GEN(-n)

Generations
Generations can be referenced by either their absolute or relative generation number. Generations are only kept for primary members, not aliases. Alias information is retained with the generations.
Generation limit
The maximum number of generations to be retained for a member. The limit is set by the MAXGENS parameter when the version 2 PDSE is created and can be further constrained by system limit defined by MAXGENS_LIMIT in the IGDSMSxx parmlib member.
Note: The MAXGENS_LIMIT is a value in the range 0 to 2000000000 with a default value of 0 if not specified. This means, by default, member generations are not supported until the system programmer defines a value greater than zero for MAXGENS_LIMIT in the IGDSMSxx parmlib member.