If you allocate a data set
using the TSO/E ALLOCATE command and
you do not explicitly specify space requirements, then &SIZE and &MAXSIZE
do not contain the correct values. Instead they both contain a value
of zero. If your ACS routines rely on the values of &SIZE or &MAXSIZE
in this situation, the data set might be assigned to the wrong class
or group.
For a VSAM data set definition, the &SIZE and &MAXSIZE
read-only variables reflect the space value specified in the CLUSTER
component. If one is not specified in the CLUSTER component, then
the space value specified in the DATA component is used. If a space
value also is specified for the INDEX component and it
is of the same type of space unit; for example, both are in tracks,
cylinders, KB or MB, it is added to what was specified for the DATA
component. If the INDEX component space unit is not of the same type
as specified for the DATA component, it is ignored and not added to &SIZE
or &MAXSIZE. For DFSORT work data sets, &SIZE and &MAXSIZE
are zero. In the RECALL environment, &SIZE and &MAXSIZE are
zero for empty partitioned data set and PS data sets because the size
of the existing data set is not known at the time that DFSMS runs
its ACS routines.
As input to data class ACS routine, &SIZE
and &MAXSIZE
are calculated from space information from JCL or IDCAMS, as follows:
- For non-VSAM data sets:
- &SIZE = P + Directory (if any).
- &MAXSIZE =
P + (S*15) + Directory (if any).
- For VSAM data sets:
- &SIZE = P.
- &MAXSIZE = P + (S*254).
After data class is derived by the data class ACS
routine, &SIZE and &MAXSIZE are recalculated depending on
whether Extent Constraint Removal is specified or not in the selected
data class before calling subsequent data class routines, as follows:
- For non-VSAM data sets, if no space is specified on JCL,
then the space values defined in the selected data class are used
to recalculate &SIZE and &MAXSIZE as follows:
- &SIZE = P + Directory (if any).
- &MAXSIZE =
P + (S*15) + Directory (if any).
- For VSAM data sets,
regardless whether space is specified or not, &MAXSIZE
is recalculated depending on the specification of Extent Constraint
Removal attribute as follows:
- If Extent Constraint Removal = NO, then &MAXSIZE = P +
(S*122)*volcnt.
- If Extent Constraint Removal = YES, and the
ADD' '1 Volume
Amount in Data Class = P, then &MAXSIZE = ((P+S*122))*volcnt.
- If Extent Constraint Removal = YES, and the ADD' '1 Volume
Amount in Data Class = S, then &MAXSIZE = ((P+S*122)) + ((S*123)*(volcnt-1)).