End-of-Memory initiated CLIST
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.
Comments
Log in or register to comment.