DSF SMS RESTORE Examples
The following are examples of DSF restores on a system that has System Managed Storage (SMS) active. They illustrate the techniques for restoring SMS-managed data sets, or a combination of SMS and non SMS-managed data sets. An output data set is SMS-managed if the SMS Storage Class Automatic Class Selection (ACS) routine assigns a storage class to the data set or if it accepts the storage class passed to it by DSF. ACS routines are coded by each installation, so the decision on whether a data set is to be SMS-managed is a local one, and is usually out of the control of DSF (and the end-user).
All examples in this section are found in the JCL library installed with FDR. The member names are EX2013x.
Restore SMS-managed data sets example
Restore a group of SMS-managed data sets from several backup data sets. The data sets retain the SMS data class that they had when dumped. Any data sets that are currently cataloged are restored on top of their current allocation, with their original storage and management classes. For any data sets that must be allocated, their original SMS storage and management classes are passed as input to the SMS ACS routines, which may override them; SMS then selects a storage group and a volume. If SMS assigns a null storage group (non SMS-managed) to any data set, that data set is restored as non SMS-managed to the volume from which it was dumped.
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//TAPE1 DD DSN=BACKUP.SMS001,DISP=OLD
//TAPE2 DD DSN=BACKUP.SMS002,DISP=OLD
//TAPE3 DD DSN=BACKUP.SMS003,DISP=OLD
//SYSIN DD *
RESTORE TYPE=DSF
SELECT DSN=ABC**
/*
Restore non SMS-managed data sets to SMS-managed volumes example
Restore a group of non SMS-managed data sets from an FDR or DSF backup tape. Any data sets that currently exist on the volume designated by DISK1 is restored on top of their current allocation. All other data sets are passed to the SMS ACS storage and management class routines. If SMS assigns a storage class, SMS then selects a storage group and a volume; the data sets do not have a data class. If SMS assigns a null storage group (non SMS-managed) to any data set, it is allocated and cataloged as non SMS-managed on the DISK1 volume, which must be a non-SMS volume.
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//TAPE1 DD DSN=BACKUP.PROD01,DISP=OLD
//DISK1 DD UNIT=SYSALLDA,VOL=SER=PROD02,DISP=OLD
//SYSIN DD *
RESTORE TYPE=DSF
SELECT DSN=*.CICS*.**
SELECT DSN=XYZ.**
/*
Override SMS classes example
Restore a data set from a backup data set and request that the data set be SMS-managed; the original data set might be SMS-managed or not, but it is not currently cataloged. The values specified for STORCLAS= and MGMTCLAS= are passed to the SMS ACS storage and management class routines, which may override them. If SMS assigns a storage class or accepts the class passed, SMS then selects a storage group and a volume. If SMS assigns a null storage group (non SMS-managed) to the data set, it is restored to the volume from which it was dumped (unless that volume was SMS-managed, since a non SMS-managed data set cannot be restored to a SMS-managed volume).
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//TAPE1 DD DSN=BACKUP.PROD01,DISP=OLD
//SYSIN DD *
RESTORE TYPE=DSF
SELECT DSN=PROD.MASTER.FILE,DATACLAS=MASTER,
MGMTCLAS=PERM,STORCLAS=PROD2
/*
Restore to Non-SMS volume example
Restore a data set from a backup data set and request that the data set be non SMS-managed; the original data set might be SMS-managed or not. NULLSTORCLAS specifies that a null value is passed to the SMS ACS storage class routine, which may override it. If SMS honors the null storage group, it is restored to the non-SMS volume TSO123; no SMS classes are associated with it. If SMS assigns a storage class, SMS then selects a storage group and a volume.
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//TAPE2 DD DSN=TEST.BACKUP.SMS123,UNIT=TAPE,
// VOL=SER=B00123,DISP=OLD
//SYSIN DD *
RESTORE TYPE=DSF,RECAT
SELECT DSN=USER01.ISPF.ISPPROF,NULLSTORCLAS,NVOL=TSO123
/*
Bypass automatic class selection routines example
An authorized user (such as a storage administrator) may need to bypass the SMS ACS routines, to force a data set to be SMS-managed or non SMS-managed, and to specify the SMS classes to be used. In the example, TEST.DATASET1 is unconditionally assigned the specified SMS classes; SMS then selects a storage group and a volume. TEST.DATASET2 is forced to have a null storage class, so it is allocated as non SMS-managed on the volume indicated by DISK1. See BYPASSACS for authorization requirements.
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//TAPE1 DD DSN=BACKUP.TEST01,DISP=OLD
//DISK1 DD UNIT=SYSALLDA,VOL=SER=TEST03,DISP=OLD
//SYSIN DD *
RESTORE TYPE=DSF,BYPASSACS
SELECT DSN=TEST.DATASET1,MGMTCLAS=TESTDS,STORCLAS=TEST
SELECT DSN=TEST.DATASET2,NULLSTORCLAS
/*
Bypass SMS allocation example
An authorized user (such as a storage administrator) may need to force the allocation of SMS-managed data sets onto specific volumes; normal SMS facilities do not allow you to do so, but DSF does. Each data set selected is passed to the SMS Storage Class and Management Class ACS routines; each data set to which SMS assigns a storage class is allocated and cataloged on the volume indicated by DISKA; this volume MUST be an SMS-managed volume. Any data set that does not get a storage class assigned is not restored, since only SMS-managed data sets may be allocated on a SMS-managed volume. See BYPASSSMS for authorization requirements.
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//TAPEA DD DSN=BACKUP.DEVEL.FILES,DISP=OLD
//DISKA DD UNIT=SYSALLDA,VOL=SER=SMS123,DISP=OLD
//SYSIN DD *
RESTORE TYPE=DSF,BYPASSSMS
SELECT DSN=DEVEL**
/*