The close function attempts to release unused tracks or cylinders
for a data set if all of the following are true:
- The SMS management class specifies YI or CI for the partial release
attribute, or you specified RLSE for the SPACE parameter in the DD
statement or RELEASE in the TSO ALLOCATE command.
- You did not specify TYPE=T on the CLOSE macro.
- The DCB was opened with the OUTPUT, OUTIN, OUTINX, INOUT or EXTEND
option and the last operation before CLOSE was WRITE (and CHECK),
STOW or PUT.
- No other DCB for this data set in the address space was open.
- No other address space in any system is allocated to the data
set.
- The data set is sequential or partitioned.
- Certain functions of dynamic allocation are not currently executing
in the address space.
For a multivolume data set that is not in extended format, or is
in extended format with a stripe count of 1, CLOSE releases space
only on the current volume.
Space also can be released when DFSMShsm is performing space management
or when an authorized program issues the PARTREL macro.
Space is released on a track boundary if the extent containing
the last record was allocated in units of tracks or in units of average
record or block lengths with ROUND not specified. Space is released
on a cylinder boundary if the extent containing the last record was
allocated in units of cylinders or in units of average block lengths
with ROUND specified. However, a cylinder boundary extent could be
released on a track boundary if:
- The DD statement used to access the data set contains a space
parameter specifying units of tracks or units of average block lengths
with ROUND not specified, or
- No space parameter is supplied in the DD statement and no secondary
space value has been saved in the data set label for the data set.
Changing a cylinder boundary extent to a track boundary extent
generally causes loss of the possible performance benefit of a cylinder
boundary. On the latest disk drives there is no performance benefit
of cylinder boundaries.