CA OPSMVS :How to suppress from OPSLOG the SMF Accounting messages starting with a dash '-'
search cancel

CA OPSMVS :How to suppress from OPSLOG the SMF Accounting messages starting with a dash '-'

book

Article ID: 132546

calendar_today

Updated On:

Products

OPS/MVS Event Management & Automation

Issue/Introduction

IN CA OPS/MVS the OPSLOG is an interactive logging facility which gathers z/OS system event information log record data into a file. The OPSLOG allows an end user to manipulate the log record data file with unique filtering and display field capabilities. In the product documentation there are many details about how to code a )MSG Rule in order to suppress from the OPSLOG given messages using the NOOPSLOG parameter, based on the msg.id field. 

The OPSLOG can also contain all the SMF Accounting messages generated by the IBM SMF exit IEFACTRT for each job executed and these messages are usually starting with a dash sign '-' and don't have a given message identifier (msg.id) as it depends on the job or task name for which it is generated.

Below a sample log containing some of these messages: 
...
- --TIMINGS (MINS.)-- 
-JOBNAME STEPNAME PROCSTEP RC EXCP CPU SRB CLOCK SERV 
-BLSJPRMI IEFPROC 00 563 .00 .00 .03 3335 
-BLSJPRMI ENDED. NAME- TOTAL CPU TIME= .00 TOT 
- --TIMINGS (MINS.)-- 
-JOBNAME STEPNAME PROCSTEP RC EXCP CPU SRB CLOCK SERV 
-HWIBCPII HWIBCPII IEFPROC 00 2342 .00 .00 .18 2267 
-HWIBCPII ENDED. NAME- TOTAL CPU TIME= .00 TOT 
------- Stateman startup after IPL. Mode=ACTIVE -------- 
- --TIMINGS (MINS.)-- 
-JOBNAME STEPNAME PROCSTEP RC EXCP CPU SRB CLOCK SERV 
-AUTOY IEFBR14 00 1 .00 .00 .00 31 
-AUTOY ENDED. NAME- TOTAL CPU TIME= .00 TOT 
...

In order to identify all the messages starting with a dash sign, it is mandatory to use the msg.text field and search for the dash sign at first position, this is because the msg.id is already cleaned by the first IBM dash control character. So for example, to suppress a message issued as "-ABC" that the msgid will be "ABC", You could write a rule 

)MSG ABC 
)PROC 
test = word(msg.text,1) 
if substr(test,1,1) = '-' then return suppress 

but the SUPPRESS option only removes the -ABC message from the SYSLOG . In addition the NOOPSLOG cannot be used as the message selection is done based on msg.text and not msg.id, so the message cannot be removed at the same way from the OPSLOG. 

So how to suppress from OPSLOG all the SMF Accounting messages generated by the IBM SMF exit IEFACTRT and starting with a dash sign '-' ? 
 

Environment

Z/OS - OPS/MVS 

Resolution

The BYPASSDESC parameter in OPS specifies a DESC code that prevents messages from being placed in OPSLOG if they are issued with that DESC code. 
By default  this parameter contains DESC code 16 and a display of the parameter in OPSVIEW 4.1.1 will show BYPASSDESC X'0001' if set to default. 

So, if the IEFACTRT exit code can be changed to use DESC code 16 for these messages in the WTO macro section,  then they will not be placed in OPSLOG. 

As a sample, coding in the IEFACTRT exit the following :

* BODY 
WTO 'ABC100I SINGLE-LINE MESSAGE-4', +
ROUTCDE=14,DESC=0,MCSFLAG=NOCPY 
WTO 'ABC101I SINGLE-LINE MESSAGE-4', +
ROUTCDE=14,DESC=0,MCSFLAG=HRDCPY 
WTO 'ABC102I SINGLE-LINE MESSAGE-4', +
ROUTCDE=14,DESC=16,MCSFLAG=NOCPY 
WTO 'ABC103I SINGLE-LINE MESSAGE-4', +
ROUTCDE=14,DESC=16,MCSFLAG=HRDCPY
 

- the messages ABC102I and ABC103I will be suppressed from OPSLOG, because DESC=16 and BYPASSDESC is set to default in OPS parms 
- the messages ABC100I and ABC102I will be suppressed from SYSLOG, because MCSFLAG=NOCPY
- all the above messages will appear in the involved tasklog/joblog