When CA OPSMVS is implemented on a new Lpar, using a set of target libraries from an existing System, it frequently happens that the Rules Libraries copied from the other Lpar should be re-customized, adapting them to the new System resources and definitions.
How will OPS/MVS point to the new rule files and reconcile the auto-enable status of the rules when the rule datasets have changed? Where does OPS/MVS keep the auto-enable status?
Environment
Z/OS - CA OPSMVS
Resolution
When the Rule libraries are renamed or copied in new PDS, then, before starting OPSMVS, it is necessary to set the RULEPREFIX and RULESUFFIX parameters to match the new dataset/ruleset name. It is also possible to specify the additional ruleset naming parameters RULEPREFIX2 and RULEPREFIX3.
About the AutoEnable feature , It is usually recorded in the directory of the pds library, so any copy method that preserves the directory will carry on the auto-enable flag. For example, both IEBCOPY and the ISPF copy (3.3 panel) will preserve the auto-enable flag.
That's why it is recommended to check the auto-enable flag of the destination library after the copy is performed. Here is a sample REXX program that can be used to verify the auto-enable flag of the members of a ruleset:
/* Allocate ruleset */ ruleset = 'CAI.OPS130.SSMV3.RULES' ----------------need to set the correct library name ---------------------------- DD1 = OPSDYNAM("ALLOC DD(PRODRULS) DSN('"ruleset"') SHR") if DD1 <> 0 then do say 'error allocating production ruleset ' exit end /* Reads the ruleset directory */ var = OPSPDS('READDIR','PRODRULS','mem.') if var <> 0 then do say 'error reading pds directory ' exit end /* Member names will be contained in stem variables mem.1, mem.2 etc */ /* mem.0 will contain the number of members of the ruleset */ /* for each member of the production ruleset */ do i = 1 to mem.0 /* uses function OPSAUTO to check the autoenable status of a rule*/ auto = OPSAUTO('I','PRODRULS',mem.i) /* this function returns 'Y' if autoenable is set */ if auto = 'Y' then say 'Rule: ' mem.i ' has auto-enable flag on' end /* releases the PDS */ f1 = OPSDYNAM("FREE DD(PRODRULS)")
This sample REXX can be used as a model to create an EXEC that will compare 2 rules libraries and list the rules that are enabled in one library but not the other and vice-versa.