Sample ACC/SRS rules including initialization, bypass logic, standards enforcement, pooling, and message definitions.
Defaults and initialization section
The following statements provide product-wide and environment defaults:
/* DEFPROD STATEMENT PROVIDES PRODUCTWIDE DEFAULTS */
/* DEFENV STATEMENT PROVIDES ENVIRONMENT DEFAULTS */
DEFPROD SMF(221 LEVEL(I)) POOLNAME(INDEX(1)) OPTION(NOSMSMASK)
DEFENV DD PROCESS(TAPE)
DEFENV DADSM MODE(ACTIVE) RULES(ALWAYS)
DEFENV INCSEC MODE(ACTIVE) RULES(ALWAYS)
Filter lists
Use filter lists to include or exclude specific datasets and volumes:
FILTLIST INACTDSN INCLUDE(*.SYS*,HSM*,SYSA*)
FILTLIST BVOLS INCLUDE(BAX*,BAY*)
EXCLUDE(BAX001,BAY001)
Invalid units and volumes
Define dummy units and volumes as follows:
DEFDMYU ($CHECK,$NONE) UNIT(SYSALLDA)
DEFDMYV ($CHECK)
Bypass-product-processing section
The following rule bypasses product processing for certain jobs, datasets, or DD names:
DEFRULE BYPRULE
IF &JOBNAME = (SYSX3*,ABFQ%1) THEN EXIT
IF &DSNAME = &INACTDSN THEN EXIT
IF &DDNAME = SORTWK* THEN EXIT
Bypass SRS-addvol checks section
Use these rules to bypass SRS addvol checks for specific DD names or programs:
DEFRULE SKIPS CONTINUE(NEXTIF)
IF &DDNAME = (SORTOU*,SORTOF*) THEN SET &SKIP_EXCP = YES
IF &PGM = (SORT, SYNCSORT, ICEMAN, IGHRCO00, IERRCO00, IEBGENER, ICEGENER, FASTVSAM) THEN SET &SKIP_EXCP = YES
IF &PGM = DSNUTILB THEN
SET &SKIP_NOTE = YES
SET &SKIP_POINT = YES
Standards-enforcement section
Enable idle space releaseThis rule enables idle space release for certain environments and job types:
DEFRULE SETRLSE CONTINUE(NEXTIF)
IF &ENV = DD
&JOBTYPE=JOB &DISP1 = NEW
&HLQ=(ZF,NV,AZ,CO,VZF,VNV,VAZ,VCO) THEN SET &RLSE = YES
Convert tape units
The following rules convert tape units and issue messages as needed:
DEFRULE SELTAP2
IF &ENV = DD
&UNITNAME = (3480,STAP)
THEN SET &TAPEPOOL = ACTTAP1
ISSUE WRITEMSG(TAPEMSG)
DEFPOOL ACTTAP1
&UNITNAME = 3490
DEFRULE ENDTAPE
IF &UNITTYPE NE DASD THEN EXIT /* NO FURTHER PROC OF TAPES */
Rename validation
This rule validates dataset renaming operations:
DEFRULE TSTRENAM
IF &ENV = DADSM
&ENVS= RENAME THEN DO
IF &HLQ NE &NEWDSN_HLQ THEN SET &JCLFAIL = YES
ISSUE WRITEMSG(RENAMER)
ELSE EXIT
END
Allocation warnings
Warns when allocation is invalid for certain HLQs and volumes:
DEFRULE SELNOAL2
IF &HLQ = (VZF,VNV,VAZ) &SMS = NO
&VOLSER=(M08089,M08085,M08132) THEN SET &JCLFAIL = YES
ISSUE WRITEMSG(MSGNOAL)
Pooling section
Allow RACF users for nonprod volumesThis rule allows RACF users to use non-production volumes:
DEFRULE ALLOWX
IF &RUSER = PGR*
&VOLSER = (X00001,X00006,X00009)
THEN SET &DISKPOOL = XPOOL
Allocate datasets to pools
Allocates datasets to the appropriate pools based on HLQ and other qualifiers:
DEFRULE ALOCPOOL
IF &HLQ = PROD THEN SET &DISKPOOL = PRODPOOL
IF &QUAL2 = TEST THEN DO
SET &DISKPOOL = TESTPOOL
IF &DATASET_EXTENT GT 50 THEN SET &SSPACE = &SSPACE*200%
ISSUE WRITEMSG(XTINCRD)
END
Pool definition and recovery criteria
Define pools and set recovery criteria as shown below:
DEFPOOL XPOOL RESTRICT(NEW)
&VOLSER = (X00001,X00006,X00009)
DEFPOOL TESTPOOL ALTPOOL(BPOOL) ADDVOL(YES MAXVOL(15)) SETSEC(PERCENT(50))
REDUCES(YES PERCENT(10) LIMIT(1)) VOLSER=TST*
DEFPOOL BPOOL ADDVOL(YES MAXVOL(15)) SETSEC(PERCENT(50))
REDUCES(YES PERCENT(10) LIMIT(1)) VOLSER=&BVOLS
DEFPOOL PRODPOOL (ALG(MAXSPACE)) SETSEC(PERCENT(100))
REDUCEP(PERCENT(10) LIMIT(1)) REDUCES(YES PERCENT(10) LIMIT(1))
ADDVOL(YES MAXVOL(20)) RECAT(SCRATCH)
&VOLSER = (PR*,X*,ZY*)
Messages section
The following messages are defined for use in rules:
DEFMSG TAPEMSG TAPE UNIT &UNITNAME SPECIFICATION OVERRIDDEN
DEFMSG MSGNOAL WARNING: ALLOCATION OF &DSNAME INVALID ON &VOLSER
DEFMSG XTINCRD EXCESSIVE EXTENTS FOR &DSNAME - SECONDARY INCREASED
DEFMSG RENAMER &DSNAME MAY NOT BE RENAMED TO &NEWDSN