OPSMVS 13.0 : MATCH process doesn't trigger sometimes after upgrade from 12.3 to 13.0

book

Article ID: 132235

calendar_today

Updated On:

Products

CA OPS/MVS Event Management & Automation

Issue/Introduction

In CA OPSMVS, the PROCESS Action Clause is a command that gives users control over the process exit invocation on per decision point and per resource basis. The PROCESS action command is issued in the SELECT exit. Its purpose is to selectively enable each of the process exits for the current resource by providing a list of process names. On the PROCESS command it is possible to specify also operand MATCH  (that is a positive name that enables the action to be invoked).

After upgrade from OPSMVS 12.3 to higher levels, it can happen that the  MATCH action doesn't always trigger correctly, as in the below sample situation: 

Action table definition :

Sel,Process ,Current ,Desired ,Actmode ,Resource Table ,Resource Name/Type, 
--- -------- -------- -------- -------- --------------- ------------------------------ 
I=,SELECT , , , , , , 
--- -------- -------- -------- -------- --------------- ------------------------------ 
,,SELECT ,DOWN ,DOWN , , , 
,PROCESS(MATCH,DEBUG) 

-------------------------------------------------------------------------------------- 
,,SELECT ,UP ,UP , , , 
,PROCESS(DEBUG,MATCH) 


Sel,Process ,Current ,Desired ,Actmode ,Resource Table ,Resource Name/Type, 
--- -------- -------- -------- -------- --------------- ------------------------------------------------ 
I=,MATCH , , , , , , 
--- -------- -------- -------- -------- --------------- ------------------------------------------------ 
,,MATCH ,DOWN ,DOWN , , , 
,RULE("SSMMATCH TABLE(&SSMTABLE) NAME(&NAME) CURRENT(&CURRENT_STATE) MODE(&MODE) ACTMODE(&ACTMODE)") 

-------------------------------------------------------------------------------------------------------- 
,,MATCH ,UP ,UP , , , 
,RULE("SSMMATCH TABLE(&SSMTABLE) NAME(&NAME) CURRENT(&CURRENT_STATE) MODE(&MODE) ACTMODE(&ACTMODE)") 


When manually set the task's status to UNKNOWN_DOWN and then set it to DOWN_DOWN, the SELECT works, but MATCH process doesn't trigger:

18APR,05:58:37,OPS7914O SSM AUDIT: $TESTSTC.TESTSTC1 UPDATED by S01SSS STATESET CURRENT_STATE=UNKNOWN 
18APR,05:58:37,OPS7902H STATEMAN ACTION FOR $TESTSTC.TESTSTC1: UNKNOWN_DOWN=NO ACTION FOUND 
18APR,05:58:43,OPS7914O SSM AUDIT: $TESTSTC.TESTSTC1 UPDATED by S01SSS STATESET CURRENT_STATE=DOWN 
18APR,05:58:43,OPS7913T SSM PROCESS SELECT for $TESTSTC.TESTSTC1: DOWN_DOWN PROCESS=MATCH,DEBUG 

When manually set the task's status to UNKNOWN_UP and then set it to UP_UP, the SELECT works, but MATCH process doesn't trigger :

18APR,06:00:24,OPS7914O SSM AUDIT: $TESTSTC.TESTSTC1 UPDATED by S01SSS STATESET DESIRED_STATE=UP 
18APR,06:00:24,OPS7914O SSM AUDIT: $TESTSTC.TESTSTC1 UPDATED by S01SSS STATESET CURRENT_STATE=UNKNOWN 
18APR,06:00:24,OPS7902H STATEMAN ACTION FOR $TESTSTC.TESTSTC1: UNKNOWN_UP=NO ACTION FOUND 
18APR,06:00:36,OPS7914O SSM AUDIT: $TESTSTC.TESTSTC1 UPDATED by S01SSS STATESET CURRENT_STATE=UP 
18APR,06:00:36,OPS7913T SSM PROCESS SELECT for $TESTSTC.TESTSTC1: UP_UP PROCESS=DEBUG,MATCH 


When manually set the task's status to UNKNOWN_UP and then set it to DOWN_UP and let SSM start up the task, then both SELECT and MATCH works: 

18APR,06:02:08,OPS7914O SSM AUDIT: $TESTSTC.TESTSTC1 UPDATED by S01SSS STATESET CURRENT_STATE=UNKNOWN 
18APR,06:02:08,OPS7902H STATEMAN ACTION FOR $TESTSTC.TESTSTC1: UNKNOWN_UP=NO ACTION FOUND 
18APR,06:02:13,OPS7914O SSM AUDIT: $TESTSTC.TESTSTC1 UPDATED by S01SSS STATESET CURRENT_STATE=DOWN 
18APR,06:02:13,OPS7902H STATEMAN ACTION FOR $TESTSTC.TESTSTC1: DOWN_UP SETCOL=CURRENT_STATE,UP 
18APR,06:02:13,OPS7914O SSM AUDIT: $TESTSTC.TESTSTC1 UPDATED by OPSS STATEMAN CURRENT_STATE=UP 
18APR,06:02:13,OPS7913T SSM PROCESS SELECT for $TESTSTC.TESTSTC1: UP_UP PROCESS=DEBUG,MATCH 
18APR,06:02:13,OPS7913T SSM PROCESS MATCH for $TESTSTC.TESTSTC1: UP_UP RULE=SSMMATCH TABLE($TESTSTC) NAME(TESTSTC1) CURRENT(UP) MODE

Why this behavior change and how to address it? 

Environment

Z/OS OPSMVS 

Resolution

The MATCH action should not fire when the CURRENT_STATE states go from UNKNOWN to the DESIRED value. This was a bug addressed by PTF RO97011 in OPS 13.0. The MATCH action is now working as intended.
Although the first two scenarios previously reported would work in 12.3 without the PTF, it is now working correctly.
The MATCH action was designed to fire when the desired and current state of a resource become equal as a result of a start or stop action. The current and desired states must be the UP_STATE and DOWN_STATE defined to that resource table. Having the states match as a result of an UNKNOWN action or external updates to the states will not fire the MATCH action.

It is always possible to write some automation workaround procedures which relies on the MATCH action to trigger when the CUR_STATE and DES_STATE are same.