Generalizing parmlib members

In a sysplex environment, each individual system has its own parmlib with the corresponding RMF™ parmlib members. It is often convenient to generate a new system in the sysplex by cloning an existing one, but any references to the system name in, for example, parmlib members, must be altered accordingly.

To make this adaptation automatic, RMF uses the capability of working with symbolic names. They can be defined by you as the user, and there are a number of predefined symbolic names that you can use without further preparation.

The predefined symbolic names &SYSNAME and &SYSCLONE are the most useful for the RMF user. &SYSNAME resolves to the 8-character MVS™ system name, and &SYSCLONE to the last two non-blank characters of the system name.

RMF supports the use of symbolic names in:
  • All RMF parmlib members

    Now, you can use the same parmlib member on each system, if you use symbolic names for system-specific options, as shown in the following examples.

    Example of using symbolic names for system-specific options:
    To ensure that RMF uses different VSAM data sets on each system in the sysplex without the need for different parmlib members, include in the Monitor III parmlib member:
    ⋮
    DATASET(START)
    DATASET(ADD(SYS1.ERB.&SYSNAME..VSAM1))
    DATASET(ADD(SYS1.ERB.&SYSNAME..VSAM2))
    ⋮
    Another example of using symbolic names:

    Assume you have a CICS® address space running on each of your systems in the sysplex and for easy naming you named these address spaces CICS1 (running on system PRD1), CICS2 (on PRD2) and CICS3 (on PRD3).

    If you want to monitor these address spaces with Monitor II in the background, you can specify in your Monitor II parmlib member:
    ⋮
    ASRMJ(CICS&SYSCLONE(2:1))
    ASDJ(CICS&SYSCLONE(2:1))
    ARDJ(CICS&SYSCLONE(2:1))
    ⋮
    Example that shows how to set up gathering options:

    In an environment where several systems have access to one and the same storage subsystem, it is sufficient that the cache data gatherer is started just on one system. Running the gatherer on more than one system creates several copies of identical SMF records type 74-5 (Monitor I) or VSAM records (Monitor III).

    Since RMF has no sysplex control over the gatherer options, it cannot automatically deselect cache gathering on all but one system. To take advantage of shared parmlibs in a sysplex environment, help yourself using the symbolics approach offered by z/OS.
    • Specify an IEASYMxx parmlib member in your LOADxx-member:
      IEASYM CA
    • Define a symbol &CACHEOPT in parmlib member IEASYMCA (assuming that the sysplex is built from z/OS systems running in LPAR partitions):
      SYSDEF SYMDEF(&CACHEOPT='NOCACHE') /* Global value        */
      SYSDEF LPARNAME(PROD1)
             SYMDEF(&CACHEOPT='CACHE')  /* Local value for SYS1 */
    • Create a shared RMF parmlib member ERBRMFxx:
        ...                             /* any global RMF parms */
        &CACHEOPT.                      /* CACHE or NOCACHE     */
        ...                             /* any global RMF parms */
    • Start RMF on all systems using the member option:
      RO *ALL,S RMF.A,,,(MEMBER(xx))

    With this definition, the symbol &CACHEOPT is defined as 'NOCACHE', while on system SYS1, the symbol is resolved as 'CACHE'.

    For details about defining your own symbols, refer to z/OS MVS Initialization and Tuning Reference.

  • The reply to message ERB306D REPLY WITH OPTIONS OR GO

    You can use symbolic names in the option strings that you type in at the terminal, using the same conventions as in the parmlib members

  • The RMF MODIFY command. Again, the options can contain symbolic names, as in the parmlib members. The command is converted automatically during MVS command processing. The system responds to a MODIFY command that contains symbolic names as shown in the following example.
    Example of command with symbolic name, and system response:
    f rmf,f iii,dataset(add(SYS1.&SYSNAME..DATA))
    IEE295I COMMAND CHANGED BY SYMBOLIC SUBSTITUTION
    ORIGINAL: F RMF,F III,DATASET(ADD(SYS1.&SYSNAME..DATA))
    MODIFIED  F RMF,F III,DATASET(ADD(SYS1.RMF3.DATA))