You can also OPEN a DCB to a data set allocated with zero space and with a 
system-created temporary data set name.  Not necessarily all types of DCBs, but 
I have done this in order to have a complete EXCP control block structure 
created (DEB, etc.) that I later manipulated for use with EXCP.  Yes, this was 
in an APF authorized program.

Bill Fairchild
Programmer
Rocket Software
408 Chamberlain Park Lane * Franklin, TN 37069-2526 * USA
t: +1.617.614.4503 *  e: [email protected] * w: 
www.rocketsoftware.com

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf 
Of Skip Robinson
Sent: Saturday, August 25, 2012 10:50 AM
To: [email protected]
Subject: Re: Space Allocation In Bytes

Zero space allocation is perfectly valid. As is SPACE (0,1) also. The result is 
just as requested. In either case, the data set exists in the VTOC but takes up 
no space on disk. The data set is treated as 'real', including GRS enqueue. 
Hence it can be used like any other exclusively held data set to serialize 
execution. 

.
.
JO.Skip Robinson
SCE Infrastructure Technology Services
Electric Dragon Team Paddler
SHARE MVS Program Co-Manager
626-302-7535 Office
323-715-0595 Mobile
[email protected]



From:   Paul Gilmartin <[email protected]>
To:     [email protected]
Date:   08/25/2012 08:27 AM
Subject:        Re: Space Allocation In Bytes
Sent by:        IBM Mainframe Discussion List <[email protected]>



On Wed, 8 Aug 2012 14:06:04 +0200, R.S. wrote:
> 
> .... BTW: your allocation request was
> illogical - you wanted to have 80-byte records and requested 1 byte.
> Such request has to be re-interpreted or canceled. ;-)
> 
As in:

    DD  LRECL=80,SPACE=(1,...),...

Seveal contributors argued that there was no way a 1-byte block
could be written if LRECL=80, and the construct should result in
an error.

The JCL RM says:

 
    blklgth -- (only if AVGREC is not coded)
        Specifies the average block length of the data, in bytes.
        The blklgth is a decimal number from 0 through 65535. 

Really!?  In fact by experiment, in JCL:

    DD SPACE=(0,1),...

and in TSO

    ALLOCATE AVBLOCK(0) ...

are both accepted without complaint.  I suppose allocation adds a
count and an IBG; divides track size by that; takes the ceiling and
requests the resulting number of tracks (almost certainly 1).  I have
little problem with that.  I haven't investigated whether SPACE=(0,99999)
allocates fewer tracks than SPACE=(1,99999).  It's possible that integer
arithmetic or 32-byte chunking gives the same result for both.

Perhaps I'll start coding SPACE=(0,1) in JCL to allocate minimal
data sets, just to startle readers.

-- gil


----------------------------------------------------------------------
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

Reply via email to