CA OPSMVS MSG Rule enabling error 'No valid rule header found in rule rulset.msgidspec (rule criterion too long)'
search cancel

CA OPSMVS MSG Rule enabling error 'No valid rule header found in rule rulset.msgidspec (rule criterion too long)'

book

Article ID: 113436

calendar_today

Updated On:

Products

OPS/MVS Event Management & Automation

Issue/Introduction

In CA OPSMVS a message (MSG) event occurs when a system component sends a message to a console or to a system log. 
If a )MSG Rule is coded and enabled to manage that message, the AOF recognizes and responds to it executing the rule.
The AOF recognizes and responds to these types of messages:
   - z/OS
   - IMS
   - CICS (Transient Data Queue messages)
   - CA 7 Browse Log
   - NetView alerts
   - Log file directed messages (through the Generic Dataset Interface)
   . Application generated WTOs (write-to-operator), WTORs (write-to-operator-with-reply), and WTLs (write-to-log)
   - JES2/JES3

The following is the format for coding the MSG event definition section:

   )MSG msgidspec [MLWTO] [AUTO | NOAUTO] [NOOPSLOG] [SUPPRESS]

where the  msgidspec specifies the message ID and could be one to ten characters long. 
(details are reported in the CA OPSMSV Using_Automated_Operations_Facility-AOF-Rules manual)

Some products (like IBM DB2) can generate messages longer than 10 characters so, if a )MSG rule is created , specifying a msgidspec longer than 10 characters, the error 

No valid rule header found in rule rulset.msgidspec (rule criterion too long) 

occurs, enabling it. 

Is it possible to manage in a )MSG Rule also these kind of messages? 





 

Environment

Release:
Component: OPSMVS

Resolution

It is always possible and recommended to open an Idea in the CA OPSMVS Community Idea Board asking for an enhancement that will manage a msgidspec longer than 10 characters in a )MSG Rule
That said, a bypass can be suggested that allows to handle these messages longer than 10 characters in a )MSG Rule.

Below a sample that can intercepts messages PWXEDM172820I / 821I from  IBM DB2 :
 
)MSG PWXEDM172 
)PROC 
MYID = WORD(MSG.TEXT,1) 
SELECT 
when MYID = 'PWXEDM172820I' then call p820i                     ...or than do....and take actions here .... 
when MYID = 'PWXEDM172821I'' then call p821i                      ...or than do....and take actions here .... 
return noaction 
Return