Chapter 4. SMS and its interactions with DFSMShsm
4.7 Automatic class selection
In addition to updating your automatic class selection (ACS) routines to ensure that the correct classes and groups are assigned to user data, you also need to ensure that DFSMShsm-owned data is managed correctly. For a description of the data sets that constitute DFSMShsm data, see 3.1, “DFSMShsm components” on page 30.
4.7.1 Coding for data that is owned by DFSMShsm and control data
Most data that is managed by DFSMShsm has names in fixed formats. These names can be used as filters in ACS routines to control the allocation of data sets.
The following filters are a starting point. The filters assume that the default high-level qualifier (HLQ) of hierarchical storage management (HSM) is used to manage DFSMShsm data sets. For more information and examples, see the DFSMShsm Implementation and Customization Guide, SC35-0418.
The first group of data sets is data that must be directed to non-SMS DASD. This data includes DFSMShsm backup and migration copies, VTOC copies, DUMP VTOC copies, and small-data-set packing (SDSP) data sets. See Example 4-1.
Example 4-1 Sample ACS filter list for non-SMS data FILTLIST &HSM_NONSMS_DATA_DSN
INCLUDE(HSM.SMALLDS.**,HSM.BACK.**,HSM.HMIG.**,HSM.MDB.**, HSM.VCAT.**,HSM.VTOC.**,HSM.DUMPVTOC.**)
The next set of data sets consists of the HSM CDSs. These CDSs must be DASD resident but can be SMS-managed or non-SMS-managed. See Example 4-2.
Example 4-2 Sample ACS filter for DFSMShsm CDSs
FILTLIST &HSM_CONTROL_DATA INCLUDE(HSM.%CDS.*, HSM.JRNL.* INCLUDE(HSM.%CDS.*,HSM.JRNL.*)
HSM logs are next. HSM logs include both the ARCLOG data sets and the HSM problem determination aid (PDA) data sets, and potentially data that is offloaded from these data sets. Again, these data sets can be SMS-managed or non-SMS-managed. If you decide that these HSM logs are not managed by SMS, they can be written to DFSMShsm ML1 volumes. Use the following sample ACS filter for DFSMShsm log data sets:
FILTLIST &HSM_LOG_DATA INCLUDE(HSM.EDITLOG?, HSM.HSMLOG*,HSM.HSMPDO.*)
If you are writing HSM activity logs to DASD by using SETSYS ACTLOGTYPE(DASD), the following filter manages the activity log output data sets. If these data sets are used, they can be either managed by SMS or not. See Example 4-3.
Example 4-3 Sample ACS filter for DFSMShsm activity logs FILTLIST &HSM_ACT_DATA_DSN INCLUDE
(HSMACT.H%.*.D*.T*)
The next filter is for CDS backups. See Example 4-4.
Example 4-4 Sample ACS filter for DFSMShsm CDS backup copies FILTLIST &HSM_BKCONT1_DATA_DSN INCLUDE
(HSM.%CDS.BACKUP.*, HSM.JRNL.BACKUP.*)
Chapter 4. SMS and its interactions with DFSMShsm 77
The last filter is for ABARs control files. See Example 4-5.
Example 4-5 Sample ACS filter for DFSMShsm ABARS CDSs FILTLIST &HSM_ABARS_DATA_DSN INCLUDE
(ABARS.*.INSTRUCT)
4.7.2 ACS execution for data that is managed by DFSMShsm
Coding is reviewed for user data, which is the data that DFSMShsm manages.
ACS environments
Execution of ACS routines in both the order that the routines are executed and the variables that are available for evaluation uses several environments. For a DFSMShsm environment, three ACS environments need to be considered. Other values for
&ACSENVIR
exist and are described in z/OS DFSMS Storage Administration Reference, SC35-7402. Each of these values is returned as a different value for the&ACEENVIR
ACS variable. The values are shown:ALLOC This value is the environment that is present when a data set is first allocated.
RECALL This environment is present when a data set is being recalled by DFSMShsm.
RECOVER This value exists when a data set is being recovered by DFSMShsm. If DFSMSdss is the data mover, ACSENVIR=RECOVER is passed to the storage group ACS routine for a data set recall.
For initial allocations, all of the data class ACS routine is executed, followed by the storage class routine. If no storage class is assigned, no further ACS routines are executed and the data set becomes non-SMS. If a storage class is assigned, the management class ACS routine is executed, followed by the storage group ACS routine. The management class ACS routine might assign a management class to a data set, but the storage group ACS routine must assign a storage group to a data set or the data set allocation fails. The class values that are set in previous ACS routines are available as read-only variables in subsequent routines. When ACSENVIR is RECOVER, the storage class ACS routine is executed first, followed by the management class, and then the storage group routines. The data class ACS routine is not executed.
We do not recommend adding special code for changing ACS execution that is based on ACSENVIR. Instead, we recommend that you redrive ACS routines and allow ACS constructs to be redetermined regardless of the ACS environment. This way, even if classes change over time if a data set is recalled or recovered, the data set is treated according to your current policies.
ACS design
Designing your ACS routines is beyond the scope of this book. However, if you have a robust data set naming standard, use it to provide a framework for the decisions in your ACS routines. You can use your data set naming standard as the basis of ACS FILTERLISTs in your ACS routines.
If you have no data set naming standard or an installation with many naming standards, it might be easier to assign default values to profiles by using RACF or an equivalent function and enable these defaults to be used by setting PARMLIB IGDSMSxx ACSDEFAULTS(YES).
This method requires additional administration because new RACF profiles need to be provided with an SMS segment with the appropriate STORCLAS and MGMTCLAS values. You use the values that are passed in DEF_MGMTCLAS and DEF_STORCLAS as input to the ACS routines. However, because no default storage group is assigned, you cannot use the assigned values in the storage group ACS routine.
Testing changes
Whenever you change your ACS environment, you must test the changes before you activate them. ISMF provides options to both generate and run test cases. For more information, see z/OS DFSMS Storage Administration Reference, SC35-7402, and Maintaining Your SMS Environment, SG24-5484.