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
