OPS9999T OPAOEV RC= 46 FOR ENVIRONMENTAL VARIABLE MSG..0

book

Article ID: 196052

calendar_today

Updated On:

Products

CA OPS/MVS Event Management & Automation

Issue/Introduction

When a multi-line message is appearing, a couple of rules are failing with below error:
OPS9999T OPAOEV RC= 46 FOR ENVIRONMENTAL VARIABLE MSG..0

What is causing the problem?


I have provided below from OPSLOG the message that is being trapped and the error message:

WTO ID   Job Name ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
210AA59E DB2AMSTR DSNL030I  -DB2A DSNLTSEC.30 DDF PROCESSING FAILURE
210AA59E DB2AMSTR FOR
210AA59E DB2AMSTR   LUWID=GA291CA7.PE36.D8479184C21F
210AA59E DB2AMSTR   REASON=00F30085
210AA59E DB2AMSTR   THREAD-INFO=P5U:*:*:*:*:*:*:<::10.41.28.167.40502.000000000000>
00000000 DB2AMSTR OPS9999T OPAOEV RC= 46 FOR ENVIRONMENTAL VARIABLE MSG..0
210AA59F DB2AMSTR OPS1046O ERROR 46 RUNNING WTOSHR.DSNL030I, LINE 22: INVALID VARIABLE REFERENCE


Please find below the rule that is getting triggered:

)MSG DSNL030I MLWTO
)PROC
 trace i
 temp = 0
 db2id = Substr(msg.jobname,1,4)
 text = ''
 Do i = 1 To msg.text.0
   text = text msg.text.i
   text = Space(text)

   If Pos('00D31034',text) <> 0 Then temp = i
 End
 If temp = 0 Then Return
 curtime = Time('N')
 alrttext = curtime smfid text
 Address WTO "MSGID(AF1212W) TEXT('"alrttext"') ROUTE(15) DESC(2)"
Return 'Suppress'

Environment

Release : 13.0

Component : OPS/MVS

Resolution

You set the variable 'text' to a blank, then you use that same variable (maybe inadvertently) in a compound symbol, msg.text.0 - this variable reference resolves to msg..0 (as the variable text is now blank) so the error occurs trying to reference an invalid event variable.

Do not use the variables in compound symbols as 'single' variable references unless you really intend to - change text = ' ' to something like txt or mtext.