Question

I am new to mainframe world and trying to work it up but unable to get one thing that how are extents allocated in data sets.

And please can someone explain it using an example or answer this question

Suppose there is a sequential data sets where primary and secondary are both allocated 1 track. How many times can this data set request for extent ? Is the extent allotted to both primary and secondary or only secondary?

And one last question

How does setting or not setting guaranteed space attribute in storage class effects the no of extents that can be requested ?

Thank You

Was it helpful?

Solution

Sequential Data Allocation

A sequential data set with primary and secondary of 1 track each will be able to have 16 extents if it is allocated with one volume

//stepname EXEC PGM=IEFBR14  
//ddname   DD   DSN=dataset,
//     DISP=(NEW,CATLG),   
//     UNIT=SYSALLDA,SPACE=(TRK,(1,1))
/*

The above will allocate a dataset that can be 16 tracks big if extend by being written too.

If you replace SYSALLDA with (SYSALLDA,2) it will be able to use 2 volumes so can be 32 tracks of size across 2 volumes

The number of volumes can be overridden by the DATACLASS which can be assigned to an SMS managed datasets

Guaranteed space

Guaranteed space allows you to specify the actual volumes that a dataset will be allocated on when the allocation is SMS controlled, normally SMS will pick the volumes based on the ACS routines

The below jcl will allocate dataset on volume VOL001 if storage class has the DCGSPAC attribute

//stepname EXEC PGM=IEFBR14  
//ddname   DD   DSN=dataset,
//     DISP=(NEW,CATLG),vol=ser=VOl001,   
//     STORCLAS=GSPACE,
//     UNIT=SYSALLDA,SPACE=(TRK,(1,1))
/*

Normally the SMS routines are coded so that only specific users or jobs are allowed to use storage classes with Guaranteed Space

Explanation of Storage Class

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top