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

Reply via email to