Switch Ops/MVS to new set of Rules libraries.

Document ID : KB000113715
Last Modified Date : 04/10/2018
Show Technical Document Details
Introduction:
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 
Instructions:
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.