In my PROC, I have specified a new file VB file with SPACE parameter as (CYL,(400,250),RLSE). Now, this file should be allocated with maximum 400 + (250*15) = 4150 Cylinders.
But when this file is allocated, it is allocated with 5,243 Cylinders. Also, this file is allocated on multiple volumes (2 volumes). The Data Class of this file is also 'LARGE'. I didn't mention Dataclass anywhere in PROC. Also, its properties say it has used 1st extent cylinders: 835,
Secondary cylinders : 250.
How this SPACE has been calculated here? How the multiple volumes are allocated? Does it mean that the job will not abend of size is more that 4150 cylinders?
Joined: 06 Jun 2008 Posts: 8279 Location: Dubuque, Iowa, USA
When allocating on multiple volumes [UNIT=(SYSDA,3) for example], each volume, when required, will allocate the primary space followed by up to 15 secondary extents, or potentially 8,300 cylinders on two packs -- 12,450 on three packs, and so forth. If you have 5,243 cylinders allocated then at some point the data set exceeded 4,150 cylinders (obviously), so you will not get an abend if it goes over 4,150 cylinders.
Multi-volume allocation can be complex, depending upon SMS rules, and you would be wise to consult with your site support group for more information about how things work at your site.
But in my case I have not allocated UNIT parameter in my PROC/JCL, then how will it understand to use more than cylinders than specified?? I can see multiple volumes are allocated for the file created.
what is the use of SPACE here if it takes more than maximum cylinders specified in PROC.
Depending on the Dataclas attributes defined you will get different results so you need to talk to your Storage Admin people, or look at your Dataclas definitions via ISMF option 4.
The SMS ACS routines Storage Admin maintain can automatically assign a Dataclas to your dataset at allocation time. Sounds like in this case the ACS routines check the size of your allocation and assign the LARGE Dataclas which probably has an Initial Volume Count of more than 1, hence your allocation over multiple volumes.
If the Dataclas provides Extended Format it can have up to 123 extents per volume (up to max 59 volumes) and can exceed the 65k tracks limit per volume of non-Extended Format datasets. If Space Constraint Removal is active for the Dataclas it can also dynamically add further volumes if required.
You might also want to check you're getting System Determined Blocksize (SDB). If you don't code BLKSIZE or code BLKSIZE=0 in your JCL you will get SDB which provides the best BLKSIZE, and this can make a big difference to your allocation size.
Also, if your dataset extended to an extra volume the total could potentially be 800+250x(15x2) = 8300 (or even 800+250x(123x2) = 62300 if EF) depending on the Dataclas setting for 'Add'l Volume Amount' which decides if Primary or Secondary space is first taken on additional volume extends.