OPSREPLY function gives 'OPS3092H No outstanding WTOR matches selection criteria'
search cancel

OPSREPLY function gives 'OPS3092H No outstanding WTOR matches selection criteria'

book

Article ID: 385521

calendar_today

Updated On:

Products

OPS/MVS Event Management & Automation

Issue/Introduction

In a rule is used the OPSREPLY function to reply to message with 'WAIT'. 
For example this DFS690A message rule:

)MSG DFS690A                                                           
)INIT                                                                   
)PROC                                                                   
 job=msg.jobname                                                        
 ADDRESS OSF                                                            
 "OPSREPLY JOBNAME("job") TEXT('WAIT')"                                 

Sometime the reply was not given as expected. Other occurrences there was successful. 

13:00:32 3648 DFS690A JOB00001.ACBIF01. - CTL PGM NOT ACTIVE, REPLY 'WAIT', 'CANCEL' OR 'ALT-ID'  IF60
13:00:32 OPS3724T TSO PROD.CICSRPLY Sent CMD=OPSREPLY JOBNAME(JOB00001) TEXT('WAIT')                  
13:00:32 OPS3092H OPSREPLY JOBNAME(JOB00001) TEXT('WAIT')                                             
13:00:32 R 3648,WAIT                                                                                  

13:02:36 4334 DFS690A JOB00002.ACBIU01. - CTL PGM NOT ACTIVE, REPLY 'WAIT', 'CANCEL' OR 'ALT-ID'  IU80
13:02:36 OPS3724T TSO PROD.CICSRPLY Sent CMD=OPSREPLY JOBNAME(JOB00002) TEXT('WAIT')                  
13:02:36 OPS3092H OPSREPLY JOBNAME(JOB00002) TEXT('WAIT')                                             
13:02:36 OPS3092H No outstanding WTOR matches selection criteria                                      
13:02:36 OPS3092H READY                                                

What went wrong?

Cause

The anomaly is that OPS/MVS intercepts the WTO with REPLY and fires/executes the rule BEFORE MVS can post the outstanding reply, so OPSREPLY can't find the WTOR. 

Using ADDRESS OPER with msg.replyid is also more efficient.  OPSREPLY provides more capabilities to find a WTOR if the triggering event is not the WTOR itself...  

Resolution

We advise to use Address OPER to reply to the message using the msg.replid environmental variable. 
Sample.
when msg.id == 'DFS690A' then do                
Address 'OPER' "Reply "msg.replyid",WAIT"