Except that cataloging can't be separated from the act of allocating in
the case of SMS-managed data sets, which are required to be cataloged
regardless of what the allocation DISP may specify. One would hope that
these days this would include all but selected system-level data sets,
so the typical user should no longer see allocation and cataloging as
separately controllable events.
In order to be validly defined, an SMS-managed data set requires
mutually consistent metadata in the volume TTOC, in the volume VVDS, and
in the catalog. While I haven't done any detailed system event
tracking, it makes logical sense that all three of these pieces would be
have to be created as part of the process of allocation to minimize the
exposure to an incomplete definition.
Also, at some point (within the last decade?) allocation of an
SMS-managed sequential data set began allocating the data set in a state
where an initial read returns an immediate EOF rather than random old
track data. It is no longer necessary for some program to explicitly
OPEN such a data set for output for cases where the file should contain
0 records, and unlike the old days the file is no longer in an undefined
state until the first write after allocation.
JC Ewing
On 04/08/2011 02:57 PM, Bill Fairchild wrote:
Closer, but still no gold-plated cigar.
Cataloging a data set means writing metadata into a catalog (a specific type of
system data set) to describe the volume(s) on which another data set is
allocated.
Allocating a new data set means writing metadata into a VTOC (Volume Table of
Contents) on a volume which is to contain the data set. The metadata
represents where on that volume the data set is to be found. At this point,
there is still no new data within the data set.
The process of writing data into the data set does not have a specific name in
IBMology, as far as I know.
In my opinion, the data set is not fully created until some program begins
writing new data onto the tracks which have been previously reserved to hold
that new data through the process known as allocation of a new data set.
Cataloging a data set can occur when it is allocated or years later.
Populating new data into an allocated data set can occur immediately after the
data set is allocated as new or years later.
I saw an IBM training video in the mid-1970s in which an IBM trainer used the word "tabulation" to mean the act of
writing new metadata into a VTOC to describe a new data set. Nobody uses "tabulate" anymore. Unfortunately, the word
"allocate" today has more than one meaning. Many use it to mean reserving space on a volume for a new data set (the
same as tabulating). But from the viewpoint of JCL or the dynamic allocation SVC, to allocate a data set merely means to
construct the system control blocks that allow a program to access that data set, either by reading from it, writing into it, or
both. The space on a volume to hold the data set will not be reserved unless the allocation has the parameter "NEW".
If the type of allocation is other than NEW, then it is assumed that the data set has already been "tabulated", or had
VTOC entries built to describe its whereabouts on the volume.
And "creation" of a data is perhaps the most ambiguous term of all.
Bill Fairchild
Rocket Software
-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf Of
Scott Ford
Sent: Friday, April 08, 2011 1:21 PM
To: [email protected]
Subject: Re: DATACLASS
I realiaze the BR14 doesnt really 'do anything' , but with JCL
Shmuel:
I realiaze the BR14 doesnt really 'do anything' , but with JCL attached to it
with a disp=new,catalog, I assume that an entry is created in the catalog and
the actual dataset is created by the allocating program . Correct ?
Scott J Ford
________________________________
From: Shmuel Metz (Seymour J.)<[email protected]>
To: [email protected]
Sent: Fri, April 8, 2011 12:39:38 PM
Subject: Re: DATACLASS
In<000001cbf379$98b4cfd0$ca1e6f70$@[email protected]>, on
04/05/2011
at 03:09 AM, Ron Hawkins<[email protected]> said:
I'm not so sure. Based on what I think is Shmuel's logic, no JCL
dataset is allocated by a PGM because allocation occurs before PGM
Fetch.
The Initiator is a program. It's just not the program in the relevant EXEC
statement.
--
Shmuel (Seymour J.) Metz, SysProg and JOAT
ISO position; see<http://patriot.net/~shmuel/resume/brief.html>
We don't care. We don't have to care, we're Congress.
(S877: The Shut up and Eat Your spam act of 2003)
----------------------------------------------------------------------
...
--
Joel C. Ewing, Fort Smith, AR [email protected]
Bentonville, AR [email protected]
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html