This "Friday post" of an old MXG change documents a unique problem
with GDG wrapping, and the unwillingness of the IBM catalog technician
(a/k/a trench holder) to provide the documentation of their catalog
records back in 2005.
Maybe he was afraid that MicroSoft would offer a competing catalog product???
Barry
Change 23.219 The ICF Catalog 05 record variable GATGEN should have
VMAC6156 been input as &PIB.2., instead of one byte, and variable
VMACCTLG GATWRAP='Y' is now set if the first bit of GATGEN is on,
Aug 29, 2005 to mark that this GDG member has "wrapped"; i.e., its
generation number has exceeded 9999. If GATWRAP is on,
GATGEN=GATGEN-32768 to contain the correct Gen number.
This discovery was precipitated by IGD07001I ABENDs in
production, which occurred when a GDG that had GATWRAP
on for some members, and GATWRAP off for others, when
that GDG generation number goes from 999 to 1000.
Normally, when all members of a GDG have wrapped, the
next catalog action turns off the wrap bit in all of
the catalog records. For a "normal" GDG, that should
happen when the +256th gen is created after wrap, as
only 255 members can exist in the catalog. But this
site had had a very old application that originally
created +1 thru +5 each day, and then deleted +1 thru
+4, leaving only +5 in the catalog. However, back when
Clinton was President, an application change was made
that created only +1 thru +3 and deleted only +1 and +2,
so there were 2 old GooooVoo's left in the catalog.
When the GDG wrapped, and when the create of +1 would
have created G1000V00, those old GooooVoo's still had
their wrap bit off, and the production job failed:
IGD07001I; GDG ROLL IN ERROR - RETURN CODE 140 REASON 122
Return Code 140:
Inconsistent or conflicting arguments were provided.
Reason Code 122:
Catalog G1000Vxx will cause the GDG to exceed the
limit of 10,999.
Programmer Response:
Clean up the GDG in error then catalog G1000Vxx.
The site found Information APAR II07276, which explained
how wrap works, but it says to 'see the "Z" page for
internal details of the wrap bit interface'.
So the site asked IBM Support: "We need to identify other
GDGs that have the same exposure to causing ABENDs. Can
I look at the 'Z' page? Does the 'wrap bit' appear in
SMF 61, 65, 66 ICF Catalog records?"
IBM Level 2 Catalog Support refused to answer the quite
valid question, with this answer:
"Unfortunately, the 'Z' page in our info APARs refer to
information meant for IBM eyes only, for helping us get
to problem determination quicker. We are not at
liberty to discuss any control block internals that are
not provided in our published manuals. As for
information in SMF records relating to this, this info
would be included in the updated record portion
of the SMF record, however we cannot discuss offsets
for those either. I am sorry I cannot be more helpful.
Please let me know if there are any other questions
that I can answer for you."
Even escalation to my IBM Poughkeepsie z/OS support did
not convince IBM Level 2 Catalog Support to identify
which bit is the "GATWRAP" bit. The ICF Support and
Developers hid behind "OCO", Object Code Only, as the
reason they could not provide catalog record
documentation (but DSECTS are NOT CODE!).
So I suggested the site could create a GDG and force it
to wrap, and by examining SMF records, we concluded that
first bit of GATGEN was the GATWRAP bit.
Then, I remembered I still had lots of archaic printed
manuals, and located the very old "MVS/XA Catalog
Diagnosis Reference for DFP Release 1.2", which confirmed
that the GATWRAP bit was indeed the first bit of the
GATGEN field in the 05 Catalog Record!
-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf
Of Rob Schramm
Sent: Friday, October 25, 2013 12:36 AM
To: [email protected]
Subject: Re: GDG question
Phil,
AFAIK, the whole GDG assignment only happens once.. during initial creation.
MODing will change the size of the data set.. not the GooooVoo number(s). With
SMS a new GDG entry gets rolled in at step end.
Most everything you need to know is in "Chapter 29. Processing Generation Data
Groups" of the "DFSMS Using Data Sets" book.
The link is
http://pic.dhe.ibm.com/infocenter/zos/v1r13/index.jsp?topic=%2Fcom.ibm.zos.r13.idad400%2Fch14.htm
The only thing I didn't see in there is a detailed explanation of the GDG
roll-over when counting past 99999 generations. There are a couple of old
APARS that go into great detail on how the process works and what to expect.
Rob Schramm
Rob Schramm
Senior Systems Consultant
Imperium Group
On Fri, Oct 25, 2013 at 12:25 AM, Phil Smith <[email protected]> wrote:
> Apologies for the naïve question, but I spent some time Googling and
> reading and didn't find a clear answer to this.
>
> We have a data set that gets fetched from the network and changes
> occasionally. I'd like to untie this update from normal operation-that
> is, on the off-chance that the network is down at the precise instant
> that we check for the data set, I'd like things to continue operating.
> So I'm thinking that if we cache a copy of the data set on disk (the
> contents aren't sensitive), we could try to fetch; if we can't fetch,
> we shrug and continue; if we can, we compare the data read with the
> existing data (there's a timestamp) and only rewrite if it's changed.
>
> But the data is also shared across tasks, so we don't want a window
> where it's half-written and some task tries to read it.
>
> A GDG seems like it would work great for this: the number of
> generations could be defined as low as two, so the update would write
> the "other" copy, and the next time one of the tasks tries to read it,
> it would get the newer one.
>
> So here's my question (aside from the obvious one of "Am I missing
> something above that makes this dumb"):
>
> If a jobstep runs with a DD for a GDG that's got DISP=MOD, and the
> jobstep reads but never tries to write the file, does a new,
> zero-length GDG get created? I'm of course hoping the answer is "No".
>
> Thanks,
> --
> ...phsiii
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions, send
> email to [email protected] with the message: INFO IBM-MAIN
>
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to
[email protected] with the message: INFO IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN