Determining the storage class, management class, and data class

Determination of the SMS classes associated with the data set depends on whether SMS is active, whether the target data set exists, and whether FORCENONSMS is specified.

When SMS is not active

When SMS is not active, any data set that currently exists and is SMS-managed or that was SMS-managed when it was backed up or dumped cannot be processed unless FORCENONSMS is specified on the RECOVER command. For a discussion of using the FORCENONSMS parameter, see Recovering specific data sets.

When SMS is active and the target data set exists

If the target data set exists, DFSMShsm uses the storage class, management class, and data class from the catalog entry as the SMS classes to be associated with the recovered data set.

When SMS is active and the target data set does not exist

If the target data set does not exist, DFSMShsm invokes the ACS services of DFSMSdfp to determine the SMS classes to be associated with the recovered data set. In invoking ACS services, DFSMShsm passes to the ACS routine of DFSMSdfp any of the following that are available:
  • The name of the data set.
  • The name of the storage class associated with the data set when the data set was incrementally backed up.
    No storage class is passed if one of the following is true:
    • The data set was not SMS-managed when it was incrementally backed up.
    • A physical dump copy is being explicitly recovered because you specified FROMDUMP or FROMDUMP(DUMPVOLUME(volser)).
    • The data set does not have an incremental backup version.
    Note: If the data set was SMS-managed when it was physically dumped, and your ACS storage class routine expects DFSMShsm RECOVER to provide the storage class in effect when the data set was dumped, the data set may be filtered as non-SMS-managed, and the recovery may fail with an “unable to recover a non-SMS-managed data set to an SMS-managed volume” error. If this occurs, use FORCENONSMS or TOVOLUME to recover the data set to a non-SMS-managed volume.
  • The name of the management class associated with the data set when the data set was incrementally backed up. No management class is passed if one of the following is true:
    • The data set used the default management class when it was incrementally backed up.
    • The data set was not SMS-managed when it was incrementally backed up.
    • A physical dump copy is being explicitly recovered because you specified FROMDUMP or FROMDUMP(DUMPVOLUME(volser)).
    • The data set does not have an incremental backup version.
  • The name of the data class associated with the data set when the data set was incrementally backed up. No data class name is passed if one of the following is true:
    • The data set had no data class when it was incrementally backed up.
    • The data set was not SMS-managed when it was incrementally backed up.
    • A physical dump copy is being explicitly recovered because you specified FROMDUMP or FROMDUMP(DUMPVOLUME(volser)).
    • The data set does not have an incremental backup version.
  • The volume serial number specified with the TOVOLUME parameter in the request or the volume serial number and unit type of the volume where the data set originally resided.
    Note: If your storage class ACS routine checks for a valid DASD unit name, be sure to include any unit names that may have existed in your installation at one time and are no longer in use, because the data set could have resided on such a unit when it was backed up.
  • An environment indicator of RECOVER.
  • The RACF® user ID and group ID for non-DFSMShsm-authorized users.
  • The data set size in KB.
  • The data set expiration date.
  • A generation data group indication.
  • The data set organization.
  • The record organization for VSAM data sets.
ACS services returns the SMS class names to be associated with the recovered data set. If ACS services does not return a storage class name, the data set is not SMS-managed and is recovered as a non-SMS-managed data set.