SMS ACS support with DFSMSrmm
With DFSMSrmm you can use your SMS ACS routines to select a specific scratch pool and storage group to be assigned to create new data on tape, and set a management class to retain and move a data set on tape. You move your policy and scratch pool decisions to your SMS ACS routines. For non-system managed tapes, DFSMSrmm calls the ACS routines to allow a management class and storage group assignment. For SMS-managed tapes, SMS calls the ACS routines directly.
To enable DFSMSrmm ACS support, you must have the SMS subsystem active and have a valid SMS configuration. With OS/390 V2R10 or later, SMS ACS routines are always called by DFSMSrmm if you have a tape mount outside a SMS-managed tape library.
EDGRMMxx OPTION subparameters
ACS processing for non-system managed tapes can be tailored by the PARMLIB member EDGRMMxx OPTION subparameters PREACS and SMSACS.
PREACS
Specify the PREACS operand to control whether DFSMSrmm-supplied values and EDGUX100 installation exit-supplied values are input to SMS pre-ACS processing:
NO Specify NO to avoid DFSMSrmm pre-ACS processing using the DFSMSrmm EDGUX100 installation exit.
YES Specify YES to enable DFSMSrmm pre-ACS processing using the DFSMSrmm EDGUX100 installation exit.
SMSACS
The scratch pooling and policy assignment rules are per default coded in EDGUX100 user exit. You can move your decisions to the SMS ACS routines, where you can use ACS input variables as a base for the management class and storage group assignment:
NO Specify NO to prevent DFSMSrmm from calling the SMS ACS processing to obtain management class and storage group names. DFSMSrmm system-based scratch pooling, and VRS management values based on the EDGUX100 installation exit are used.
YES Specify YES to enable DFSMSrmm calls to the SMS ACS processing to obtain management class and storage group names. If values are returned by the SMS ACS routines, the values are used instead of the DFSMSrmm and EDGUX100 decisions.
Recommendation: We recommend that you move pooling decisions and VRS management value assignment out of the EDGUX100 user exit. Do not implement PREACS processing, and do not use the EDGUX100 user exit except for the following reasons:
- Cartridge loader control (ACL)
- Data set recording
- Sticky label customization
- Request ignore of volumes
How it works
Use ACS routines for scratch pooling based on tape storage group names. Using ACS processing to set a storage group name overrides all other pool selection methods. DFSMSrmm provides support for non-system-managed tape and for system-managed manual tape libraries. This support enables pooling at the individual volume level. You assign a storage group name to each volume by using DFSMSrmm TSO subcommands, or by using pooling information that you define with the DFSMSrmm EDGRMMxx PARMLIB VLPOOL command. DFSMSrmm calls ACS routines passing environment information, including the pool identified by DFSMSrmm system-based pooling. The ACS routine can optionally set a storage group name, which overrides the DFSMSrmm system-based pool.
ACS support for non-system managed volumes
In a non-system-managed library, DFSMSrmm supports SMS ACS routines in different ways:
- DFSMSrmm will directly call the ACS routines if you have specified SMSACS(YES) in the EDGRMMxx PARMLIB member to allow a management class and storage group to be assigned. Use ACS routines for scratch pooling based on tape storage group names. Using ACS processing to set a storage group name overrides all other pool selection methods. DFSMSrmm provides support for non-system-managed tape and for system-managed manual tape libraries. This support enables pooling at the individual volume level. You assign a storage group name to each volume by using DFSMSrmm TSO subcommands, or by using pooling information that you define with the DFSMSrmm EDGRMMxx PARMLIB VLPOOL command. DFSMSrmm calls ACS routines passing environment information, including the pool identified by DFSMSrmm system-based pooling. The ACS routines can optionally set a storage group name, which overrides the DFSMSrmm system-based pool.
- You can use the EDGUX100 user exit to call SMS ACS routines to assign a VRS management class value and a scratch pool if you have specified PREACS(YES). Use pre-ACS processing to obtain the DFSMSrmm system-based pool or the EDGUX100 installation exit pool prefix as an input value to the ACS routines in the MSPOOL read-only variable. During pre-ACS processing, DFSMSrmm does not make the RMMPOOL environment call to the ACS routine. During pre-ACS processing for new allocations:
- DFSMSrmm uses the VLPOOL definitions to select a default DFSMSrmm pool using DFSMSrmm system-based pooling. DFSMSrmm sets a pool prefix if a specific pool is selected.
- DFSMSrmm calls the EDGUX100 installation exit to obtain a pool prefix value. If a pool prefix value is returned, the pool prefix value returned by the EDGUX100 installation exit overrides the DFSMSrmm-selected pool.
- DFSMSrmm returns the selected value in the MSPOOL read-only variable if the MSPOOL variable is not already set by the pre-ACS exit.
If you are using PREACS processing, and you have installed the EDGUX100 user exit, DFSMSrmm processes the functions in the following sequence:
- ACS processing calls the PRE-ACS exit.
- DFSMSrmm calls EDGUX100 and sets MSPOOL and MSPOLICY.
- ACS decides whether the entity is system managed. During processing, the four PRE-ACS read-only variables can be used as input to the decision.
- For non-system-managed tape, we enter DFSMSrmm ACS support. ACS processing is called for storage group processing, and again for management class processing.
- DFSMSrmm calls EDGUX100 for its basic exit function.
Non-system-managed tape libraries
A non-system-managed tape library is all the volumes, shelves, and drives that are not in an automated tape library dataserver or manual tape library. You might know this as the traditional tape library in a data center, or as an automated environment that is not system-managed. DFSMSrmm provides complete tape management functions for the volumes and shelves in this traditional tape library.
All tape media and drives supported by z/OS are supported in this environment. Use DFSMSrmm to fully manage all types of tapes in a non-system-managed tape library, including 3420 reels, 3480, 3490, 3590, and 3592 cartridge system tapes.
You can also use DFSMSrmm to manage volumes in any automated tape library that has special software, including an IBM Tape Library dataserver that is managed using Basic Tape Library Support (BTLS).
Most non-IBM libraries do not provide support for system-managed tape, so we consider them to be the traditional tape libraries.
The IBM direction is to replace the DFSMSrmm exit function with an alternative, either the SMS policy or the PARMLIB option.
SMS read-only variables
DFSMSrmm calls the ACS routines to request the assignment of storage group and management class names for non-system-managed tape data sets.
The following is a list of the read-only variables that are set for DFSMSrmm requests.
- &ACCT_JOB: The accounting information from the JOB statement.
- &ACCT_STEP: The accounting information from the EXEC statement. This information is refreshed for each step in the job.
- &ACSENVIR: The environment in which the ACS routine was invoked; one of the following:
- RECALL: For data set recall operations.
- RECOVER: For data set recover operations.
- RENAME: For data set alter rename operations.
- RMMPOOL: For DFSMSrmm requests for a storage group name.
- RMMVRS: For DFSMSrmm requests for a management class name.
- CONVERT: For data set convert in place operations.
- ALLOC: For new data set allocations (the default).
- STORE: OSREQ object store environment.
- CHANGE: OSREQ object change environment.
- CTRANS: OSMC object class transition environment.
- Other: Installation exit can set its own value before re-invoking ACS.
- &DD: DDNAME in the DD statement of the data set.
- &DSN: The name of the data set or collection for which ACS processing is taking place. For VSAM data sets, only the cluster name is passed to the ACS routine; the component names are not. If the data set has an absolute or relative generation number, it is stripped from &DSN. The generation number is the low-level qualifier of the data set name.
- &DSORG: The data set organization; one of the following:
- PS: Physical sequential
- PO: Partitioned
- VS: VSAM organization
- DA: BDAM organization
- null: No value specified
- &DSTYPE: The data set type; one of the following:
- GDS: One generation data set of a generation data group, or any data set allocated with a relative generation number (such as A.B.C(+1)) or an absolute generation number (such as A.B.C.G0000V00)
- PERM: Standard permanent data sets
- TEMP: Temporary data sets
- null: None of the above
- &EXPDT: The expiration date in the form of YYYYDDD, where YYYY is a year from 1900-2155 and DDD is a day in a year from 1-366. Exception: Expiration dates of 99365 and 99366 are considered “NEVER-SCRATCH” dates.
- &FILENUM: The value of the FILENUM ACS read-only variable. This variable corresponds to the data set sequence number on the JCL LABEL parameter. The default is 1. This field is optional.
- &GROUP: The RACF-defined group to which you are connected, or the group specified in the GROUP keyword on the JCL JOB statement. If the environment is recall or recover, &GROUP is set only if the requester of the recall or recover is not a DFSMShsm authorized user. When DFSMShsm invokes the ACS routines, &GROUP is the group associated with &USER.
- &HLQ: The high-level (first) qualifier of the data set or collection name.
- &JOB: The job name, the started task name, or the TSO/E use ID from the JOB statement, depending on the execution mode (&XMODE).
- &LABEL: The value of the LABEL ACS read-only variable. This variable corresponds to the label field of the JCL LABEL parameter. Allowable values are NL, AL, SL, NSL, SUL, AUL, BLP, LTM, or blank. The default is IBM Standard Label. This field is optional.
- &LIBNAME: The name for the LIBNAME ACS read-only variable. It can contain a 1-character to 8-character tape library name. This field is optional.
- &LLQ: The low-level (last) qualifier of the data set or collection name.
- &MSPDEST: The destination, specified in data set name format, for a tape management system-driven tape allocation. This value is specified through the AMS pre-ACS installation exit. The data set name format lets you specify a sequence of destinations to be identified, where each qualifier is a specific destination. For example, a data set vaulted first at location OUTD and then sent to OLTS can have an MSPDEST of ’OUTD.OLTS’. The actual values depend on the support provided by your tape management system.
- &MSPARM: Additional information related to a tape management system-driven tape allocation. This is a variable length field that can be indexed. The value is specified through an external exit.
- &MSPOLICY: The name of a management policy associated with tape data for a tape management system-driven allocation. You can use the DFSMSrmm EDGUX100 installation exit to set MSPOLICY to a VRS management value name. You can also set the value of this variable using the SMS pre-ACS installation exit, or allow your tape management system to set it using the pre-ACS installation exit.
- &MSPOOL: A tape pool name associated with the data set being allocated. In a system-managed tape environment with scratch pool support, you can use this variable to specify a default storage group, where the tape storage group is equivalent to the tape pool specified in the variable. If you use the DFSMSrmm EDGUX100 installation exit, you can set this variable to the pool name or prefix determined by the DFSMSrmm scratch pool processing. This variable can also be set through the pre-ACS installation exit.
- &NQUAL: The number of qualifiers in the data set or collection name.
- &PGM: The name of the program the system is running.
- &SYSNAME: Specifies the system name of the system on which the ACS routine is executing. This field is optional.
- &SYSPLEX: Specifies the Parallel Sysplex® name of the system on which the ACS routine is executing. This field is optional.
- &UNIT: IBM-supplied or installation-defined generic name for a device type (for example, 3380, SYSDA).
- &USER: The user ID of the person allocating the data set. When DFSMShsm invokes the ACS routines, &USER is either the requestor of the recall or recover, or the user ID of the DFSMShsm address space. If the environment is recall or recover, the variable is set only if the requestor of the recall or recover is not a DFSMShsm authorized user.
- &XMODE: The execution mode in which the data set is being allocated; one of the following:
- BATCH: Batch execution mode
- TSO: TSO execution mode
- TASK: A started address space
Implementing SMS ACS processing
You can move your scratch pool and policy assignment decisions to the SMS ACS routines, where you can use ACS input variables as a base for management class and storage group assignment. In the EDGRMMxx PARMLIB member specify SMSACS(YES) so that DFSMSrmm calls the SMS ACS routines for pooling decisions and policy assignment.
Before you enable SMS ACS support in your installation, you must make some changes in your SMS ACS routines.
Define your SMS environment
To define a SMS environment for non-system-managed tapes, the following steps need to be taken, in the same sequence as described below. The redbook DFSMSrmm Primer, SG24-5983, contains detailed information on SMS ACS processing.
- Define a tape library.
- Define a tape storage group.
- Define management classes.
- Tailor your SMS management class routines.
- Tailor your SMS storage group routines.
- Tailor your EDGRMMxx PARMLIB member.
- Add volumes to the volume pool.
- Define your vital record specifications (VRSs).