Switch Ops/MVS to new set of Rules libraries.
search cancel

Switch Ops/MVS to new set of Rules libraries.

book

Article ID: 113715

calendar_today

Updated On:

Products

OPS/MVS Event Management & Automation

Issue/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 

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 = 'your.hlqs.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.