The DFSMSrmm Environments
EASY/Exit can receive control and enforce policy
rules for the DFSMSrmm tape management system exits,
EDGUX100, EDGUX200, and
EDGUX300. Rules processing in these exits can perform
many different DFSMSrmm functions and can influence
DFSMSrmm policy and the way
DFSMSrmm deals with tape volumes and tape datasets.
EASY/Exit processing in DFSMSrmm might be used for tasks such as:
- allowing DFSMSrmm to ignore a particular volume or set of volumes
- providing VRS values or rack numbers
- providing scratch volume pooling
- allowing or rejecting certain volume mounts or expiration dates
- allowing or suppressing LABEL processing
- setting location or movement information
- and many more
The DFSMSrmm exits may be invoked and the EASY/Exit policy rules are run multiple times during DFSMSrmm processing. At each of these entries, the exit parameter list from DFSMSrmm is converted to EASY/Exit variables and the updated results are returned to DFSMSrmm when EASY/Exit rules have run.
The value of the &ENV variable will be either
EDGUX100, EDGUX200, or
EDGUX300 depending upon which exit is being invoked
by DFSMSrmm.
The DFSMSrmm exits receive control under the z/OS
Dynamic Exits facility. For the EASY/Exit rules to
receive control at these exit points, the exit points must be active and
the EXTUXnnn (where nnn is
100, 200, or 300)
must have been enabled via a SETPROG EXIT console
command. This command may be automatically issued at the time
EASY/Exit is started by including it in the
EXTINIT member of the dataset allocated to the
PARMLIB DD in the DIF started task.
OPERCMD SETPROG EXIT,ADD,EXITNAME=EDG_EXIT100,MOD=EXTUX100,FIRST
OPERCMD SETPROG EXIT,ADD,EXITNAME=EDG_EXIT200,MOD=EXTUX200,FIRST
OPERCMD SETPROG EXIT,ADD,EXITNAME=EDG_EXIT300,MOD=EXTUX300,FIRST
SETPROG EXIT,ADD
statements in EXTINIT so the exits are enabled
automatically when EASY/Exit starts. To ensure that EASY/Exit's use of the
DFSMSrmm exit points ends when
EASY/Exit stops, corresponding SETPROG
EXIT,DELETE statements should be included in the
EXTTERM member of the DIF PARMLIB DD
data set. For example:
OPERCMD SETPROG EXIT,DELETE,EXITNAME=EDG_EXIT100,MOD=EXTUX100
OPERCMD SETPROG EXIT,DELETE,EXITNAME=EDG_EXIT200,MOD=EXTUX200
OPERCMD SETPROG EXIT,DELETE,EXITNAME=EDG_EXIT300,MOD=EXTUX300
SETPROG EXIT,DELETE
statements in EXTTERM to remove the exits when
EASY/Exit is stopped. In addition to the Dynamic Exits environment, exit processing must be enabled in DFSMSrmm itself. The exits are typically loaded at DFSMSrmm startup. Thus, DIF should start before DFSMSrmm. However, if DFSMSrmm is started first, or if the exits were disabled via the DFSMSrmm ISPF interface, they can be restarted via a MODIFY command to DFSMSrmm:
F DFRMM,REFRESH EXITS
The status of the DFSMSrmm exits can be displayed via the DFSMSrmm ISPF interface (option 7.1 - CONTROL) and via the Dynamic Exits facility console command:
D PROG,EXIT,EN=EDG*,DIAG
Variables in the DFSMSrmm Environments
Variables for the EXTUX100
(EDG_EXIT100) environment
Table 12-1. Variables for the
EXTUX100 (EDG_EXIT100)
Environment
| Name | Values | Description |
|---|---|---|
ENV
|
EDGUX100,
EDGUX200, or
EDGUX300 |
The DFSMSrmm exit point |
RMM_IDENT
|
EDGPL100,
EDGPL200, EDGPL300 |
Parmlist identifier |
RMM_VERNO
|
Numeric
|
Parmlist version |
RMM_SUBPOOL
|
Numeric
|
Parmlist subpool id |
RMM_CBLEN
|
Numeric
|
Parmlist length in bytes |
RMM_OKIGNVOL
|
Yes/No (read-only)
|
Exit can request volume be ignored |
RMM_OKVRS
|
Yes/No (read-only)
|
Exit can set VRS value |
RMM_OKRACKNO
|
Yes/No (read-only)
|
Exit can set rack number |
RMM_OKPOOL
|
Yes/No (read-only)
|
Exit can set pool name |
RMM_ITSCLOSE
|
Yes/No (read-only)
|
Exit being called at CLOSE or EOV |
RMM_INF_IGNORE
|
Yes/No (read-only)
|
Volume ignored by RMM |
RMM_INF_NOTRMM
|
Yes/No (read-only)
|
Volume not RMM-managed |
RMM_INF_DISPDD
|
Yes/No (read-only)
|
DISPDD entry processed |
RMM_INF_CMOVE
|
Yes/No (read-only)
|
CMOVE required later |
RMM_INF_UDATA
|
Yes/No (read-only)
|
Userdata provided |
RMM_INF_MTL
|
Yes/No (read-only)
|
MTL tape drive allocated |
RMM_INF_DISPLAB
|
Yes/No (read-only)
|
DISPDD requested label |
RMM_INF_IGNRULE
|
Yes/No (read-only)
|
Ignore request to bypass rule |
RMM_MNTVOL
|
1-6 chars
(read-only)
|
Mounted volume serial |
RMM_REQVOL
|
1-6 chars
(read-only)
|
Requested volume serial |
RMM_SET_IGNVOL
|
Yes/No
|
Ignore volume |
RMM_SET_IGNMNT
|
Yes/No
|
Ignore mounted volume |
RMM_SET_IGNREQ
|
Yes/No
|
Ignore requested volume |
RMM_SET_IGNDS
|
Yes/No
|
Ignore dataset |
RMM_SET_NOLABEL
|
Yes/No
|
Suppress sticky label |
RMM_SET_POOL
|
Yes/No
|
Set pool name |
RMM_SET_ACLOFF
|
Yes/No
|
Do not perform ACL load |
RMM_SET_CMOVE
|
Yes/No
|
CMOVE required later |
RMM_SET_NOCMOVE
|
Yes/No
|
Update volume location |
RMM_SET_IGNSGN
|
Yes/No
|
Use system scratch pooling |
RMM_SET_NOBYP8
|
Yes/No
|
Do not bypass SAF RC=8 |
RMM_VRS
|
1-8 chars
|
New VRS value |
RMM_POOL
|
1-6 chars
|
Scratch pool name |
RMM_RACKNO
|
1-6 chars
|
Rack number |
RMM_ACCODE
|
1-8 chars
|
ACCODE parameter |
Table 12-1. Variables for the EXTUX100
(EDG_EXIT100) Environment
| Name | Values | Description |
|---|---|---|
RMM_LOCATION
|
1-8 chars
|
Target location name |
RMM_LOCTYPE
|
LOAN,
STORE, or LIBRARY |
Target location type |
RMM_DDNAME
|
1-8 chars
|
DD name |
RMM_DISPDD
|
1-8 chars
|
DISPDD name |
LBL_DSN
|
1-44 chars
|
Data set name |
LBL_TYPE
|
AL, UL, BLP, NSL, SL, or
NL
|
Label type |
LBL_CRDT
|
YYDDD
|
Creation date |
LBL_XPDT
|
YYDDD
|
Expiration date |
LBL_OUTPUT
|
Yes/No
|
Dataset opened for output |
LBL_EOV
|
Yes/No
|
Dataset EOV |
LBL_VOLSER
|
1-6 chars
|
Volser |
LBL_JOBNAM
|
1-8 chars
|
Job name |
LBL_STPNAM
|
1-8 chars
|
Step name |
LBL_SYSTEM
|
1-8 chars
|
System id |
LBL_LRECL
|
Numeric
|
LRECL |
LBL_BLKSI
|
Numeric
|
BLKSIZE |
LBL_UNIT
|
Numeric
|
Unit address |
LBL_BLKCNT
|
Numeric
|
No. of blocks written |
LBL_FSCT
|
Numeric
|
Data set sequence number |
LBL_RECFM
|
Hex
|
Record format |
LBL_RECF_U
|
Yes/No
|
RECFM undefined |
LBL_RECF_F
|
Yes/No
|
RECFM fixed |
LBL_RECF_V
|
Yes/No
|
RECFM variable |
LBL_RECF_O
|
Yes/No
|
RECFM track overflow |
LBL_RECF_B
|
Yes/No
|
RECFM blocked |
LBL_RECF_S
|
Yes/No
|
RECFM spanned or standard |
LBL_RECF_A
|
Yes/No
|
RECFM ASA control chars |
LBL_RECF_M
|
Yes/No
|
RECFM machine control chars |
LBL_VOLSEQ
|
Numeric
|
Volume sequence number |
LBL_DEN
|
Numeric
|
Density |
LBL_MEDIA
|
1-8 chars
|
Volume media name |
LBL_CRDATE
|
YYYYDDD
|
Creation date |
LBL_CRTIME
|
HHMMSS
|
Creation time |
LBL_XPDATE
|
YYYYDDD
|
Expiration date |
LBL_PREVOL
|
HHMMSS
|
Expiration time |
LBL_CRJOB
|
1-8 chars
|
Creating job name |
LBL_TDSI1
|
Numeric
|
TDSI information – recording mode |
LBL_TDSI2
|
Numeric
|
TDSI information – mediatype |
LBL_TDSI3
|
Numeric
|
TDSI information – compaction |
LBL_TDSI4
|
Numeric
|
TDSI information – special attrib |
Variables for the EXTUX200 (EDG_EXIT200) Environment
Table 12-2. Variables for the
EXTUX200 (EDG_EXIT200)
Environment
| Name | Values | Description |
|---|---|---|
RMM_OKSCR
|
Yes/No (read-only)
|
Return to scratch can be performed |
RMM_VOLSER
|
1-6 chars
|
RMM-defined volser |
RMM_RACKNO
|
1-6 chars
|
RMM-defined rack number |
RMM_MEDIA
|
1-8 chars
|
Volume media name |
RMM_LOCATION
|
1-8 chars
|
Volume location |
RMM_VOLSEQ
|
Numeric
|
Volume sequence number |
RMM_DSNAME
|
1-44 chars
|
First file data set name |
RMM_SMSVOL
|
Yes/No (read-only)
|
Volume is SMS-managed |
RMM_HOME_LDEF
|
Yes/No (read-only)
|
Volume in home location |
RMM_MAN_SCR
|
Yes/No (read-only)
|
Volume in VLPOOL with AUTOSCR(NO) |
RMM_SET_NOSCR
|
Yes/No
|
Do not return to scratch |
RMM_SET_IGNDSN
|
Yes/No
|
Ignore data set information |
RMM_DESCRIPTION
|
1-30 chars
|
User description |
RMM_OWNER
|
1-8 chars
|
Volume owner id |
RMM_CATSYSID
|
16 * 8 chars
|
CATSYSID list for system |
In addition to the variables in the charts above, as well as the
standard DIF variables such as &JOBNAME,
&STEPNAME, &SYSID, among
others, additional variables may also be available during
EASY/Exit processing for
DFSMSrmm if certain control blocks such as the JFCB
and the ACERO are available.
Variables from the JFCB
Variables from the JFCB may be available if a job is running in which
the tape volume or dataset is referenced in a DD statement. These
include all of the usual DD name variables such as
&DSNAME, &VOLSER,
&DISP, among others. These variables are
documented in Table 6-2, "Symbolic Names for DD Fields" in the DIF Rules
Language Guide.
If the DFSMS ACS routines are invoked by
DFSMSrmm exit processing, the ACS read-only
variables are also available to EASY/Exit. When
invoked by DFSMSrmm, the DIF variable name is
preceded by RMM_ (for example,
&RMM_DSNAME). The ACS variables are documented in
Table 6-1, "Symbolic Names for SMS Fields" in the DIF Rules Language
Guide.
Examples for the DFSMSrmm Environments
In the following example, the EASY/Exit rules are
used to set a scratch pool for a tape in the EXTUX100
(EDG_EXIT100) environment.
DEFENV EDGUX100 MODE(ACTIVE) RULES(ALWAYS) DEFRULE RMMRULE
IF &ENV = EDGUX100 && &JOBNAME = MYJOB && &RMM_OKPOOL = YES
THEN SET &RMM_POOL = 'SCR*'
SET &RMM_SET_POOL = YES
Example 2 - Setting a VRS Value
In the following example, the EASY/Exit rules are
used to set a new Vital Record Specification for a tape in the
EDGUX100 (EDG_EXIT100) environment.
DEFENV EDGUX100 MODE(ACTIVE) RULES(ALWAYS) DEFRULE RMMRULE
IF &ENV = EDGUX100 && &JOBNAME = MYJOB && &RMM_OKVRS = YES
THEN SET &RMM_VRS = 'NEWVRS'