Oddly, perhaps, member generations was one topic in my last SHARE pitch as well.

Interactively, you can use the M line command in ISPF OPT3.4 to get a member list. Selecting a member from the member list with the E line command *and* using a slash (/) in the prompt column for the member will let you select a different generation. OPT 3.2 tells you how many genrations there are.

In addition to the ISPF services you've found, there is more information here for...

Enablement: z/OS Initialization and Tuning, in the documentation about member IGDSMSxx

Allocating a data set in JCL: See the MAXGENS and REFDD parameters of the DD statement in z/OS MVS JCL Reference

Programming services: See z/OS DFSMS Macro Instructions for Data Sets

Preserving member generations on unload and copy operations: See z/OS DFSMSdss Storage Administration

Recovering a prior member using ISPF: See z/OS ISPF User's Guide Vol I

...it looks as though DESERV comes closest to what you want with GET_G (retrieves all the generation information for a single member of a PDSE) and GET__ALL_G (retrieves all the generation information for all the members of a PDSE). I don't know if they return what you're after, but the area returned is mapped by DESB DSECT in the IGWDES macro according to z/OS DFSMS Macro Instructions for Data Sets.

HTH.

Dyck, Lionel B. , TRA wrote:
Working with PDSE V2 generations can be a challenge since IBM does not fully 
support them.  True they have made them available for us to use but they have 
not made it easy.  ISPF supports them in a very minimal way and not intuitively.

An excellent presentation was given at SHARE in Seattle in 2015 by Thomas Reed 
which provided an example of how to list generations.  The approach is 
basically to:


1.      Use dsinfo to get the number of generations allowed (zdsngen)

2.      Lminit and then lmopen the pdse

3.      In a loop using the zdsngen as the limit

a.      Edit the dataid - member - gen# using a macro

                                                               i.      The 
macro just does a cancel to end

b.      Test the return code for < 5 and if so then you've found a generation

The challenge that I've discovered is that zdsngen limit is like a gdg limit - 
that is the number of generations allowed but the gen number, like a gdg 
number, can grow beyond the limit as it does not wrap.

Has anyone stumbled across a better way to find the member generations?

Using the loop process I've found you have to do an almost infinite limit, or 
set it fairly high or you risk missing a generation or 100. And the overhead of 
the edit isn't trivial.

<snip>

--
John Eells
IBM Poughkeepsie
[email protected]

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to