End-of-Memory initiated CLIST

Use the End-of-Memory EXEC to ensure that critical address spaces do not terminate unnoticed.

Potential use

Normally, address space termination can be monitored by using standard MVS and JES messages.

However, there are situations when monitoring based on these messages is not sufficient because an address space may terminate without producing the expected messages. For example, the expected termination messages may not be produced if the MVS FORCE or SYSPROG EXIT command is used or when an initiator abends.

The End-of-Memory EXEC allows MainView AutoOPERATOR to monitor address space termination regardless of how the address space is terminated. This EXEC is scheduled for the following situations when the associated events occur:

  • Batch jobs when the initiator terminates

  • TSO users when any TSO user is terminated

  • Started Tasks when any Started Task is terminated

Only one End-of-Memory EXEC exists for each MainView AutoOPERATOR subsystem. Each time one of the above mentioned events occurs, MainView AutoOPERATOR automatically schedules an EXEC named IMFEOM if it exists in the SYSPROC concatenation.

Parameters passed to the EXEC

Two parameters are passed to the End-of-Memory EXEC.

  • The first parameter contains the fixed string of *EOM*.

  • The second parameter contains a character string that can have one of two values:

Parameter value

Description

NORMAL

indicates normal address space termination

ABNORMAL

indicates address space was terminated by passing it to RTM

This situation can happen when using the SYSPROG EXIT command or the MVS FORCE command. It is not an indication that the address space abended with a system or user abend code.

Example

This first example shows an EXEC called STRT that is scheduled by a Rule (a Rule-initiated EXEC).

The Rule is fired when the JES2 message $HASP373 is issued for jobname PRODSTC: $HASP373 indicates that the job has started.

PROC 0
/*---------------------------------------------------------------*/
/* THIS EXEC IS DRIVEN FROM JES2 MESSAGE, $HASP373, FOR STC      */
/* PRODSTC ONLY                                                  */
/*                                                               */
/* EXEC DESCRIPTION: SET VARIABLE 'PRODSTKN' TO STOKEN OF PRODSTC*/
/*---------------------------------------------------------------*/
SET PRODSTKN = &IMFSTOKN
IMFEXEC VPUT PRODSTKN

The second EXEC, IMFEOM, is scheduled automatically when any Started Task or TSO address space terminates or when a batch initiator abends.

Figure 1. End-of-Memory-Initiated EXEC example

PROC 2 IMFEOM STATUS
/*--------------------------------------------------------------*/
/* THIS EXEC IS DRIVEN FROM END OF MEMORY EXIT                  */
/*                                                              */
/* EXEC DESCRIPTION: DETERMINE IF ADDRESS SPACE TERMINATING IS  */
/*                   'PRODSTC'.  IF SO, INFORM THE OPERATOR.    */
/*--------------------------------------------------------------*/
IMFEXEC VGET PRODSTKN
 IF &IMFCC = 0 THEN DO
 IF &PRODSTKN = &IMFSTOKN THEN DO
  SET &PRODSTKN =
  IMFEXEC VPUT PRODSTKN
  IF &STATUS = ABNORMAL THEN      +
     IMFEXEC WTO 'PRODSTC ENDED ABNORMALLY'
  END
 END

Describing the example

When the STRT EXEC is scheduled, the local variable IMFSTOKN contains an identifier that uniquely identifies the PRODSTC Started Task.

Because this variable only exists for the life of the EXEC, STRT saves the IMFSTOKN value in the shared variable pool so that it can be used subsequently by the IMFEOM EXEC.

Warning

If this procedure will be used for more than one address space, you should use a variable name other than IMFSTOKN in the shared variable pool or else the value IMFSTOKN might be overridden by the other procedures.

When the IMFEOM EXEC is scheduled, IMFSTOKN refers to the address space that is being terminated. The IMFEOM EXEC compares IMFSTOKN to the PRODSTKN value saved previously by the EXEC named STRT. If the values do not match, IMFEOM exits because the address space that is terminating is not one that is being monitored. If the values do match and the parameter passed to IMFEOM indicates abnormal termination, a WTO (write-to-operator) is issued to notify the operator.

Refer to TSO variables supplied by MainView AutoOPERATOR for more information about MainView AutoOPERATOR-supplied variables.

Was this page helpful? Yes No Submitting... Thank you

Comments