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' IU8013: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?
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...
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"