Early WTOs - Documentation for MainView AutoOPERATOR 8.2
Sebastian Wright
Published Apr 07, 2026
You can capture WTOs that are issued during IPL and before MainView AutoOPERATOR starts by:
Implementing QAOCNZ15 as the MVS CNZ_MsgToSyslog exit.
For more information about implementing this exit, see the IBM manual MVS Installation Exits.
You must also specify WTOEARLY=Y in BBPARM member AAOPRMxx.
Automating early WTOs can help detect situations such as product password expiration warnings or errors for other software products, JCL errors in STCs that are started before MainView AutoOPERATOR starts, or significant messages that occur early in the MVS initialization.
Note
The timing of HWTO events will be different from the original WTOs (which the Rule Processor sees as MSG events). All the HWTO events are generated at once at BBI-SS PAS startup. For example, IEF403I and IEF404I messages for a job occur instantly without any intervening delay as though the job had taken no time to run. You must consider this when planning to automate HWTOs.
The QAOCNZ15 exit stores the early WTOs in a data space. The data space can store about 100,000 WQEs. Note several WQEs can be associated with a single multi-line WTO. When this data space is full, it issues the following informational message and QAOCNZ15 is deleted from the MVS CNZ_MsgToSyslog exit:
AA0501I QAOCNZD DATA SPACE IS FULL ptf_level
When implementing the exit, the QAOCNZ15 load module can reside in any of the following places
In highLevelQualifier.BBLINK
In a special user library that contains only QAOCNZ15
In SYS1.PARMLIB
From a special user library that is concatenated with SYS1.PARMLIB
One example of specifying the EXIT statement in SYS1.PARMLIB PROGxx member and using QAOCNZ15 directly from the BBLINK data set.
EXIT ADD EXITNAME(CNZ_MSGTOSYSLOG) MODNAME(QAOCNZ15) DSNAME(highLevelQualifier.bblink)
If you are using the DSNAME(highLevelQualifier.bblink) option, verify that the PTF for IBM APAR OA49360 is applied. This fixes a bug where exits loaded from DSNAME() are not effective.
Note
You must review the CNZ_MsgToSyslog exit after any PTF maintenance, or installing or upgrading any MainView products.
Because there is only one copy of QAOCNZ15 in MVS, when you install new MainView libraries or apply PTFs, remember to ensure you always run the newest version and PTF level of QAOCNZ15. This ensures that the QAOCNZ15 exit is compatible with all levels of MainView AutoOPERATOR.
The following WTO AU0500I is issued when QAOCNZ15 starts and it indicates the PTF level of the code:
AA0500I CREATING QAOCNZD DATA SPACE ptf_level
To see if QAOCNZ15 is active, issue the following command:
D PROG,EXIT,EN=CNZ_MsgToSyslog,DIAG
You can also use the following MVS SETPROG EXIT command to dynamically ADD this exit as ACTIVE or INACTIVE:
SETPROG EXIT,ADD,EXITNAME=CNZ_MsgToSyslog,STATE=ACTIVE,MODNAME=QAOCNZ15,DSN=data_set_which_contains_this_member
If necessary, you can then use the following MVS SETPROG EXIT command to DELETE the exit:
SETPROG EXIT,DELETE,EXITNAME=CNZ_MsgToSyslog,MODNAME=QAOCNZ15
Note
BMC recommends against concatenating any BMC-supplied load library with SYS1.PARMLIB, or inserting a BMC-supplied load library into the MVS Linklist. If you wish to load the QAOCNZ15 program from the SYS1.PARMLIB concatenation, copy only the QAOCNZ15 load module to a new small user library and concatenate this special library with SYS1.PARMLIB.