To have your function routine receive control for SSI function
code 9, you must use the IEAVG700 interface. You only need to issue
IEAVG700 once for each IPL. Use the following
coding fragment to call module IEAVG700:
⋮
* Register declarations
R1 EQU 1 Declaration for register 1
R13 EQU 13 Declaration for register 13
R15 EQU 15 Declaration for register 15
⋮
DOBRDCST EQU * Request broadcast of WTO/WTORs
LA R1,SCSRPLST Get addressability to SCSR
ST R1,SCSRPTR Save pointer for standard linkage
XC SCSRPLST(SCSPLEN),SCSRPLST Zero out parameter list
MVC SCSACRO,SCSRACRN Set acronym value
MVI SCSVER,SCSVERSN Set version level
OI SCSFUNC1,SCSBRDON Indicate to broadcast WTO/WTORs
LA R1,SCSRPTR Set up standard entry linkage
LA R13,SAVEAREA Set up standard save area
LINK EP=IEAVG700 Call subsystem console routine
LTR R15,R15 See if request was successful
BNZ BRDFAIL Branch to process unsuccessful call
* Processing continues here for successful call
⋮
* Module static storage area
SCSRACRN DC CL4'SCSR'
⋮
* Module dynamic storage area
SCSRPTR DS A Pointer to SCSR
SAVEAREA DS 18F Standard save area
⋮
* Include mapping for Subsystem Console Service Routine
IEZVG100 Include SCSR mapping macro
The SCSR (subsystem console service routine) parameter list is
mapped by mapping macro IEZVG100. Module IEAVG700 must be invoked
in key 0, supervisor state, running enabled in task mode with no locks
held.
Upon ending, your subsystem should request that broadcasting be
discontinued. Use the same type coding fragment as above, except
that the SCSBRDOF bit (Broadcast off) is set,
instead of the SCSBRDON bit (Broadcast on).
Your installation might also use the WTO/WTOR call (SSI function
code 9) to take any of the following actions against a message:
- Alteration — including text and routing information
- Deletion
- Generation of a reply (in the case of WTOR)
- Suppression.
Your installation can use the following methods to affect WTO/WTOR
message processing:
In choosing which method to use to affect WTO/WTOR message processing,
take the following into consideration:
- The WTO general exit (IEAVMXIT) or message processing facility
(MPF) exits are the recommended ways to take actions against MVS™ messages prior to their distribution
to consoles and the system log, because they get control before the
SSI gets control, and they can be changed easily through the SYS1.PARMLIB
member. See z/OS MVS Installation Exits for
information about IEAVMXIT and MPF exits.
- The primary subsystem (JES) is usually the first subsystem to
get control from the SSI.
- Automation subsystems (such as NetView®) are common users of SSI function code 9. Automation subsystems
also get control from the SSI so that, depending on what you want
your program to do, placing your subsystem before or after an automation
product may be of concern. For example, subsystems may alter messages.
If you are using an automation product that gets its messages from
the SSI, it may not receive the final version of a message if there
are other subsystems that subsequently change the message. If so,
make sure you code the subsystems in SYS1.PARMLIB member IEFSSNxx
in the order in which you want the subsystems to get control.
IBM® recommends that you affect
message processing with MPF or through one of the automation subsystems.
MCSOPER/MCSOPMSG Macro Services: While
SSI function code 9 is useful for an application that needs to trap
messages from the MVS message
stream, it is no longer the recommended interface for that purpose.
The MCSOPER/MCSOPMSG macro services (also known as EMCS) are the
recommended programming interface for receiving MVS messages. See z/OS MVS Programming: Authorized Assembler Services Reference LLA-SDU for further information about these services.