z/OS DFSMSrmm Implementation and Customization Guide
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Making an ACS storage group assignment

z/OS DFSMSrmm Implementation and Customization Guide
SC23-6874-00

To assign a storage group, you must have the SMS subsystem active and have a valid SMS configuration.

You use the ACS routines to process the special calls that DFSMSrmm makes to the SMS subsystem for ACS processing. DFSMSrmm requests that the data class, management class, and storage group routines are run. The environment variable is set to RMMPOOL so that you can differentiate allocation requests for system-managed data sets from requests by DFSMSrmm for a storage group name. When DFSMSrmm calls the ACS routines with the &ACSENVIR variable set to either RMMPOOL or RMMVRS, the storage class (&STORCLAS variable) is set to the word USERMM.

The SMS read-only variables that are set for DFSMSrmm requests are:
  • &ACCT_JOB
  • &ACCT_STEP
  • &ACSENVIR
  • &DD
  • &DSN
  • &DSORG
  • &DSTYPE
  • &EXPDT
  • &FILENUM
  • &GROUP
  • &HLQ
  • &JOB
  • &LABEL
  • &LIBNAME
  • &LLQ
  • &NQUAL
  • &PGM
  • &STORGRP
  • &SYSNAME
  • &SYSPLEX
  • &UNIT
  • &USER
  • &XMODE

The &DD, &PGM, &EXPDT, and &FILENUM variables are optional for JES3 mount messages. &LIBNAME is optional for JES3 fetch messages.

  1. Define your pools by using the DFSMSrmm EDGRMMxx parmlib VLPOOL command as shown in Figure 1. See Defining pools: VLPOOL for information about the VLPOOL command.
    Figure 1. Defining pools with the DFSMSrmm EDGRMMxx parmlib VLPOOL command
     ...
    VLPOOL PREFIX(123*)   NAME(POOLA) MEDIANAME(CARTS) -
        DESCRIPTION('PART OF POOL A')
    VLPOOL PREFIX(99975*) NAME(POOLA) MEDIANAME(REELS) -
        DESCRIPTION('PART OF POOL A')
    VLPOOL PREFIX(C0*)    NAME(TEMP) MEDIANAME(CARTS) -
        DESCRIPTION('TEMPORARY POOL')
    VLPOOL PREFIX(*)      NAME(DEFAULT) MEDIANAME(CARTS) -
        DESCRIPTION('DEFAULT POOL')
     ...
  2. Code your selection criteria and rules into the management class and storage group ACS routines as shown in Figure 2.
    Figure 2. Sample management class routine
    PROC 1 MGMTCLAS
     ...
     /***************************************************/
     /*   RMM POOLING FILTER LISTS                      */
     /***************************************************/
     ...
    FILTLIST POOLA INCLUDE(USERA.**,USERY.KEEP.*) -
                    EXCLUDE(USERA.POOLB.**)
     ...
     IF &ACSENVIR = 'RMMPOOL' THEN
     /***************************************************/
     /*   RMM POOLING DECISIONS                         */
     /***************************************************/
       DO
         SELECT (&DSN)
           WHEN (&POOLA) SET &MGMTCLAS = 'POOLA'
           OTHERWISE     SET &MGMTCLAS = 'DEFAULT'
         END
         /* ALLOCATE TEMP POOL FOR TEMPORARY DATA SETS  */
         IF &DSTYPE = TEMP THEN SET &MGMTCLAS = TEMP
     ...
       END
     ...
    END

If your ACS processing does not set the storage group name, DFSMSrmm processing continues without using storage group names.

The processing that the STORGRP ACS routine performs is limited to the variables it can reference. You might want to make your decisions in the MGMTCLAS ACS routine and use the STORGRP routine to set the STORGRP variable to the selected value as shown in Figure 3.

Any management class value that you set during ACS processing for the RMMPOOL ACS environment call is ignored by DFSMSrmm processing.

Figure 3. Storage group routine sample
PROC 1 STORGRP
 ...
 IF &ACSENVIR = 'RMMPOOL' THEN
 /***************************************************/
 /*   RMM POOLING DECISIONS                         */
 /***************************************************/
   DO
     SELECT (&MGMTCLAS)
       WHEN ('POOLA')   SET &STORGRP = 'POOLA'
       WHEN ('DEFAULT') SET &STORGRP = 'DEFAULT'
       WHEN ('TEMP')    SET &STORGRP = 'TEMP'
     END
 ...
   END
 ...
 END

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014