The limits of 123 extents and 59 volumes for any one data set are both a result of the design of I/O-related system control blocks in the early 1960s for release 1 of OS/360, namely the TIOT and the DEB. VSAM was developed long after OS release 1 became GA, and until the advent of VSAM the limit of extents on any one volume was 16, which a quick study of the Format 1 and Format 3 DSCBs would explain. It seemed obvious to me that the Format 3 DSCB could easily point to another Format 3, but the software did not then support that. I had never done the math on the DEB and TIOT before to understand the real need for these limits, so I am thankful for these recent posts explaining the simple math.
VSAM supports 123 extents per data set on any one volume. I had always assumed that this was because of the design of some structure within VSAM's catalog, but now I see that is not the case. I had studied the IOB and DEB control blocks thoroughly before, and knew that a full 8-byte seek address (MBBCCHHR) in the IOB has a byte called M, which is the extent number within the DEB. I had always assumed that a DEB could have 256 16-byte DASD extents, but this was wrong. The real limit on any resource is always to be found in whichever control block or data structure has the most stringent limit on that resource, and I had ignored the DEB field indicating how many double words were in the DEB, which forces the much smaller limit of 123 DASD extents. By the way, the limit of 123 extents in any one DEB and 59 units (volumes) in any one TIOT entry do not refer to a data set, but rather to a DDname, and a DD statement can be concatenated with many different data sets involved. If you have a DEB whose DD statement has already reached the limit of 123 extents involving 123 different data sets with only one extent each, and then you wonder why you have a problem OPENing a DCB pointing to that DDname after one of those 123 data sets adds a second extent, it is because the DEB must now hold 124 extents, which is one too many. Bill Fairchild Rocket Software -----Original Message----- From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On Behalf Of William H. Blair Sent: Tuesday, August 31, 2010 9:57 PM To: IBM-MAIN@bama.ua.edu Subject: Re: 123 extents and VTOC fmt 3 Alan Starr wondered: > I have no idea why there is a limit of 59 volumes per dataset. That's 59 units (that is, UCBs or devices), which, for DASD data sets translates to 59 volumes. There is no such limitation for TAPE data sets, of course, since a tape drive can be reused for subsequent volumes of a multi-volume tape data set; they will be mounted in the correct/specified/cataloged sequence, naturally. The 59 device limit has to do with the size of a single entry in the TIOT. Each device entry is 4 bytes. 4*59=236, so one would suspect that must be a 1-byte TIOT entry length field somewhere. Voila! | 24 (18) 1 TIOELNGH - LENGTH, IN BYTES, | OF THIS ENTRY | (INCLUDING ALL DEVICE | ENTRIES) Since the length is 1-origin, and TIOT entries much be word-aligned, the maximum size DD entry is 256-4=252 bytes. Each DD entry, before the device entry(ies) contains 16 bytes. Hence, 252-16=236. 236/4=59. -- WB ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html