Well, I had to go read this. Here is what it says in the DFSMS Using Data Sets Manual (z/OS 2.5) SC23-6855-50:

Data set organization of generation data sets

Generation data sets (GDSs) can be sequential, direct, or partitioned data sets. *If you use PDSs or PDSEs** **as generation data sets and you want to reference a member, you must reference the member using** **absolute data set names rather than relative names.* This is because MVS JCL does not support specifying both a relative name and a member name. To access a member of a generation data set that is a PDS or
PDSE using JCL, you must use an absolute generation name.

Example: When referencing a generation data set using JCL, it is common to use relative naming, as inA.B.C(0),A.B.C(+1), orA.B.C(-1). *If you want to access a member of a PDS or PDSE, you** **cannot use relative naming because there is no way to specify the member name in JCL. You can refer** **to a****specific****member of a PDS or PDSE that is a generation data set by using absolute names such as** **A.B.C.G0005V00(MEMBER)**, but JCL does not allow specifying****A,B.C(+5)(MEMBER)**.*

Restriction:

• Generation data sets cannot be VSAM data sets.
• *Note* that only z/OS systems at the V2R1 level or higher support GDSs that are PDSEs: – If you run a mixed sysplex anddefinea GDS PDSE on a system at the z/OS V2R1 level, but issue an access method service LISTCAT command on a system at a lower level, the command output will displaySTATUS---UNKNOWNfor deferred and rolled-off GDS PDSEs. In this case LISCAT command output will not display the DSNTYPE line for that PDSE. For an active GDS PDSE, the LISTCAT command output on a z/OS system below the V2R1 level displaysSTATUS--ACTIVEand no
DSNTYPE.

– If you roll-off an active GDS PDSE data set from a z/OS system at the V1R13 level or lower, the GDS PDSE becomes a rolled-off simple GDS. If you roll-in back the GDS from a z/OS system at the V2R1
level or lower, it becomes an active GDS (not an active GDS PDSE).

In both these cases, the data set can still be used as a PDSE, (it can be loaded with members) because
the PDSE indicator for the data set remains set.

Absolute generation and version numbers

An absolute generation and version number is used to identify aspecificgeneration of a GDG. The generation and version numbers are in the formGxxxxVyy, wherexxxxis an unsigned 4-digit decimal generation number (0001 through 9999) andyyis an unsigned 2-digit decimal version number (00
through 99). For example:

• A.B.C.G0001V00 is generation data set 1, version 0, in generation data group A.B.C. • A.B.C.G0009V01 is generation data set 9, version 1, in generation data group A.B.C.

While it is technically possible todefinean explicit generation of G0000V00, such adefinitionis discouraged because it can cause unpredictable results when deleting generation data sets using relative
generations.

The number of generations and versions is limited by the number of digits in the absolute generation name; that is, there can be 9,999 generations. Each generation can have 100 versions. To maintain relative order when the highest generation is 9999 and a new generation is added, the new generation is assigned a wrap flag. The wrap flag causes the new generation to behave as if it had 10,000 added to it. This causes the ordering to be correct when going from 9999 to 0001. Note: the next higher generation from 9999 is not 0000, it is 0001. When all of the generations in the generation index have the wrap flag set, the wrap flags are all turned off. For example if we have a generation index with 3 entries, and the generations are 9999, 0001, and 0002, with 0001 and 0002 having their wrap flags on, the order would be 9999, 0001, 0002. If a new generation is created, 0003, it also has the wrap flag set. The LIMIT causes the 9999 to be rolled off from the index. 0001, 0002 and 0003 all have the wrap flag set, so the wrap flag is turned off for all three generations. The order is still valid and is 0001, 0002, 0003. If a generation exceeds 2000 generations from the current generation, the wrap flag is not set. You should not create large relative generation gaps which can lead to order problems.

I think I get it. I think this might be done via SLCM trying to keep generations of source(?) -- Pure guess.

Steve Thompson

On 5/29/2023 7:47 PM, Steve Thompson wrote:
Charles:

I think you are quite rightly confusing GDG ops with PDSE Generations.

And, I have not read up enough on PDSE generations to know how one deals with this in JCL. I just know they exist, but I've not had the need to use them (unless it is pent up and one I now how will realize the utility... :) ).

Steve Thompson

On 5/29/2023 5:56 PM, Charles Mills wrote:
1. Is there any support in JCL or in ISPF for reading member generations? If I want to reference or browse a PDSE 2 member generation other than the latest, is it possible to do so? Am I just missing the doc somewhere?

2. Is this not an error or at least an illogical statement in the JCL reference? Under DSNAME - Cataloged data set name it says

dsname(member)
Specifies the name of the permanent partitioned data set (PDS) or the partitioned data set extended (PDSE), and the name of a member within that data set. If the member does not exist and DISP=OLD or DISP=SHR is specified, the allocation will succeed, but the job will fail when the data set is opened for input. If the member does not exist and the data set is opened for output, the system will add the member to the data set.

member
1 to 8 alphanumeric or national characters, or a character X'C0'. The first character must be alphabetic, national, +, or -. If the first character is + or -, the member is a part of a generation data group.

dsname(generation)
Specifies the name of a generation data group (GDG) and the generation number (zero or a signed integer) of a generation data set within the GDG.

That member description is not right, is it? If the first character is numeric, + or -, it's not a reference to a member of a PDS or PDSE at all -- it specifies a generation data set, right? Or is this support for member generations and I am not reading it correctly?

Also, member syntax has nothing to do with whether the dataset is cataloged, right? The syntax is exactly the same with a VOLSER reference or for a temporary dataset, right?

Charles

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to