Previous Topic: Step 4: Auto-Enable Rules That Monitor Started TasksNext Topic: Step 5: Add STCTBL and STCTBL_ACT Tables to the Directory Table


Sample Code

The following is an example of the SSMCICS rules packet:

)MSG DFH*
)PROC
/*********************************************************************/
/*                                                                   */
/*   NAME       - SSMCICS                                            */
/*   PURPOSE    - Set the current state of CICS regions based on     */
/*                message traffic.                                   */
/*   RELATED    - STATEMAN                                           */
/*   GLOBALS    - None                                               */
/*   PARMS      - None                                               */
/*   KEYWORDS   - None                                               */
/*   LANGUAGE   - OPS/REXX                                           */
/*   HISTORY    - 27 APR 1993 GEM  - Original implementation         */
/*                                                                   */
/*   NOTES      -                                                    */
/*                                                                   */
/*********************************************************************/
If Opsinfo('EXITTYPE') ^== 'MVS' Then Return
job   = msg.jobname
msgid = msg.id
Select
/*-------------------------------------------------------------------*/
/* DFHSI1500 applid element startup is in progress for CICS ...      */
/*--+----1----+----2----+----3----+----4----+----5----+----6----+----*/
  When msgid == 'DFHSI1500' then
    If wordpos('startup is in progress',msg.text) > 0 then
      Address SQL "Update STCTBL set current_state='STARTING'",
                     "where jobname=:job and type='CICS'"
/*-------------------------------------------------------------------*/
/* DFHSI1517 applid Control is being given to CICS                   */
/*--+----1----+----2----+----3----+----4----+----5----+----6----+----*/
  When msgid == 'DFHSI1517' then
      If wordpos('Control is being given to CICS',msg.text) > 0 then
        Address SQL "Update STCTBL set current_state='UP'",
                       "where jobname=:job and type='CICS'"
/*-------------------------------------------------------------------*/
/* DFHTM1715 applid product is being quiesced by userid ...          */
/*--+----1----+----2----+----3----+----4----+----5----+----6----+----*/
  When msgid == 'DFHTM1715' then
    Address SQL "Update STCTBL set current_state='STOPPING'",
                  "where jobname=:job and type='CICS'"
/*-------------------------------------------------------------------*/
/* DFHKE1799 applid TERMINATION OF CICS IS COMPLETE                  */
/*--+----1----+----2----+----3----+----4----+----5----+----6----+----*/
  When msgid == 'DFHKE1799' then
    Address SQL "Update STCTBL set current_state='DOWN'",
                  "where jobname=:job and type='CICS'",
                  "and current_state <> 'ERROR'"
/*-------------------------------------------------------------------*/
/* Not interested in this message                                    */
/*--+----1----+----2----+----3----+----4----+----5----+----6----+----*/
  Otherwise nop
End
Return