Automation Guide
Automation Guide
Version 6 Release 3
Automation Guide
IBM
SC27-2846-05
Note
Before using this information and the product it supports, read the information in “Notices” on page
533.
This edition applies to version 6, release 3 of IBM Z NetView (product number 5697-NV6 ) and to all subsequent
versions, releases, and modifications until otherwise indicated in new editions.
This edition replaces SC27-2846-03.
© Copyright International Business Machines Corporation 1997, 2019.
US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with
IBM Corp.
Contents
Figures.............................................................................................................. xvii
About this publication...................................................................................... xxvii
Intended audience..................................................................................................................................xxvii
Publications.............................................................................................................................................xxvii
IBM Z NetView library....................................................................................................................... xxvii
Related publications ........................................................................................................................xxviii
Terminology in this Library.................................................................................................................xxix
Using IBM Z NetView online help...................................................................................................... xxix
Accessing publications online........................................................................................................... xxix
Ordering publications .........................................................................................................................xxx
Accessibility ............................................................................................................................................. xxx
Tivoli user groups......................................................................................................................................xxx
Support information................................................................................................................................. xxx
Conventions used in this publication....................................................................................................... xxx
Typeface conventions ....................................................................................................................... xxxi
Operating system-dependent variables and paths...........................................................................xxxi
Syntax diagrams................................................................................................................................. xxxi
iii
IBM Z System Automation................................................................................................................... 30
Examples of Using NetView Program Interfaces................................................................................ 30
Distributed Networks......................................................................................................................30
IP Networks Using SNMP............................................................................................................... 30
Non-IBM Networks......................................................................................................................... 30
Automation-Related Functions and Services...................................................................................... 30
Managing Workload........................................................................................................................ 31
Managing Network Performance....................................................................................................31
Managing Input/Output.................................................................................................................. 31
Managing Storage........................................................................................................................... 32
Management Reporting.................................................................................................................. 32
iv
Using a Backup Focal Point............................................................................................................ 49
Defining Operator Sphere-of-Control.............................................................................................50
v
Routing Messages to EMCS Consoles Based on Route Codes...................................................... 75
Message Routing Flow......................................................................................................................... 75
DSIEX17 Processing....................................................................................................................... 76
PIPE CORRWAIT............................................................................................................................. 77
ASSIGN PRI/SEC Processing..........................................................................................................77
Authorized Receiver Processing.....................................................................................................77
DSIEX02A Processing.....................................................................................................................77
Wait Processing.............................................................................................................................. 78
Automation-Table Processing........................................................................................................ 78
DSIEX16 Processing....................................................................................................................... 79
ASSIGN COPY Processing...............................................................................................................79
Discard or Display Processing........................................................................................................ 79
NetView Program Hardware-Monitor Data and MSU Routing.............................................................80
ALERT-NETOP Application............................................................................................................. 81
XITCI Processing............................................................................................................................ 82
Initial Hardware-Monitor Processing............................................................................................. 82
Automation-Table Processing........................................................................................................ 82
DSIEX16B Processing.....................................................................................................................83
Continued Hardware Monitor Processing...................................................................................... 83
NetView Program Command Routing.................................................................................................. 83
Compatibility of Commands with Tasks.........................................................................................83
Command Routing Facilities...........................................................................................................84
Command Priority........................................................................................................................... 84
vi
Defining Autotasks............................................................................................................................... 99
Activating Autotasks............................................................................................................................ 99
Using the AUTOTASK Command..........................................................................................................99
Associating Autotasks with Multiple Console Support Consoles..................................................... 100
Deactivating Autotasks...................................................................................................................... 100
Automating with Autotasks............................................................................................................... 100
Managing Subsystems..................................................................................................................101
Processing Unsolicited Messages................................................................................................ 101
Processing Commands................................................................................................................. 101
Starting Tasks............................................................................................................................... 101
Sending Commands to an Autotask Using the EXCMD Command..............................................102
vii
Automation-Table Searches.........................................................................................................124
Types of Automation-Table Statements........................................................................................... 124
Determining the Type of Statement.............................................................................................124
Statement Types and Processing.................................................................................................125
Coding an Automation Table............................................................................................................. 125
BEGIN-END Section........................................................................................................................... 126
IF-THEN Statement............................................................................................................................127
Condition Items..................................................................................................................................132
Bit Strings as Compare Items...................................................................................................... 181
Parse Templates as Compare Items............................................................................................182
Actions................................................................................................................................................185
ALWAYS Statement............................................................................................................................201
%INCLUDE Statement....................................................................................................................... 202
SYN Statement................................................................................................................................... 203
Design Guidelines for Automation Tables......................................................................................... 204
Limit System Message Processing............................................................................................... 204
Streamline the Automation Table................................................................................................ 204
Group Statements with BEGIN-END Sections.............................................................................205
Isolate Complex Compare Items................................................................................................. 206
Include Other Automation Tables................................................................................................206
Tailor Automation Tables for Your Operation..............................................................................207
Use Synonyms.............................................................................................................................. 207
Place Statements Carefully.......................................................................................................... 207
Use Automation-Table Listings.................................................................................................... 207
Use the ALWAYS Statement.........................................................................................................208
Use the CONTINUE Action Carefully............................................................................................208
Set Automation-Table Defaults....................................................................................................208
Limit Automation of Command Responses................................................................................. 208
Automation as the NetView Program Closes............................................................................... 209
Example of an Automation-Table Listing.......................................................................................... 209
Automation-Table Usage Reports..................................................................................................... 211
The AUTOCNT Command............................................................................................................. 211
Example of Usage Reports Output...............................................................................................211
Managing Multiple Automation Tables..............................................................................................220
Getting Started............................................................................................................................. 220
Using Automation-Table Management........................................................................................ 221
viii
EZLEDAPI......................................................................................................................................251
EZLEQCAL..................................................................................................................................... 253
ix
Hexadecimal, Character, and Bit Notations.................................................................................290
When a Field Occurs More than Once.......................................................................................... 290
Using Header Information............................................................................................................291
Using Major Vectors Other than Alerts.........................................................................................292
Using the Resource Hierarchy...................................................................................................... 292
Using the Domain ID.....................................................................................................................293
Automating Other Data by Generating Messages............................................................................. 293
Automating Hardware Monitor Records...................................................................................... 293
Automating Status Changes......................................................................................................... 294
Putting Your Automation Statements into Effect..............................................................................294
Using a Web Application to Put Automation Statements info Effect.......................................... 295
Correlating Messages and MSUs Using the Correlation Engine........................................................295
Correlation Overview.................................................................................................................... 296
Storage Considerations................................................................................................................ 297
Correlation Processing................................................................................................................. 297
Filtering with State Correlation.................................................................................................... 300
x
The MS-CAPS Application............................................................................................................ 331
Sphere-of-Control with Architected Focal Points........................................................................333
How to Define an Architected Focal Point (DEFFOCPT).............................................................. 336
The ALERT-NETOP Application.................................................................................................... 337
The LINK-SERVICES-NETOP Application.................................................................................... 341
The OPS-MGMT-NETOP and EP-OPS-MGMT Applications......................................................... 342
User-Defined Categories and User-Defined Applications........................................................... 342
Focal Point Support Unique to the NetView Program....................................................................... 342
Alert Forwarding with LUC............................................................................................................343
Command and Message Forwarding............................................................................................343
Message/Alert Forwarding with OST-NNT................................................................................... 345
Full-Screen Functions and the Terminal Access Facility.................................................................. 345
Using the SDOMAIN Command While Monitoring....................................................................... 345
Using a TAF Session to Shift Domains......................................................................................... 345
Logging on to a Distributed System Directly................................................................................346
Limitations.................................................................................................................................... 346
Choosing a Forwarding Method......................................................................................................... 346
Choosing a Configuration................................................................................................................... 347
Persistent and Nonpersistent Sessions....................................................................................... 347
Using More Than One Focal Point................................................................................................ 348
Changing, Dropping, and Listing Focal Points................................................................................... 348
xi
Understanding AON Automation and Recovery................................................................................ 381
Automation Table......................................................................................................................... 381
The Control File.............................................................................................................................381
Understanding Automated Operators............................................................................................... 382
Understanding Notifications.............................................................................................................. 382
Understanding Automation Tracking.................................................................................................382
Understanding Automation Notification Logging in the Hardware Monitor..................................... 383
Resource Recovery and Thresholds.................................................................................................. 383
AON/SNA Automation........................................................................................................................ 385
Understanding the AON/SNA Options......................................................................................... 385
AON/SNA Subarea VTAM Resource Automation Support........................................................... 387
Monitoring Advanced Peer-to-Peer Networking Resources....................................................... 387
AON/SNA X.25 Monitoring Support............................................................................................. 387
AON/TCP Automation........................................................................................................................ 388
Proactive Monitoring.....................................................................................................................389
Recovery Monitoring.....................................................................................................................389
MIB Polling and Thresholding (TCP/IP for z/OS only)................................................................. 389
Operator Awareness.....................................................................................................................389
xii
Checking the Effect of Automation.............................................................................................. 413
Ensuring That Autotasks Process Command Procedures Correctly........................................... 413
Using Debugging Tools.......................................................................................................................414
Using Logs..................................................................................................................................... 414
Evaluating Unautomated Messages and MSUs........................................................................... 415
Using NetView Automation Table Listings................................................................................... 415
Using NetView Automation Table Tracing................................................................................... 416
xiii
Using MVS Operator Consoles to Issue Commands and Command Lists as Subsystem
Commands.................................................................................................................................... 456
Using MVS Operator Consoles to Issue Commands and Command Lists as MODIFY (F)
Commands.................................................................................................................................... 457
Multiple Console Support Operator Use of Command Lists............................................................. 457
Issuing an MVS Command from a NetView Operator ID.................................................................. 458
xiv
Stopping MVS Command Management and Keeping the CNMCAUaa Member............................... 493
Stopping MVS Command Management and Deleting the CNMCAUaa Member...............................493
Stopping the MVS Command Exit from Being Invoked.....................................................................493
Deactivating the MVS Command Exit................................................................................................ 493
Testing MVS Command Management..................................................................................................... 494
Starting the Exclusion or Inclusion List...................................................................................................494
Changing the Exclusion or Inclusion List................................................................................................ 494
General Processing of CONSOLE and COMMAND Inclusion and Exclusion Lists.................................. 494
Commands Excluded by NetView Command Exit.............................................................................495
Restrictions........................................................................................................................................ 496
MVS Command Management Processing on the NetView Program...................................................... 496
Protecting MVS Command Management Processing............................................................................. 498
Notices..............................................................................................................533
Programming Interfaces..........................................................................................................................534
Trademarks..............................................................................................................................................534
Privacy policy considerations.................................................................................................................. 534
Index................................................................................................................ 537
xv
xvi
Figures
5. Message Flow between the z/OS System and the NetView Program through the Subsystem
Interface..................................................................................................................................................... 26
6. Command Flow between the z/OS System and the NetView program..................................................... 27
xvii
23. Definition Statements for AUTO1............................................................................................................. 99
xviii
48. Example of Using the CMD and ROUTE Keywords.................................................................................191
49. Example of Using EXEC Action with the ROUTE Keyword..................................................................... 193
xix
73. MSG Summary Report for Message Automation................................................................................... 219
83. Message Flow between the z/OS System and the NetView Subsystem Interface...............................260
84. Command Flow between z/OS and the NetView program.................................................................... 261
91. Example of Checking an MVS WTOR Message Using the Message ID.................................................. 280
xx
98. Example of Routing Messages Using a Placeholder.............................................................................. 283
109. Example of Using a Placeholder to Check the Contents of a Position in an MSU Subvector............. 287
xxi
123. Example of Checking Multiple Resources in the Resource Hierarchy................................................ 293
130. State transitions for the threshold rule using forwardEvents............................................................. 306
134. State transitions for the reset on match rule (randomOrder=no)....................................................... 310
135. State transitions for the reset on match rule (randomOrder=yes)..................................................... 311
140. Typical Focal Point and Entry Point Definition Statements in DSI6INIT............................................ 336
141. NetView Intermediate Node Focal Point Forwards Alerts with LU 6.2............................................... 339
144. Sample DSIQTSKI Initialization Member for the DSIQTSK Task........................................................ 361
145. Automation Table Statement to Trap IST105I and Issue ORCONV Command................................. 361
xxii
148. Changing the Default RODM................................................................................................................. 363
153. Example Screen for the ASSISCMD Command--Enter M for More Detail...........................................365
154. Example Screen for the ASSISCMD Command--More Detail About Command................................. 365
xxiii
173. $HASP098 Command List.................................................................................................................... 413
183. Flow Diagram for Solicited System (Subsystem Interface) Messages............................................... 466
187. Flow Diagram for Unsolicited System (SSI or MVS Extended Console) Messages (CNMCSSIR)....... 469
191. Flow Diagram for Solicited and Unsolicited System MVS Extended Console Messages for OST,
NNT, or Autotask......................................................................................................................................471
192. Flow Diagram for Solicited and Unsolicited System MVS Extended Console Messages for PPT.......471
196. Messages Automated by the Basic Automation Sample Set Automation Table................................ 502
xxiv
198. Testing Your Automation Table............................................................................................................505
xxv
xxvi
About this publication
The IBM Z® NetView® product provides advanced capabilities that you can use to maintain the highest
degree of availability of your complex, multi-platform, multi-vendor networks and systems from a single
point of control. This publication, the IBM Z NetView Automation Guide, provides information about
planning for automated operations. You can use the automation capabilities of the NetView program to
improve system and network efficiency, and operator productivity. NetView automation can eliminate or
simplify much of the routine work that operators perform.
Intended audience
This publication is for system programmers who want to use the NetView program for system automation,
network automation, or both. The publication is both for those who are new to automation and for those
who have existing automation projects that they want to update or expand.
Publications
This section lists publications in the IBM Z NetView library and related documents. It also describes how
to access NetView publications online and how to order NetView publications.
Related publications
You can find additional product information on the IBM Z NetView web site at https://www.ibm.com/us-
en/marketplace/ibm-tivoli-netview-for-zos.
Ordering publications
You can order many Tivoli publications online at http://www.ibm.com/e-business/linkweb/publications/
servlet/pbi.wss
You can also order by telephone by calling one of these numbers:
• In the United States: 800-426-4968
• In Canada: 800-879-2755
In other countries, contact your software account representative to order Tivoli publications. To locate
the telephone number of your local representative, perform the following steps:
1. Go to http://www.ibm.com/e-business/linkweb/publications/servlet/pbi.wss.
2. Select your country from the list and click the grey arrow button beside the list.
3. Click About this site to see an information page that includes the telephone number of your local
representative.
Accessibility
Accessibility features help users with a physical disability, such as restricted mobility or limited vision, to
use software products successfully. Standard shortcut and accelerator keys are used by the product and
are documented by the operating system. Refer to the documentation provided by your operating system
for more information.
For additional information, see the Accessibility appendix in the User's Guide: NetView.
Support information
If you have a problem with your IBM software, you want to resolve it quickly. IBM provides the following
ways for you to obtain the support you need:
Online
Please follow the instructions located in the support guide entry: https://www.ibm.com/support/
home/pages/support-guide/?product=4429363.
Troubleshooting information
For more information about resolving problems with the IBM Z NetView product, see the IBM Z
NetView Troubleshooting Guide. You can also discuss technical issues about the IBM Z NetView
product through the NetView user group located at https://groups.io/g/NetView. This user group is for
IBM Z NetView customers only, and registration is required. This forum is also monitored by
interested parties within IBM who answer questions and provide guidance about the NetView
product. When a problem with the code is found, you are asked to open an official case to obtain
resolution.
Syntax diagrams
The following syntax elements are shown in syntax diagrams. Read syntax diagrams from left-to-right,
top-to-bottom, following the horizontal line (the main path).
• “Symbols” on page xxxi
• “Parameters” on page xxxii
• “Punctuation and parentheses” on page xxxii
• “Abbreviations” on page xxxiii
For examples of syntax, see “Syntax examples” on page xxxiii.
Symbols
The following symbols are used in syntax diagrams:
Parameters
The following types of parameters are used in syntax diagrams:
Required
Required parameters are shown on the main path.
Optional
Optional parameters are shown below the main path.
Default
Default parameters are shown above the main path. In parameter descriptions, default parameters
are underlined.
Syntax diagrams do not rely on highlighting, brackets, or braces. In syntax diagrams, the position of the
elements relative to the main syntax line indicates whether an element is required, optional, or the
default value.
When you issue a command, spaces are required between the parameters unless a different separator,
such as a comma, is specified in the syntax.
Parameters are classified as keywords or variables. Keywords are shown in uppercase letters. Variables,
which represent names or values that you supply, are shown in lowercase letters and are either italicized
or, in NetView help, displayed in a differentiating color.
In the following example, the USER command is a keyword, the user_id parameter is a required variable,
and the password parameter is an optional variable.
USER user_id
password
COMMAND_NAME opt_variable_1,,opt_variable_3
You do not need to specify the trailing positional commas. Trailing positional and non-positional commas
either are ignored or cause a command to be rejected. Restrictions for each command state whether
trailing commas cause the command to be rejected.
Syntax examples
The following examples show the different uses of syntax elements:
• “Required syntax elements” on page xxxiii
• “Optional syntax elements” on page xxxiii
• “Default keywords and values” on page xxxiii
• “Multiple operands or values” on page xxxiv
• “Syntax that is longer than one line” on page xxxiv
• “Syntax fragments” on page xxxiv
A required choice (two or more items) is shown in a vertical stack on the main path. The items are shown
in alphanumeric order.
REQUIRED_OPERAND_OR_VALUE_1
REQUIRED_OPERAND_OR_VALUE_2
OPTIONAL_OPERAND
A required choice (two or more items) is shown in a vertical stack below the main path. The items are
shown in alphanumeric order.
OPTIONAL_OPERAND_OR_VALUE_1
OPTIONAL_OPERAND_OR_VALUE_2
KEYWORD2 VALUE1
KEYWORD3 VALUE2
REPEATABLE_OPERAND_OR_VALUE_1
REPEATABLE_OPERAND_OR_VALUE_2
REPEATABLE_OPERAND_OR_VALUE_3
value_n )
OPERAND7 OPERAND8
Syntax fragments
Some syntax diagrams contain syntax fragments, which are used for lengthy, complex, or repeated
sections of syntax. Syntax fragments follow the main diagram. Each syntax fragment name is mixed case
and is shown in the main diagram and in the heading of the fragment. The following syntax example
shows a syntax diagram with two fragments that are identified as Fragment1 and Fragment2.
COMMAND_NAME Fragment1
Fragment2
Fragment1
KEYWORD_A= valueA KEYWORD_B KEYWORD_C
Fragment2
KEYWORD_D KEYWORD_E= valueE KEYWORD_F
Benefits of Automation
NetView automation offers system-wide and network-wide benefits by simplifying your operating
environment. You can reduce the amount of manual intervention required to manage operating systems,
subsystems, application programs, network devices, and many other products.
The need to simplify operations increases as you add hardware and software products to your data
center, data centers to your network, and personnel to your data-processing staff. By simplifying your
operations, NetView automation can help you meet required service levels, contain costs, and make
efficient use of your operation staff.
NetView automation helps you:
• Improve system and network availability
• Remove constraints to growth
• Increase operator productivity
• Ensure more consistent operating procedures
Increasing the number of consoles also constrains growth. New products can add consoles that you need
to manage. Regardless of your operating system, having many systems requires many consoles.
Automation consolidates consoles on individual systems and helps you operate many systems from one
centralized point.
Another constraint is the increasing complexity of networks. Interconnected networks often include large
numbers of resources, many product types, and combinations of TCP/IP and Systems Network
Architecture (SNA) resources. Finding experienced operators to manage all of them can be difficult and
costly.
Automation reduces the complexity of the operator's task by managing complex networks according to
rules that you specify. Therefore, automation can help you to manage system and network growth.
Classes of Automation
With the NetView program, you can establish a wide variety of automated environments. This section
describes several classes of automated operations and the terminology used in this book to describe each
one. These classes include:
• “System Automation” on page 5
• “Network Automation” on page 5
• “Single-System Automation” on page 6
• “Multiple-System Automation” on page 6
System Automation
System automation means automatically responding to system messages and MSUs, and automatically
issuing system commands. The system commands can be issued either at scheduled times or in response
to a system message or MSU.
For information about how the NetView program accomplishes system automation with the help of
operating-system facilities, see “Operating-System Automation Facilities and Interactions with the
NetView Program” on page 24.
From the perspective of the NetView program, system messages and MSUs are the messages and MSUs
that an operating system, subsystem, or application program issues. The operating system message
types include:
• Write-to-operator (WTO)
• Write-to-operator-with-reply (WTOR)
The NetView program can alter or redirect these before they are presented to consoles or system logging.
System MSUs are MSUs that come across the NetView program-to-program interface or through LU 6.2
sessions from other programs on the system. NetView automation can suppress or automatically respond
to system messages and MSUs.
System commands are the commands that operators can issue to systems, subsystems, and application
programs. In an automated environment, NetView operators and automation routines can use all system
commands. For example, you might issue a system command automatically at specified intervals or in
response to a particular system message.
Network Automation
Network automation means automatically responding to network messages and MSUs, and automatically
issuing network commands. The network commands can be issued either at scheduled times or in
response to a network message or MSU.
The NetView program provides you with extensive, policy-based automation for your network resources.
AON provides automation of the following network resources:
• VTAM SNA
• TCP/IP
The NetView program accomplishes network automation through interaction with other communication
software, typically VTAM. If you are already using the NetView program for network management, you can
progress to network automation by having the program do much of the work that operators now do.
Network automation, unlike system automation, does not use the operating system's message-
processing facilities.
Network messages and network MSUs are those messages and MSUs that come from or go through the
VTAM program, directly or indirectly. They include:
Single-System Automation
In single-system automation, the automation of each host system is self-contained. You can automate the
system, its subsystems and application programs, and the network devices in the domain of that system's
VTAM program. However, in single-system automation, the NetView program cannot automate any
devices outside its own VTAM domain. Operators handle those tasks that cannot be automated locally,
such as recovery of an operating system or an initial program load.
Multiple-System Automation
In multiple-system automation, you coordinate automation across two or more host systems. The
coordination enables you to automate the operation of resources that you cannot automate locally on a
single system. Multiple-system automation is either single-site or multi-site, depending on whether the
coordination unites a single data center or spans several data centers at remote locations.
With multiple-system automation, you can establish remote operations, called centralized operations, in
which many of your systems have no operators present and do not need full operator interfaces. You
operate the unattended systems remotely. You forward information about the conditions of the
unattended systems to the central system, along with any problem reports that you cannot automate
locally.
Stages of Automation
NetView automation encompasses a broad selection of techniques. These techniques can be divided into
those used:
• On a single system
• In a multiple-system environment
• Specifically for systems that are not running the NetView program or for non-SNA devices
For an example of the stages of automation, see “Example of a Staged Approach” on page 16.
The first three stages of automating a single system use NetView automation to increase the speed and
accuracy with which operators process information as follows:
• Suppressing messages and blocking alerts
• Consolidating consoles
• Consolidating commands
The next three stages further reduce the workload of operators by having the NetView program
automatically perform the following management tasks:
• Schedule commands
• Respond to messages and MSUs
• Establish coordinated automation
The final stage, improving operator interfaces, adapts your operator interfaces to the new environment
and the reduced workload.
Reducing Consoles
You can decrease the number of NetView consoles your operators monitor by moving information from
the hardware monitor to another interface. You can decrease or eliminate use of the hardware monitor by
displaying alert information in other forms. For example, alerts that cannot be handled with an automatic
response might be converted into messages or displayed on a full-screen panel. The automation table
can initiate this process.
You can decrease the number of NetView consoles your operators monitor by decreasing or eliminating
messages to operators and by increasing your reliance on the hardware monitor. When problems occur
that automation cannot handle, you can generate hardware monitor alerts to inform your operators. You
can then use the hardware monitor to display information that helps operators solve problems.
Consolidating Commands
You can use simple command procedures to improve operations. Learn the sequence of commands your
operators most commonly issue and write short programs (called command procedures) to issue those
sequences automatically. An operator can enter the name of the command procedure, and the NetView
program issues all of the commands in the sequence.
Scheduling Commands
If you want to issue a command at a particular time or issue a given command periodically, you can use
command scheduling and the NetView timer commands. For example, you might need to shut down your
applications at 5:00 p.m. to free processor capacity for a special activity, such as tape transfer, or you
might want to check the status of certain tasks every 3 minutes.
The command that is issued can be a command procedure. Suppose you have written a simple command
procedure that initializes an application program. If you want to initialize the program every day at 6:00
a.m., you can run your command procedure daily at that time.
By scheduling commands, you relieve your operators of the need to issue the commands manually. You
can also perform actions when your operators are unavailable or repeat certain commands at a frequency
that is impractical for human operators.
Generating Alerts
To generate your own alerts, use the GENALERT command, the program-to-program interface, or the
management services (MS) transport of the NetView program. After suppressing or automating the
majority of the messages you receive, use alerts to notify operators of the remaining messages and of any
problems that your automation encounters.
You can issue the GENALERT command from the automation table, when certain messages are received,
or from command procedures. You control the contents of the alerts you generate, including descriptions,
suggested actions, telephone numbers of people to contact, and other information that fits your
environment.
You can also write a REXX command that formats the alert and sends it by way of the program-to-
program interface (PPI) PIPE stage.
If you customize the copied automation for the new systems, the number of changes needed depends on
how different the new environment is from the one on which you developed the automation.
Use a flexible design for propagation. See “Designing for Expansion and Propagation” on page 44 for
information about how you can design portable automation.
Centralizing Operations
In a centralized operation that results from single-system consolidation, you can route information from
many systems, spread across the network, to a single console or set of consoles. Operators no longer
need to run each system from separate consoles.
To avoid overburdening the communication between systems, do not send problems to another system
until you have locally automated responses to as many problems as possible. Forward only two types of
information:
• Information about the condition of the individual systems (for display to operators)
• Information about problems that the individual systems cannot automatically resolve without
assistance from another system
These problems include those that require operator attention and those that require restarting the
processor, the operating system, or the NetView program.
As shown in Figure 3 on page 14, you can designate one system as the focal point for receiving
forwarded exceptions from distributed data systems. By logging on to the NetView program at the focal-
point system, operators can manage a group of systems, an entire data center, or several data centers.
Information that cannot be automated by either the target systems or their focal point is presented to
operators at the focal point system.
With an arrangement of focal-point and distributed data systems, you might not staff certain data centers
during off shifts and remotely operate the data centers. During those shifts, you can forward information
from the distributed systems at unattended data centers to a focal-point system at an attended data
center. However, running an automated data center unattended might still require some manual
intervention for such tasks as mounting tapes and handling printers.
See “Automation-Related Functions and Services” on page 30 for ways to reduce the need for manual
intervention.
You can use the NetView program to forward messages, alerts, and the status information used by the
NetView management console (NMC). By tracking the focal points of the application programs, the
NetView program can also assist in information forwarding for application programs that use the
management services transport.
Because an outage in the focal-point system can interrupt the management of many other systems,
select a reliable system for your focal point. You can also designate a backup focal point to take control in
the event of a planned or unplanned outage.
See “Choosing Focal Points” on page 48 for criteria to use in selecting a reliable system for your focal
point. For information about selecting a backup focal point, see “Using a Backup Focal Point” on page
49.
IBM Z System Automation can control Enterprise System/4381, Enterprise System/3080, Enterprise
System/3090, and most Enterprise System/9000 (ES/9000) processors, but cannot remotely initialize
9370 processors.
However, the Automated Power Control (APC) feature of the 9370 enables you to automate initial
program loads (IPLs). You can set a timer to turn on power to the 9370, which then performs an IPL and
starts the operating system.
The operating system can start the NetView program, which then establishes your system and network
automation. APC also enables you to turn on power remotely through a modem or other RS-232 device
for initialization in recovery situations.
The 9370 system also offers a Remote Operator Facility (ROF). This facility gives you a remote-console
capability and enables you to control distributed 9370s from your central site. ROF runs on a workstation
and enables operators at the central site to control the hardware and operating system of the remote
9370 service processor through a dialed connection.
Note: IBM Z System Automation does not support the rack-mounted ES/9000 processors (models 120,
130, 150, and 170). You can initialize these processors remotely with the NetView RUNCMD command by
Automating Systems that are Not Running the NetView Program and Non-SNA Devices
You can use the NetView program to automate many target systems, even though the target systems are
not running the NetView program. You can also use the NetView program to automate many network
devices, even though the devices do not use SNA protocols or report to VTAM.
NetView automation capabilities for a system that is not running the NetView program or for a non-SNA
device depend on the capabilities of the system or device. The system or device must be able to send
problem reports and other information in a form that the NetView program can interpret (such as
messages or MSUs), and the system or device must be able to receive commands from the NetView
program.
You can directly automate some products using the NetView program and indirectly automate other
products by using an existing NetView interface or by writing your own interface.
This chapter describes the major products used in NetView program automation, their roles in an
automated environment, and how they relate to one another. Specifically, this chapter includes overview
information about:
• NetView Program Automation Facilities
• “Operating-System Automation Facilities and Interactions with the NetView Program” on page 24
• Other IBM programs that provide automation
• “Examples of Using NetView Program Interfaces” on page 30
• “Automation-Related Functions and Services” on page 30
Accepting Parameters
Command procedures can also accept parameters. For example, operators can enter parameter
information after the name of the command procedure when using a command procedure from a
terminal.
Automation facilities, such as other command procedures or the automation table, can also specify
parameters when using your command procedure. For example, you can write a recovery command list
that uses parameter variables to accept the name of the application program to restart, the start
command for the product, and the amount of time to wait for the application program to initialize.
Waiting
Command procedures can issue commands to solicit information and wait for the responses before taking
further action. For example, an automation procedure that restarts a failed application program might
issue a query command afterward and wait for verification that application-program cleanup is complete.
Timer Commands
You can use timer commands to initiate automated actions. Both operators and automation procedures
can issue timer commands to schedule other commands, command lists, and command processors. The
NetView program provides the following timer commands:
• The AT command schedules another command for execution at a specified time.
• The AFTER command schedules a command for execution after a specified delay.
• The EVERY command schedules a command to be issued repeatedly after specified intervals.
• The CHRON command enables you to perform complex timer automation functions.
• The LIST TIMER and PURGE TIMER commands enable you to examine or cancel commands that you
have scheduled.
• The TIMER command enables you to add, change, and delete timers using full screen panels.
For information about the using the timer commands, see Chapter 11, “Timer Commands,” on page 95
or the NetView program online help.
Autotasks
An autotask is an operator station task (OST) that does not require a terminal or an operator. Like other
OSTs, autotasks can receive messages and issue commands. Autotasks are limited only by the fact that
they cannot run full-screen applications. Unlike other OSTs, autotasks can run without the VTAM program
being active. This ability, along with the fact that autotasks can do most of the tasks you can do from an
operator's OST, makes autotasks useful for automation.
You can define one or more autotasks for automation and have them started during NetView initialization.
Then the automation table, command lists, command processors, and timer commands can all issue
commands under your autotasks. The autotasks can receive messages and present them to the
automation table or to installation-exit routines. Thus, many of the other facilities for automation can use
autotasks.
Autotasks are the preferred task for a wide variety of automation purposes. When you route work to an
autotask, you can avoid problems that might occur if you used an operator's OST. For example, the
operator might be logged off or using the OST for other work.
Automation Table
The NetView automation table enables you to specify processing options, for incoming messages and
MSUs, and to issue automatic responses. The table contains a sequence of statements that define the
actions that the NetView program can take in various circumstances.
To determine the automated actions that the program can take, your automation statements can examine
any field in an MSU and any part of message text. (In multiline messages, only the ACQUIRE condition can
examine lines after the first line.) Statements can also examine IDs of messages, resource hierarchies of
Installation Exits
In the NetView program, you can write routines that take control of processing at certain points. These
points, called installation exits, enable you to alter the normal course of NetView program processing.
Installation exits that are important to automation are:
• DSIEX02A
• DSIEX16
• DSIEX16B
• DSIEX17
• XITCI
For details about writing installation-exit routines in assembly language, refer to IBM Z NetView
Programming: Assembler. For details about writing installation-exit routines in PL/I and C languages, refer
to IBM Z NetView Programming: PL/I and C.
Using DSIEX02A
If you write a routine for DSIEX02A, the routine receives control just before a message goes to the
automation table. The routine can alter, replace, or delete the message. If you alter or replace the
message, the new version of the message goes to the automation table. To increase processing speed,
write this installation-exit routine in assembly language. You can also use PL/I or C language.
Using DSIEX17
A routine written by you for DSIEX17 that receives control as soon as a message or delete operator
message (DOM) is received from the MVS system. Your routine also receives control when a message or
DOM is received from user calls to assembly language service DSIMMDB or to PL/I and C language service
CNMPMDB.
Refer to IBM Z NetView Programming: Assembler for information about DSIMMDB. Refer to IBM Z NetView
Programming: PL/I and C for information about CNMPMDB.
Your routine can delete a message or DOM, or can modify the text and attributes of a message. If you
write a routine for this installation exit, use only assembly language.
Your routine can also be used to mark messages that were issued as action messages from MVS for which
no DOM is expected.
Using XITCI
If you write a routine for exit XITCI for the hardware monitor, your routine receives control when the
BNJDSERV task receives data. With XITCI, you can modify any data entering the hardware monitor. The
XITCI exit routine can be written in PL/I, C, or assembly language.
Status Monitor
You can use the NetView status monitor to automatically reactivate failing network nodes. The MONON
and MONOFF commands start and stop this form of automation. You can enter MONON and MONOFF
from a terminal or have your automation application program issue them. Use statements in the VTAMLST
data set members to control which resources the status monitor automates.
If you want to do your own automation when a node changes status, you can add a SENDMSG statement
to DSICNM (CNMS5001). Thereafter, a change in the node status generates a CNM094I message, which
you can process with the automation table. For details about SENDMSG, refer to the IBM Z NetView
Administration Reference.
Setting Options for Automating with either the Message Processing Facility (MPF) or the Message
Revision Table (MRT)
To automate responses to messages, MPF can be used to set options, such as whether a given message is
displayed to operators, suppressed, or marked as eligible for automation. The message revision table can
also be used to provide these functions and more.
By default, the NetView program receives each message that you mark eligible for automation and sends
it through the automation table. You can save processing time by marking as eligible only those messages
that you want to be automated.
Messages leaving MPF or the message revision table can flow to the NetView program through the
subsystem interface.
Automating a Sysplex
In addition to providing automation for a single MVS system, the NetView program can provide
automation for MVS systems that are interconnected in a sysplex configuration. An MVS sysplex
configuration consists of multiple MVS systems working as a single system by sharing functions and
programs.
If the NetView program is operating in a sysplex environment, the NetView program automates only those
messages that are directed to it by console name or route code. See “DoForeignFrom Statement ” on
page 105 for disposition of messages from outside the local MVS image.
See Chapter 7, “Automation in an MVS Sysplex,” on page 61 for more information about sysplex
automation.
f procname,command
Where procname is the name that your system programmer assigned to the cataloged procedure for the
NetView program such as CNMCNETV, and command is the NetView command you want to issue. For
example, to display the MVS console names and IDs used by the NetView program, enter:
f procname,disconid
Distributed Networks
You can automate the handling of events that occur in distributed networks by using the NetView program
with the Event/Automation Service. The Event/Automation Service provides a gateway between the
NetView program and the distributed networks for network events that originate in either environment.
The Event/Automation Service communicates with the NetView program using the NetView subsystem
PPI interface, and communicates with event servers using the TCP/IP protocol.
The Event/Automation Service can translate and forward either NetView alerts or messages into Event
Integration Facility (EIF) events and can also translate and forward these events into NetView alerts.
These alerts can then be used with automation to start automatic responses.
Non-IBM Networks
The NetView program can manage other types of networks (for example, DECnet).
Managing Workload
Automating the management of production batch jobs offers advantages in availability, improved control,
and reduced operator involvement.
IBM offers the Operations Planning and Control/Enterprise Systems Architecture (OPC/ESA) licensed
program for workload management. The OPC/ESA program can plan, control, and automate your MVS
batch production workload. This program plans and schedules your workload processing and monitors
and controls the flow of work through your entire data-processing environment, both local and remote. It
reduces the human intervention needed while letting you retain manual control of important processes
and decisions.
Using the OPC/ESA program for workload management complements NetView automation. The OPC/ESA
program does the job scheduling. If a failure in a scheduled job requires operator action, NetView
program automation can supply that action.
For more information about the OPC/ESA program, refer to Operations/Planning and Control/Enterprise
Systems Architecture General Information.
Managing Input/Output
Input/output (I/O) management involves controlling the flow of data into and out of a data processing
complex. In an automated environment, you might want to change your approach to I/O activities that
previously required manual intervention, such as tape and printer management.
One approach to tape management is to avoid it by converting from tapes to direct access storage devices
(DASD). DASD does not require the manual intervention that tapes do. You might want to compare, on a
case-by-case basis, the cost of DASD to the cost of tapes plus the cost of people to handle the tapes.
Consider the higher reliability and manageability of DASD. Also, you can institute periodic reviews of your
I/O rules and policies. Determine how effective your policies are and how consistently your application
programmers are applying them.
For less frequently used data, you might find that it is still appropriate to rely on tape devices. The
cartridge of the IBM 3480 Magnetic Tape Subsystem is extensively used for its size and reliability
advantages over other tape devices. The Automatic Cartridge Loader function is available to assist with
cartridge handling and scratch tape mounts with minimal human intervention and minimal delay.
Sometimes, the best approach to printer handling is to place responsibility in the hands of the users. You
might be able to reduce the volume of printing. Programs such as IBM's Report Management and
Distribution System (RMDS) program can help. The RMDS program enables you to present report data to
Managing Storage
Storage management involves maintaining the integrity and availability of data that you keep on auxiliary
storage devices such as tapes or DASD. Previously, users had to be aware of the characteristics of each
device within the pool of storage devices on which their data sets can reside.
With the introduction of the Storage Management Subsystem (SMS) using the MVS Data Facility Storage
Management Subsystem (DFSMS) family of products, storage administrators rather than users can
manage DASD storage. Storage administrators establish policy statements in the form of storage classes
and management classes, defining and managing the way storage is allocated on the basis of these
classes. The user, allocating storage in terms of these policy statements, no longer needs to use device
and configuration specifics such as UNIT and VOLSER.
Use of SMS decreases the number of program abends caused by out-of-space conditions that plague
production job streams, because jobs need not be sensitive to configuration details. You can use storage
management with workload-management products, such as the OPC/ESA program, that offer automated
job recovery facilities. The result is production streams that run consistently and finish within their
scheduled windows with minimal human intervention.
For more information about the DFSMS family of products, refer to the MVS Storage Management library.
Management Reporting
As you move toward an automated environment, include a strong management-reporting system in your
automation design. As automation handles more and more of your operations, you might need to identify
things that need management attention or that necessitate resource changes. To capture information
from logs and summarize it for presentation to management, you can use the Information/Management
and Service Level Reporter (SLR) products.
For information about Information/Family and SLR products, refer to Introducing the Information/Family
for MVS and Service Level Reporter General Information.
This chapter describes the project definition tasks and phase of an automation project. In this phase, you
assemble a planning team, investigate how automation can improve your operations, and set goals and
objectives for the project.
Problem-Management Reports
Problem-management reports track hardware and software problems and outline the actions taken to
solve each problem. They can help you identify frequently recurring problems that are consuming
resources, and they can help you identify procedures for responding to those problems.
Look for outages that were prolonged, either because the problem was not detected immediately or
because the resources necessary to correct the problem were not available. Decide whether an
automated process could have detected the problem and notified the correct people more quickly, or
solved the problem.
Help-Desk Logs
Help-desk logs are another source of problem descriptions. Like problem-management logs, help-desk
logs help you identify recurring situations and situations for which established procedures are
inadequate.
Service-Level Agreements
By reviewing service-level agreements and measurements taken to confirm compliance, you can identify
areas where you are having difficulty meeting commitments to users. These areas clearly represent
problems. Automation might be a way to solve them.
Users
Users can inform you of possible problems in the environment, including problems that they have not
reported to operators or that are not tracked by problem management.
Some measurements might overlap. For example, a measurement of the personnel savings per data
center might overlap with a measurement of the personnel savings per application. If you have
overlapping measurements, ensure that you do not include both of them in the total savings.
Securing Commitment
Your investigation of requirements, goals, costs, and benefits can assist you in obtaining the commitment
of management and of your whole organization for proceeding with the automation project.
It is important to obtain commitment and support from each department or group that automation
affects. The affected groups might include system and network operations, system programming,
technical support, users, and others. You need the cooperation of these groups to successfully design and
implement automated operations. Therefore, ensure that each group understands your goals and the
benefits that you expect.
This chapter describes the design phase of an automation project. In this phase, identify specific
procedures to automate and the work required to automate them. Define the scope of the project and the
order in which procedures are to be automated. From this information, determine a structure for your
automation. Lay the groundwork for implementation by establishing common practices and rules for all of
your automation application programs.
After introducing the project design tasks, this chapter describes several guidelines that can direct your
design efforts.
Establish Standards
Besides creating schedules, the design team can establish standards and choose general automation
techniques. For example, you might decide on any of the following:
• An approach to security issues for all routines
• A format for writing messages to the logs for all routines
• A common way of notifying operators when there are problems
• A common protocol for using global variables to share information between routines
By deciding these things in advance, you ensure a unified automation approach that makes maintenance
easier and enhances accurate communication among all parts of the automation application. “Design
Guidelines” on page 44 describes many of the issues that you must consider. These include not only
Design Guidelines
Consider the following principles, suggestions, and guidelines when creating your design:
• Design for easy expansion and propagation - see “Designing for Expansion and Propagation” on page
44
• Design for audibility - see “Designing for Auditability” on page 45
• Design for security - see “Designing Automation Security” on page 45
• Design for availability - see “Designing for Auditability” on page 45
• Automate an event close to its source - see “Automating Close to the Source” on page 46
• Choose whether to use more than one NetView program per system - see “Using Multiple NetView
Programs on a Single System” on page 46
• Provide effective operator interfaces - see “Providing Operator Interfaces” on page 46
• Educate your staff for automation - see “Educating Your Staff” on page 47
• Anticipate changing staff roles - see “Anticipating Changing Staff Roles” on page 47
• Provide for automation testing - see “Providing for Testing” on page 47
• Provide for problem and change management - see “Designing for Auditability” on page 45t
• Choose reliable focal points - see “Choosing Focal Points” on page 48
• Consider using backup focal points - see “Using a Backup Focal Point” on page 49
• Define operator sphere-of-control - see “Defining Operator Sphere-of-Control” on page 50
You can forward many types of data from a distributed system to a focal point, including messages, alerts,
status information, and user-defined classes of information for the LU 6.2 transports.
For an overview of the forwarding capabilities of the NetView program for each type of data, refer to
Chapter 26, “Centralized Operations,” on page 329. Refer to IBM Z NetView Installation: Getting Started
for information about how to set up message, alert, and status forwarding. See the IBM Z NetView
Application Programmer's Guide for more information.
You can have a single focal point or several. However, if you have more than one focal point, each
distributed system usually sends all types of data to a single focal point. That is, any alerts, messages,
status information, and operations management information forwarded from a given system can all go to
the same focal point. With this type of design, operators and automation at the focal point can monitor all
types of data from one location.
This chapter describes the tasks involved in the implementation and production phases of an automation
project.
If you envision an extensive automation project, divide it into stages as described in Chapter 4, “Designing
an Automation Project,” on page 43. You then have an implementation phase and a production phase for
each stage of automation. Repeat the tasks in this chapter for each stage.
Implementation Tasks
In the design phase, you laid out a schedule for implementing various functions and procedures. Examine
those functions one by one in the chosen order. For each function to be automated, use the following
approach:
1. Analyze your manual method of operation. Often, you can best automate a function by having NetView
facilities closely follow the sequence of steps that an operator usually takes. In any case, you must
understand the manual method before devising an automated method.
2. Determine the best approach to automating the function.
3. In your development environment, install the products you plan to use for this function.
4. Develop application programs and command procedures that you plan to use for this function.
5. Install the application programs and command procedures in a test environment.
6. Test and debug these application programs and command procedures.
7. Measure the performance of the application programs and command procedures. Tailor and tune them
for efficiency.
When you have thoroughly tested and tuned all automation products, functions, applications, and
procedures, you are ready to go to the production phase.
Production Tasks
The production phase must begin with educating your operators on the changes you are about to make.
When you have educated your operators, begin installing the products, if any, that you are adding to the
production systems to support automation. Test these products to ensure that they are running correctly
on the production systems.
Next, install the automation functions and procedures that you have developed. Make necessary changes
to adapt these functions to the production systems. If your design is for easy propagation, as described in
Chapter 4, “Designing an Automation Project,” on page 43, most of the necessary changes require only
that you alter some global variables or data in a control file. Test your automation functions and make any
necessary corrections or enhancements.
If you have divided your project into stages, go to the next stage in your sequence. See “Stages of
Automation” on page 6 for a description of automation stages.
Continually re-examine and review the automation that you have put in place. Measure the results that
you are achieving and compare them to the expected values you identified in the project-definition phase.
For information about how measurements are used to track the results of automation, see “Developing
Measurable Objectives” on page 40.
Look for ways to improve your automation. Perhaps there is another message that you can suppress or
another MSU that can receive an automatic response. By aggressively tuning and enhancing your
functions and procedures, you can realize the maximum benefit from automation.
This chapter describes in more detail the information about extended multiple console support (EMCS)
consoles that was given in “Automation on MVS Systems” on page 24. This chapter describes:
• Some of the advantages, implications, and planning considerations for using EMCS in NetView
automation
• Some advantages for using EMCS instead of the MVS subsystem interface
Using the Message Revision Table (MRT) or the Message Processing Facility (MPF) Table
to Direct Messages to NetView Automation
You can use the NetView Message Revision Table (MRT) or the message processing facility (MPF) to mark
messages for automation. Information on directing a message to NetView automation can be found in
“Subsystems in Message Processing” on page 452
You can also use the Message Revision table (MRT) to perform the functions provided by the message
processing facility (MPF). Additional information about the Message Revision table can be found in
“Message Revision Table” on page 22.
Case 1
Consoles in use:
• The CON4 EMCS console is set up to receive messages with route code 4. This might have been set
up with the MVS VARY command or the RACF OPERPARM segment.
• The CON6 EMCS console is set up to receive messages with route code 6.
• The CNMCSSIR task is receiving messages marked for automation, including any that are subject to
a NETVONLY value that was set or REVISE(’Y’ AUTOMATE) revision table actions.
Event:
The MVS system issues an IEExxxx message with route code 4, and this message is marked for
automation.
Result:
The CON4 console receives the message from the MVS system because the message is assigned
route code 4. However, the task that owns CON4 does not automate the message because CON4 is
not the destination console for the message.
The CNMCSSIR task receives the message through the subsystem interface message interface system
because the message is marked for Automation in the Revision AUTO(YES). Only the CNMCSSIR task
drives automation. Depending on the result of the automation, the task that owns CON4 might see
both copies of the message.
Note: If the NETVONLY value is specified rather than REVISE('Y' AUTOMATE) in the NetView MRT,
neither the CON4 console nor any other console sees the original message. However, the CNMCSSIR
task still receives the message and automates as usual.
Case 2
Consoles in use:
Same as for case 1.
Event:
The MVS system issues message IEEyyyy with route codes 4 and 6, and this message is marked
AUTO(NO) in the MPF table.
Result:
CON4 receives the message from the MVS system because the message is assigned route code 4.
CON6 receives the message because it is assigned route code 6. Because neither console is the
destination for the message, the message is not automated by either console.
This chapter describes an MVS sysplex, some of the advantages, suggestions for automation in a sysplex,
and how to plan for automation in the sysplex.
MVS Sysplex
An MVS sysplex is a configuration of multiple MVS operating systems working as a single system by
sharing functions and programs. An MVS component that enables these multiple MVS systems to operate
as a sysplex is the cross-system coupling facility (XCF). The XCF provides coupling services so that
authorized programs on one of the MVS systems can communicate, or exchange data, with programs on
the same MVS system or other MVS systems. A major purpose of XCF is to enable multiple MVS systems
to appear to be one system.
With XCF, a multiple-system environment is defined as two or more MVS systems residing on one or more
processors. If there are two or more processors, the processors must:
• Be interconnected by one or more channel-to-channel (CTC) connections, or one or more coupling
facilities
• Use the External Time Reference (ETR)
• Share an XCF couple data set
The set of one or more coupled MVS systems in a sysplex is given an XCF sysplex name so that authorized
programs in the systems can use the XCF coupling services. XCF monitors the systems in the sysplex and
can remove a failing system from the sysplex with minimal operator intervention.
In the sysplex, messages can be routed to a console on one MVS system from the other systems in the
sysplex. Also, commands can be routed from a console on one MVS system to the other systems in the
sysplex.
Each console name used in the sysplex must be unique.
Refer to the MVS library for information about planning the management of a sysplex.
Stage 1. Become Familiar with EMCS Consoles and How Their Attributes Affect Message
Routing in a Sysplex
Review the information about extended multiple console support consoles given in Chapter 6,
“Automation Using MVS Extended Multiple Console Support Consoles,” on page 55. Next, consider these
items:
• Console names must be unique across the sysplex.
• The value of the MSCOPE console attribute determines the MVS system or systems from which a
console receives messages. Carefully consider these MSCOPE values in a sysplex, especially if you do
not plan to use the NetView program defaults. You can set the MSCOPE value for a console to receive
messages from:
– The system on which the console is running
– All systems in the sysplex
– A list of systems within the sysplex
• The CMDSYS console attribute defines which system in a sysplex acts on MVS commands. With the
CMDSYS attribute, a NetView operator can automatically direct all of that operator's MVS commands to
a particular system of the sysplex. Consider what function each console has in the sysplex. Consider
also that:
– The default CMDSYS setting is the local MVS system; the system on which the NetView program is
running.
– One operator on a particular NetView program might want to issue commands to another member of
the sysplex, exclusively. Therefore, the CMDSYS attribute must be set to that system.
Stage 3. Decide Whether to Centralize Your NetView Program Automation on One System
of the Sysplex
Although it is usually most efficient to provide automation as close to the source as possible, you can
centralize system automation. If you run JES3, see Chapter 35, “Job Entry Subsystem 3 (JES3)
Automation,” on page 423 for considerations in centralizing automation in a JES3 environment.
This chapter introduces the Resource Object Data Manager (RODM) and describes some of the
advantages, implications, and planning considerations for using RODM in automation.
For more information about the object-oriented terms used by the NetView product to describe RODM
and its data model, refer to the IBM Z NetView Resource Object Data Manager and GMFHS Programmer's
Guide.
The chapter explains how automation information is routed. These routing details include the following
topics:
• NetView Program Interfaces
• NetView Message Routing
• NetView Hardware-Monitor Data and MSU Routing
• NetView Program Command Routing
In many cases, NetView program message and data flows are complex. However, being familiar with the
general path of information can help ensure that the messages and MSUs that you want to automate go to
the automation facility.
For example, you might want the automation table to generate automatic responses to network
management vector transports (NMVTs) from the VTAM program's communication network management
(CNM) interface. To do so, ensure that nothing impedes the flow of NMVTs to the automation table.
Another use of routing information is to determine what happens when two NetView facilities specify
conflicting attributes for a single message or MSU. For example, an MSU might go to the hardware
monitor, then to the automation table, then to installation exit DSIEX16B. Knowing that exit DSIEX16B
processes the data last can help you determine that the attributes set by the exit take priority.
Solicited Messages
The NetView program queues solicited messages to the known destination task: a NetView operator, an
autotask, or a NetView program to NetView program task (NNT). These are examples of solicited
messages:
• Responses to NetView commands.
Unsolicited Messages
A message is unsolicited if a specific destination task is not known. For example, VTAM might send a
message to the NetView program that is unrelated to any request by the NetView program, through the
primary POI (program operator interface). The NetView program also regards a message as unsolicited if
it is directed to the primary POI task (PPT), because the PPT cannot display messages. An MVS message
that is a response to a command issued by the PPT routed through the subsystem interface is also
regarded as unsolicited.
Note: The hardware monitor submits only unsolicited MSUs to automation.
ASSIGN MSG=*,PRI=(OPER1,AUTO1),SEC=(NETOP1,LOG)
The NetView program logs each copy in the network log unless you indicate otherwise in installation exit
DSIEX04. In the previous example, because LOG is specified in the SEC list of operators, duplicate logging
occurs unless OPER1, AUTO1, and NETOP1 have suppressed logging.
ASSIGN MSG=*,DROP=AUTH
ASSIGN MSG=*,COPY=(NETOP1,OPER1)
Using the REFRESH and ASSIGN Commands for Dynamic Operator Control
Using the REFRESH command, you can dynamically delete operators and dynamically add operators
without predefining the operators to the NetView program. The ASSIGN command enables you to assign
messages to operators that are not presently defined to the NetView program. If you assign messages to
an operator before you define the operator to the NetView program, you receive a message informing you
that the operator specified in the ASSIGN command is not presently defined to the NetView program. The
assignment is then completed successfully.
When the defined operator logs on, the operator begins receiving messages. Regardless of whether an
operator is defined to the NetView program, messages assigned to operators that are not logged on are
delivered to the next assigned operator or to the original destination.
If an operator definition is deleted using the REFRESH command, the operator session continues until
that operator logs off. Messages assigned to operators that are logged on but no longer defined to the
NetView program are still delivered to that operator.
ASSIGN MSG=IST*,PRI=(VTAMOPER,AUTO1)
ASSIGN MSG=IST5*,PRI=(VTAMOPER,AUTO2)
Notice that the routing specified in the second command occurs first because IST5* is more specific
than IST*. If a third ASSIGN command, such as this example, is issued to undo the message routing
specified in the first ASSIGN command, the second ASSIGN command is still processed.
ASSIGN MSG=IST*,DROP
An operator who wants to drop all ASSIGN commands for IST messages needs to know about the
second command as well as any other commands issued for IST messages. The operator can then issue
the appropriate commands to drop the ASSIGN commands.
When several different operators, command lists, and command processors are issuing ASSIGN
commands, they are not necessarily aware of other assignments. Therefore, message routing with the
ASSIGN command can be difficult to monitor. With the automation table, message routing is
centralized, and thus is easier to monitor.
• If you route all messages with the automation table, the table is easier to maintain because all of the
routing instructions are in one file or set of files. You are less likely to create conflicting route
instructions and can correct them more easily if you do.
• When you route messages with the NetView program automation table, you usually do not need to be
concerned about whether messages are solicited or unsolicited. However, you can use the automation
table to identify whether messages are solicited if you desire. Bit 16 of IFRAUIND indicates whether the
NetView program treats a message as unsolicited. You can use the IFRAUIND automation table action
to check this bit.
Note:
1. Wait processing for unsolicited messages occurs only when the message is routed to a task that is
waiting.
2. When a message is solicited by a command in a pipeline, all subsequent routing is superseded and
does not occur. If the pipeline re-issues the message, it is treated like a non-MVS solicited message.
DSIEX17 Processing
The DSIEX17 installation exit is called to process all inbound MVS messages, solicited or unsolicited, or
delete operator messages (DOMs). This exit can change, replace, or delete messages before the
automation table is invoked. You can use this exit to delete a message or a DOM. The DSIEX17 exit can
also control whether a message is automated.
DSIEX02A Processing
Installation exit DSIEX02A is called to process standard output to an operator's terminal. It can change,
replace, or delete messages before the automation table is invoked.
If this exit deletes a message (with the USERDROP return code from the exit or by setting the IFRAUTBA
field to B'0'), the NetView program does not search the automation table for that message or call exit
DSIEX16.
If DSIEX02A sets the IFRAUMTB bit on for a message, the NetView program does not search the
automation table for the message. However, DSIEX16 processes the message. For more information
about DSIEX02A, see Chapter 17, “Installation Exits,” on page 255.
Automation-Table Processing
Except for messages written directly to the log, solicited and unsolicited messages from all sources are
subject to automation table processing for the original instance of the message. Copies of the message
produced by the ASSIGN command with the SEC or COPY operands, by the MSGROUTE command, or by
the ROUTE keyword in the automation table itself are not subject to automation-table processing.
However, if you route a copy cross-domain, the automation table in the other domain processes the
message.
Routing Messages
In automation-table processing, the ROUTE keyword can reroute an unsolicited message that you
previously routed with ASSIGN PRI or authorized receiver processing. Similarly, you can change the
automatic assignment of a solicited message to add other receivers or even to eliminate the original
receiver. Copy assignment for solicited messages is not affected. Copies always go to the operators you
specified with the ASSIGN COPY command.
You can code automation-table statements that direct messages or commands to any combination of
operators, autotasks, operator groups, and the PPT. Routed commands can include command processors
and command lists. The list of operator IDs that are to receive the message does not have to be the same
as the list of operator IDs that are to process the commands you are issuing in response.
Assume that a message with an ID of DSI374A is ready to undergo automation-table processing and that
the statement in Figure 13 on page 78 is in your automation table.
IF MSGID='DSI374A' THEN
EXEC(ROUTE(ALL OPER1 OPER2 *));
In this example, copies of message DSI374A are to be sent to OPER1, OPER2, and the operator
associated with the message when it entered automation-table processing. Copies of messages created
DSIEX16 Processing
The NetView program calls installation exit DSIEX16 after a message is considered for automation. The
exit allows the user to change message text and processing options.
For more information about DSIEX16, see Chapter 17, “Installation Exits,” on page 255.
ALERT-NETOP Application
ALERT-NETOP, which is an MS application that is supplied with the NetView program, receives MSUs and
passes them to the hardware monitor.
Automation-Table Processing
All MSUs processed by the hardware monitor are subject to automation-table processing if they contain
X'0000', X'0001', X'0002', X'0025', X'1332', RECMSs, or RECFMSs. Forwarded alerts that were originally
in MSUs on a distributed NetView system return to MSU format for automation. The hardware monitor
places these alerts in CP-MSUs. System-format records, such as outboard record (OBR), machine check
handler (MCH), channel recovery word (CWR), and second-level interrupt handler (SLIH), do not go to the
automation table.
The automation table can check or set any of these conditions:
• Color
• Highlighting
• Filtering attributes hardware monitor for MSUs
MSUs that do not come through the hardware monitor can come directly to automation through the
CNMAUTO service routine of PL/I and C, the DSIAUTO macro of assembler, or the generic automation
receiver MS application (NVAUTO), which invokes the automation table. Setting highlighting or filtering
attributes does not work in these cases, because the hardware monitor does not process the MSU.
However, you can use the automation table to initiate automatic commands in response to the MSU.
When automating the response to an MSU, route the command to an autotask. If the hardware monitor
data services task (DST) BNJDSERV sends an MSU to the automation table and the matching statement in
DSIEX16B Processing
The NetView program invokes installation exit DSIEX16B after an MSU is considered for automation. This
exit enables you to change, replace, or delete an MSU. For more information, see Chapter 17,
“Installation Exits,” on page 255.
EXCMD Command
Using the EXCMD command, you can route a command, command list, or command processor to a
designated task to be run. Ensure that the command can run under the type of task to which you are
routing. For example, data-services command processors can run only under a DST.
In Figure 15 on page 84, the LOGOFF command is routed to the AUTO1 task, which processes the
command. As a result, AUTO1 is logged off.
Note: Do not queue commands to run under these server tasks: DSIIPLOG, DSIRXEXC and DSIRSH.
These tasks must be free to process TCP/IP requests.
RMTCMD Command
The RMTCMD command sends system, subsystem, and network commands to another NetView program
elsewhere in the network. The commands are processed by the other NetView program. Use the RMTCMD
command instead of the ROUTE command because the RMTCMD does not require you to start OST-NNT
sessions.
Command Priority
Each of the NetView tasks that process regular commands (autotasks, other OSTs, NNTs, and the PPT)
recognize NetView command priority for queued commands. Queued commands have a priority of either
low or high. Priority helps to determine how soon the NetView program runs a command.
To perform complex actions when you issue a single command, use command lists and command
processors to create automation procedures.
Command lists are sets of commands and special instructions written in either REXX or the NetView
command list language. Command lists written in the NetView command list language are interpreted,
and command lists written in REXX can be either interpreted or compiled. Command processors are
modules written in assembler, PL/I, or C. Command processors (written in PL/I or C) and command lists
are also known collectively as command procedures. You can issue a command list or command
processor as if it were a NetView program command.
Those who can use command lists and command processors to simplify the job of the operator and to
assist in automation are:
• Operators
• The automation table
• Timer commands
• The EXCMD command
• Other command lists
• Other command processors
You can also designate initial command lists to be processed during NetView program initialization and
OST initialization. These are functions that can be done by command lists and command processors:
• Use a single command to replace a series of queries, replies, and commands normally issued by an
operator.
• Issue different replies based on input criteria.
• Ensure consistency among operator responses for lengthy or complex functions.
• Run under an autotask.
Available Languages
The languages available for writing NetView program command lists and command processors are:
• NetView program command list language
• REXX
• PL/I
• C
• Assembler
For a discussion of the capabilities of each language, see the IBM Z NetView Customization Guide.
Message Functions
The command-procedure languages provide keywords for obtaining access to various message
attributes. For example, you can examine the message ID, message type (HDRMTYPE), and message text.
For MVS system messages, you can also examine the job name or reply ID.
MSU Functions
Command procedures can also examine and work with MSUs. In REXX, an HIER function gives the
hardware monitor resource hierarchy of an alert. An MSUSEG function gives the contents of an MSU,
which can include an MDS-MU's header information. The HIER and MSUSEG REXX functions are similar to
the HIER and MSUSEG compare items in the automation table, although the syntax details differ. The
NetView command list language offers similar &HIER and &MSUSEG control variables. In addition, REXX
provides a CODE2TXT function that can translate hardware monitor generic alert code points into the text
strings they designate. This function is also available in PL/I and C with the CNMC2T (CNMCODE2TXT)
service routine.
Saving Information
You can save information with either global variables or MVS data sets.
Global Variables
Command lists and command processors offer functions that enable you to automate operating
procedures. One function is the ability to create and update global variables, which you can use to pass
information between command lists, command processors, and the automation table. Global variables
are useful in creating automation procedures for purposes such as:
• Maintaining the current status of system and network elements when automation monitors your
environment
• Eliminating the need to code system names into automation procedures, which enables you to adapt
the procedures to other systems by redefining the global variables rather than by making coding
changes in numerous places
• Eliminating the need to code specific parameter values when automating parameter-driven processes,
which enables you to change the parameter values without re-coding your command lists and
command processors
• Maintaining job names and subsystem commands to be issued as required
The two types of global variables are Task and Common.
Use the QRYGLOBL command to view the number of your common global and task global variables and
their values. Refer to the NetView program online help for information about the QRYGLOBL command.
For more about Data REXX, see IBM Z NetView Programming: REXX and the NetView Command List
Language.
REXX Waiting
REXX uses several instructions that interact to provide a method of waiting for messages and analyzing
messages and other events. The TRAP instruction specifies messages to be trapped and specifies
whether messages that are trapped are displayed to the operator. Messages that are trapped are placed
in a message queue, so more than one message can be processed. The WAIT instruction causes a
command list to suspend processing until a specified event occurs. Possible events include:
• Messages that you trap
• A time-out value in seconds or minutes
• The operator's entry of a GO command
The MSGREAD instruction causes the NetView program to read a trapped message from the messages
currently trapped. The command list can then take action based on the message received. The FLUSHQ
instruction is used to discard all trapped messages from the message queue.
For more information about waiting for events in REXX, refer to IBM Z NetView Programming: REXX and
the NetView Command List Language.
In NetView program automation, you can use timer commands to schedule the processing of other
commands. Any command or command list that can be issued from a task can be scheduled using a timer
command. This chapter describes the timer commands and some related commands.
AFTER
The AFTER command enables you to schedule a command or command procedure to run after a specified
period of time.
The AFTER command can be useful for waiting a certain amount of time for something that is expected to
happen and then checking to ensure that it did happen. For example, if you use the NetView program to
initialize a product and the product is to be initialized within 5 minutes, you can schedule a command list
to run after 5 minutes to check whether the product started successfully.
The AFTER command, shown in Figure 16 on page 95, schedules the MVS D A,L command to be issued
after 5 minutes to solicit status information about system elements.
AT
The AT command schedules a command or command procedure to be run at a specific time.
For example, the AT command in Figure 17 on page 96 schedules the STOPSYS command list to shut
down the system at 6:00 p.m. on December 24 and saves the command in the Save/Restore database.
AT 12/24 18:00:00,ID=EVESAVE,SAVE,STOPSYS
AT is useful for scheduling commands that you want to happen once, at a specific time or on a specific
day.
EVERY
The EVERY command schedules a command or command procedure to be processed repeatedly at a
timed interval. The intervals can be specified in seconds, minutes, hours, or days. The command or
command procedure is processed at the indicated interval until the EVERY command is purged.
The EVERY command in Figure 18 on page 96 schedules the command list CHEKSTAT every hour,
starting one hour after the timer command is run.
Use an EVERY command similar to the one in Figure 18 on page 96 to check the status of your autotasks
to ensure that they are logged on and are not in a wait condition that prevents other work from executing.
The automation sample set provided with the NetView product includes an example of a method for
checking on autotasks. This example method uses timer commands as well as the automation table and
command lists. The samples are described in Appendix H, “The Sample Set for Automation,” on page
499.
TIMER
The TIMER command displays a panel that enables you to display, add, change, test, or delete scheduled
timers. The command operates in fullscreen mode only.
CHRON
The CHRON command provides efficient timed command scheduling by decreasing the amount of code in
REXX procedures that are used in determining exception cases and time shifts. CHRON also reduces the
number of timer elements by combining criteria that previously required multiple timers or combinations
of AT and EVERY commands.
The CHRON EVERY command provides the ability to specify starting times that are earlier than the current
time. This is useful for scheduling timed events for multiple days during a shift, and starting the first timer
during the shift. This also helps when using CHRON EVERY in a procedure, because the intervals start with
the next one in the sequence.
For example, you can schedule a command to be issued on certain days. The CHRON command in Figure
19 on page 97 issues the LOGTSTAT command once every hour from 8:00 a.m. until 5:00 p.m. on all
weekdays except holidays, from now until the last day of the year 2011. The LOGTSTAT command runs
on the PPT task. If this CHRON is entered between 8:00 A.M. and 5:00 P.M., LOGTSTAT runs at the next
Choosing a Task
A scheduled command runs on the same task that issued the timer command, unless you use the primary
program operator interface task (PPT) option to specify the PPT. If the task that issued the timer
command is no longer active, the scheduled command cannot run. Therefore, it is a good practice to issue
timer commands from autotasks. You can do this by using a command-routing facility, such as EXCMD, to
send the timer command (AT, EVERY, or AFTER) to an autotask.
By running your scheduled commands on a continuously available autotask, you ensure that the
scheduled command is able to run. By using an autotask instead of the PPT, you avoid overburdening the
PPT. You also avoid the restrictions about commands that can run on the PPT.
LIST TIMER
LIST TIMER lists all commands and command procedures currently timed for processing, along with
associated information. For example, the first command in Figure 21 on page 98 displays the command
or command procedure scheduled by operator OPER1 using AT, EVERY, and AFTER with a timer ID of
DISPSTAT (if it exists).
The second command in Figure 21 on page 98 displays a list of all commands and command procedures
scheduled by AT, EVERY, or AFTER on your system regardless of scheduling operator or timer ID.
LIST TIMER=DISPSTAT,OP=OPER1
LIST TIMER=ALL,OP=ALL
PURGE TIMER
PURGE TIMER cancels currently scheduled timer commands. For example, the first command in Figure
22 on page 98 purges the command scheduled by OPER1 with a timer ID of DISPSTAT (if it exists).
The second command in Figure 22 on page 98 cancels all AT, EVERY, and AFTER commands scheduled
by OPER1. Use all-inclusive purges with caution.
PURGE TIMER=DISPSTAT,OP=OPER1
PURGE TIMER=ALL,OP=OPER1
Autotasks are a special kind of operator station task (OST) that require neither operators nor NetView
terminals. Like other operator OSTs, autotasks can receive messages, process commands and command
procedures, and establish NetView program to NetView program sessions. Autotasks can run full screen
commands using the NetView program full screen automation function. Because autotasks are not
associated with a terminal, they can run when VTAM is not active. For this reason, and because they can
perform tasks similar to those that an operator can perform, autotasks are ideal for performing much of
your system and network automation.
Defining Autotasks
The requirements for defining autotask IDs are the same as those for defining NetView program operator
IDs. Autotasks are OSTs, and you can dynamically define autotask OSTs to the NetView program by
editing DSIOPF or system authorization facility (SAF) definitions and then using the REFRESH command.
Sample DSIOPF shows sample definition statements for NetView program OSTs, including autotasks. The
statements define each operator's profile. The definition statement for AUTO1, an autotask used in the
NetView program initialization process, is shown in Figure 23 on page 99:
The password for an autotask prevents intruders from gaining access to the NetView program by logging
on to an autotask operator ID. You can use an SAF product, such as Resource Access Control Facility
(RACF), to require a password or password phrase before logging on to an MVS system. If you do not use
an SAF product, you can use DSIOPF to define a password for each autotask.
Define a password or password phrase and keep it confidential to protect your autotask IDs. If you are
not using an SAF product for password or password phrase checking, you can also prevent someone from
logging on to an autotask operator ID by not defining a password in DSIOPF. If you do not define a
password, only an AUTOTASK command can start that operator ID. You can then use command
authorization on the NetView AUTOTASK command to limit its use.
Activating Autotasks
An autotask is differentiated from other NetView program OSTs by the way an operator starts it. An
operator OST starts when a NetView operator logs on at a terminal, but autotasks start when an operator
issues the AUTOTASK command. Because either an operator or an autotask can start a single operator ID,
it is important to maintain the proper level of security for all IDs defined in the NetView program. Refer to
the IBM Z NetView Security Reference for an explanation of security issues.
You can use the AUTOTASK statement in the CNMSTYLE member to start an autotask when the NetView
program initializes. For more information, refer to the IBM Z NetView Administration Reference.
AUTOTASK OPID=AUTOMVS,CONSOLE=netvsys2
You can associate the autotask with the console even when the multiple console support console is
not online. If the console is not already active, the association is completed when the console is varied
online.
If you define an autotask for this purpose and also use the autotask for other automation, remember that
all messages sent to the autotask are displayed on the console.
If a write-to-operator (WTO) message comes from an MVS system to a NetView system over the
subsystem interface and if you use an associated autotask to route the message back to a multiple
console support console, the message appears in the system log and the Canzlog log twice, once in its
original format and once as the NetView program sent it to the multiple console support console. To avoid
duplication, define dedicated autotasks that you use for multiple console support consoles only.
For more information about the AUTOTASK command, see the NetView program online help or the IBM Z
NetView Command Reference Volume 1 (A-N).
Deactivating Autotasks
You can deactivate an autotask with one of these commands:
• EXCMD autoid,LOGOFF
• %LOGOFF (issued from a multiple console support console associated with the autotask)
Here % is the default NetView program subsystem descriptor. The subsystem address space must be
active for this command to work.
Note: Any command entered on the multiple console support console and prefixed by the descriptor
automatically restarts the autotask, unless you use the AUTOTASK command or the DISC command to
drop the console association.
If an autotask is stuck in an infinite loop, issue EXCMD autoid,RESET to stop the command list that is
running before attempting a logoff. If necessary, you can also use STOP FORCE=autoid to deactivate an
autotask that is in an infinite loop. The EXCMD and %LOGOFF commands simply queue the LOGOFF
command under the autotask along with other queued command lists and commands. STOP FORCE is an
immediate command.
Processing Commands
An autotask can process commands and command procedures sent by the automation table. If you use
the ROUTE keyword to explicitly choose a destination for a command, you can use an autotask. A
command might also go to an autotask through default routing if you do not use the ROUTE keyword. This
is the case, for example, if the autotask solicited the message that is triggering the command.
An autotask can process commands and command procedures that are scheduled under it by an AFTER,
AT, CHRON, or EVERY command. You can define and start several autotasks to monitor different
resources or types of resources. Each autotask can then use different time intervals for monitoring and
different collections of task global variables for storing information.
A NetView command procedure can wait for the receipt of a message or another event before continuing
processing. This is referred to as WAIT processing. Use caution when running command procedures
containing WAIT processing under an autotask. If you must run such a command procedure under an
autotask, ensure that you specify a timeout value for the WAIT command within the procedure. In
addition, you might want to limit the autotasks that run such command procedures.
For more information about WAIT processing, see “Waiting for a Specific Event” on page 91.
Starting Tasks
Table 3 on page 102 shows the destination of commands when messages or MSUs are automated in the
NetView automation table and you do not use a ROUTE keyword or you specify a destination of *.
To define an autotask for a specific function during NetView program initialization, use the
function.autotask statement in the CNMSTYLE member. For more information, refer to the IBM Z NetView
Administration Reference.
* zero out all route codes and set route codes 8 and 16
REVISE (ROUTEZERO "xxxxxxx1" FLGRTCD1 "00000001" FLGRTCD2)
* set descriptor code 2 meaning immediate action required and retain message
* in AMRF
REVISE ("x1xxxxxx" FLGDSCD1 'Y' AMRF)
DoForeignFrom Statement
Foreign messages are not processed by the MRT by default (see “How Foreign Messages are Processed”
on page 63 for additional detail on this topic). The DoForeignFrom statement can be used to indicate that
foreign messages are to be processed by the MRT. When specified, the DoForeignFrom statement must
occur prior to any UPON statement. The format of the DoForeignFrom statement is as follows:
• When DoForeignFrom is set to *ALL, the MRT processes foreign messages that originated at any other
system in the sysplex (in addition to messages that originated at the local system). MRT processing can
be limited to specific system names using the SYSNAME edit order on the WHEN statement. The value
of AUTOMATE can be set to Y using a REVISE statement which causes the message to be sent to the
NetView program address space.
• When DoForeignFrom is set to *NONE, the MRT processes only those messages that originated at the
local system. Note that the NetView program SSI, and therefore the MRT, does not receive foreign
messages if they are disallowed by the FORNSSI statement in the MPFLSTxx MVS PARMLIB member.
END Statement
An END statement closes a section started with the corresponding SELECT statement.
EXIT Statement
Typically, a message is matched against everything in a given UPON group (counting each SELECT-WHEN-
END entry as one item). When an EXIT action is matched, however, the remaining actions under the same
NETVONLY Statement
The NETVONLY statement causes the message to be marked for suppression from display, but allows the
message to be sent to the NetView program. When the NETVONLY statement is received in the NetView
program address space, the message is either submitted to an automation task or is routed as a
command response. The NETVONLY statement always queues messages to the NetView program over
the SSI.
OTHERWISE Statement
An OTHERWISE statement is like a WHEN statement, except that there is no condition and it must follow
all the WHEN statements under a given SELECT statement.
REVISE Statement
A REVISE statement is followed by a set of parentheses enclosing a single edit script. Such a script is
called a revision script. For this case only (not for WHEN, EDIT, or ACQUIRE conditions, for example), an
exception is made for text handling: if no output order changes the message text, then the entire text is
replicated into the output message (in other scripts, this results in null text). Multiple REVISE statements
can be in any group, with each acting on the result of the previous revision. If a subsequent SELECT group
reexamines the message, it sees the result of the action of the preceding REVISE action.
Examples of the REVISE statement:
* turn msg blue and append "SHOULD BE BLUE" to the end of message
REVISE("CB" COLOR 1.* 1 "SHOULD BE BLUE" NW)
* same as previous example except using ALL
REVISE("CB" COLOR ALL 1 "SHOULD BE BLUE" NW)
REVISE ( ALL UPCASE ) * UPPER case the entire message
revise (MSGID 1 "changed message" NW) * Keep msgid and append "changed message"
REVISE("0000000x" FLGRTCD1) * turn off routecodes 1-7 leave 8 as before
REVISE ( "WHOKNOWS" CONSNAME) * send message to console with the name WHOKNOWS
See the NetView program online help or IBM Z NetView Programming: Pipes for information about using
PIPE EDIT orders.
Note: MVS imposes a limit of 127 characters in text output. The MRT does not provide a warning or
condition when longer messages are truncated.
UPON Statement
An UPON statement is a top-level conditional that introduces each section. There are five types of
conditions:
• FLOOD, which can be AUTO or NOAUTO
• MSGID, which can be in the range of 1 - 12 characters
• JOBNAME, which can be in the range of 1 - 8 characters
• PREFIX, which can be in the range of 1 - 12 characters
• OTHERMSG
They are tested in the order listed here and the FLOOD, MSGID, JOBNAME, and PREFIX conditions are
always compared with a literal. Longer prefix strings are examined before shorter ones.
An UPON Flood condition checks for messages that have been processed by z/OS Message Flood
Automation (MFA), which is indicated by the WQE_PROCESS_BY_MFA flag.
Note: z/OS MFA enables the WQE_PROCESS_BY_MFA flag when it detects a flooding situation.
Further message selection is determined by the value for the UPON FLOOD condition:
• When the value is AUTO, only messages with the WQEAUTO flag enabled are processed.
• When the value is NOAUTO, only messages with the WQEAUTO flag disabled are processed.
As with other UPON type matching, triggering the FLOOD condition preempts lower ranking UPON
conditions. Note that the value AUTO and NOAUTO can each be specified at most once in an MRT.
These are examples of the conditions:
UPON (FLOOD=NOAUTO)
UPON (msgid = 'CNM233I' | JOBNAME='VTAM' | prefix = 'IST')
UPON (MSGID="TST102A" |
MSGID="TST102B" |
MSGID="TST102C" |
MSGID="TST102D" )
See the information about message flooding in the chapter that explains Message Flood Automation in
the book z/OS MVS Planning: Operations.
If any message matches one type of an UPON statement, the message is not compared with lower-
ranking UPON statements. For example, if message CNM233I is presented to the preceding table, it is not
compared for the JOBNAME or PREFIX conditions and it is not submitted to any statements listed under
the UPON(OTHERMSG) section. Note that MSGID is tested first even if that UPON statement is not
physically first in the table definition. Also, note that a match for a longer prefix string, such as ABCD, will
preclude examination of a shorter string, such as ABC.
Limit your use of UPON(OTHERMSG) statements to avoid performance degradation.
Within a given UPON statement, multiple conditions can be joined by an OR symbol (|), but not AND.
Subordinate to each UPON statement, there can be zero or more statements of type SELECT, REVISE,
NETVONLY, and EXIT. This group of statements is called an UPON group and it is evaluated in the same
order that it is specified.
When a message has matched an UPON statement and acted on by the UPON group, no further action is
taken by the MRT. In particular, such a message is not compared with other UPON conditions.
Usage notes:
WHEN Statement
The WHEN statement is subordinate to a SELECT statement and is always followed by an expression
enclosed in parentheses. Each WHEN statement is followed by a set of zero or more action statements
preceding the next WHEN or OTHERWISE statement. This is called a WHEN group. The expression is a pair
of edit scripts separated by either an equal sign (=) or a not equal set of symbols (¬=). The two scripts are
run against a message and the results are compared, after the leading and trailing blanks or null values
are removed. If the two are equal (or not equal, depending on the separator value), then the message is
considered to have matched that WHEN statement. Such a message is acted upon by the action
statements of the WHEN group and is not compared with other WHEN statements under the same
SELECT statement, and it is not matched to the OTHERWISE statement.
Examples of the WHEN statement:
See the NetView program online help or IBM Z NetView Programming: Pipes for information about using
PIPE EDIT orders.
2. Allow the message to go through your message revision table and modify the console name, a
descriptor code, and a route code.
3. Use the NetView program automation table to call a REXX routine to print the descriptor code, route
code, and console name information. This is an example of an automation table entry, a section of the
Message Revision Table, and a REXX example that the Automation Table entry calls:
• Automation table entry
UPON (MSGID="TST125A")
SELECT
When (MSGID="TST125A")
REVISE('1xxxxxxx' FLGDSCD1)
REVISE('xxxxxxx1' FLGRTCD2)
REVISE ("ConsoleName" CONSNAME) * where ConsoleName is a valid Console Name
/* RexxExec */
say ROUTCDE()
say "desc code =" DESC()
say "CONSNAME=" SYSCONID()
exit
See the NetView program online help or the IBM Z NetView Command Reference Volume 2 (O-Z) for more
information about the WTO command.
(space) , = ( )
TRACKING.ECHO Statement
By default, the z/OS operating system issues an additional command echo when the CRT makes a change
to a command. This appears in your system log. This new message reflects the command as it was
changed by the CRT.
Note:
1. System APAR OA28464 is required for this statement to be in effect.
2. If specified, the TRACKING.ECHO statement must precede any UPON statement.
The TRACKING.ECHO statement uses the following syntax:
TRACKING.ECHO
YES
TRACKING.ECHO =
NO
Parameter
Description
YES
Specify YES to allow the extra echo. This is the default.
NO
Specify NO to suppress the extra echo.
ISSUE.IEE295I Statement
By default, the z/OS operating system issues an additional IEE295I, a multi-line message, to document
changes made directly in your CRT. This appears in your system log. The message is not issued when you
specify the NETVONLY action. This new message reflects the command as it was prior to and after the
changes made by the CRT.
Note:
1. System APAR OA28464 is required for this statement to be in effect.
Parameter
Description
YES
Specify YES to allow the tracking message. This is the default.
NO
Specify NO to suppress the tracking message.
UPON Statement
An UPON statement is a top-level conditional statement that introduces each section. There are five types
of conditions:
• FLOOD, which can be AUTO or NOAUTO
• MSGID, which can be in the range of 1 - 12 characters
• JOBNAME, which can be in the range of 1 - 8 characters
• PREFIX, which can be in the range of 1 - 12 characters
• OTHERMSG
They are tested in the order listed here and the FLOOD, MSGID, JOBNAME, and PREFIX conditions are
always compared with a literal. Longer prefix strings are examined before shorter ones. An UPON Flood
condition checks for messages that have been processed by z/OS Message Flood Automation (MFA),
which is indicated by the WQE_PROCESS_BY_MFA flag. z/OS MFA enables the WQE_PROCESS_BY_MFA
flag when it detects a flooding situation.
Further message selection is determined by the value for the UPON FLOOD condition:
• When the value is AUTO, only messages with the WQEAUTO flag enabled are processed.
• When the value is NOAUTO, only messages with the WQEAUTO flag disabled are processed. As with
other UPON type matching, triggering the FLOOD condition preempts lower ranking UPON conditions.
Note that the value AUTO and NOAUTO can each be specified at most once in an MRT.
Examples of the conditions are listed as follows:
UPON (FLOOD=NOAUTO)
UPON (msgid = 'CNM233I' | JOBNAME='VTAM' |
prefix = 'IST')
UPON (MSGID="TST102A" |
MSGID="TST102B" |
MSGID="TST102C" |
MSGID="TST102D" )
See the information about message flooding in the chapter that explains Message Flood Automation in
the book z/OS MVS Planning: Operations.
The UPON statement uses the following syntax:
(OTHERCMDS)
(ALLCMDS)
Parameter
Description
CMDCONS='console_name'
Name of the console issuing the command.
CMDVERB='first_token'
Value of the first token delimited by a blank or comma, which can be in the range of 1 - 12 characters.
Command synonyms are not resolved.
CMDSQZD='initial_string'
The first part of the command with all blanks, commas, equal signs, and left and right parentheses
removed is compared to the specified string. The string may be from 1 to 12 characters in length.
OTHERCMDS
All commands not matched by the preceding conditions.
ALLCMDS
All commands.
Usage :
1. The CMDCONS and CMDVERB conditions can accept multiple values or can be coded multiple times
with different values.
2. Code the OTHERCMDS and ALLCMDS conditions only once in a table.
3. The parameters are examined in the following order:
a. CMDCONS
b. CMDVERB
c. CMDSQZD
d. OTHERCMDS
e. ALLCMDS
4. If any command matches one type of an UPON statement, the command is not compared with lower-
ranking UPON statements.
5. Limit your use of UPON(OTHERCMDS) and UPON(ALLCMDS) statements to avoid performance
degradation.
6. Within a given UPON statement, multiple conditions can be joined by an OR symbol (|), but not AND.
7. Subordinate to each UPON statement, there can be zero or more statements of type SELECT, REVISE,
NETVONLY, and WTO. This group of statements is called an UPON group and it is evaluated in the
same order that it is specified.
8. OTHERCMD is a synonym for OTHERCMDS. ALLCMD is a synonym for ALLCMDS.
SELECT Statement
A SELECT statement introduces a series of WHEN statements, followed by a required OTHERWISE
statement and an END statement. The SELECT statement does not include any arguments.
The SELECT statement uses the following syntax:
SELECT
SELECT
WHEN Statement
The WHEN statement is subordinate to a SELECT statement and is always followed by an expression
enclosed in parentheses. Each WHEN statement is followed by a set of zero or more action statements
preceding the next WHEN or OTHERWISE statement. This is called a WHEN group. The expression is a pair
of edit scripts separated by either an equal sign (=) or a not equal set of symbols (¬=). The two scripts are
run against a command and the results are compared, after the leading and trailing blanks or null values
are removed. If the two are equal (or not equal, depending on the separator value), then the command is
considered to have matched that WHEN statement. Such a command is acted upon by the action
statements of the WHEN group and is not compared with other WHEN statements under the same
SELECT statement, and it is not matched to the OTHERWISE statement.
The WHEN statement uses the following syntax:
WHEN
WHEN (action_statement )
Parameter
Description
action_statement
Edit orders that you can specify. See Table 4 on page 118 for a list of the edit orders that you can
specify.
Examples:
These are examples of the WHEN statement:
See the NetView online help or IBM Z NetView Programming: Pipes for information about using PIPE EDIT
orders.
END Statement
An END statement closes a section started with the corresponding SELECT statement.
The END statement uses the following syntax:
END
END
REVISE Statement
The REVISE statement modifies the command string (text).
The REVISE statement uses the following syntax:
REVISE
REVISE (action_statement )
Parameter
Description
action_statement
Edit orders that you can specify. See Table 4 on page 118 for a list of the edit orders that you can
specify.
Usage :
1. A REVISE statement is followed by a set of parentheses enclosing a single edit script. This script is
called a revision script. If no output order changes the command text, the entire text is replicated into
the output command.
2. Multiple REVISE statements can be in any group, with each acting on the result of the previous
revision. If a subsequent SELECT group reexamines the command, it sees the result of the action of
the preceding REVISE action.
Restriction:
MVS imposes a limit of 126 characters per command. The CRT does not provide a warning or condition
when longer commands are truncated.
Examples:
These are examples of the REVISE statement:
See the NetView online help or IBM Z NetView Programming: Pipes for information about using PIPE EDIT
orders.
Parameter
Description
procedure
1 to 8 character REXX procedure name
Usage :
1. When the procedure (command) is received by the NetView address space, it is submitted to the
command revision environment automation task. The automation task is identified by the ?
MVSCmdRevision statement in the CNMSTYLE member. The NETVONLY statement queues commands
to the NetView program over the SSI.
2. Only one NETVONLY statement can be specified in each WHEN or OTHERWISE statement.
3. Review the CNMSRVMC sample for example coding techniques.
4. For each NETVONLY command procedure, the command revision environment automation task
attaches a virtual OST (VOST) to run the command exclusively. The VOSTs enable the procedures that
are specified on NETVONLY statements to run simultaneously. Thus, any message that is issued by the
command and is logged in the Canzlog log has the VOST flag turned on.
WTO Statement
The WTO statement creates text for a WTO message that is sent to the console from which the command
was issued.
The WTO statement uses the following syntax:
WTO
WTO (action_statement )
Parameter
Description
action_statement
Edit orders that you can specify. See Table 4 on page 118 for a list of the edit orders that you can
specify.
Restrictions:
1. You cannot set route codes, descriptor codes, or other parameters of the WTO.
2. Text exceeding 126 characters is truncated.
Edit Orders
Table 4 on page 118 lists the edit orders that you can use with the WHEN or REVISE specifications.
C2B Converts input binary to a Boolean string (EBCDIC "0" and "1" values)
C2D Converts input to a string representing a decimal number.
C2X Converts input to a string representing its hexadecimal notation.
CMDX Inputs the first 88 (X'58') bytes of the IEZVX101 control block.
See the NetView online help or IBM Z NetView Programming: Pipes for more information on the PIPE EDIT
orders.
2. Use the NetView command revision table to issue a WTO instead of running the command. A section of
the command revision table to do this is:
Automation-Table Searches
When the NetView program receives a message or MSU and an automation table is active, the NetView
program searches the active automation table sequentially, looking for:
• Conditions that match the received message or MSU
• An ALWAYS statement, which matches unconditionally
When a match is found, the NetView program performs the actions that the matching statement specifies.
If the matching statement specifies CONTINUE(Y), the NetView program continues searching for an
additional match. If the matching statement does not specify CONTINUE(Y), the NetView program ends
its search of the automation table for the message or MSU.
The type of an IF-THEN statement depends on the types of condition items and actions the statement
contains. The type of an ALWAYS statement depends on the types of actions the statement contains.
A condition item or an action can be of three types: message, MSU, or both. To determine the types of
condition items or actions, see the descriptions of the specific items or actions in this chapter. “Condition
Items” on page 132 describes condition items, and “Actions” on page 185 describes actions.
• You must use single quotation marks as the delimiters for comparison text and for synonym values.
– If a synonym value or comparison text contains a single quotation mark ('), you must represent it as
two consecutive single quotation marks ('').
– Do not substitute a double quotation mark for two single quotation marks.
BEGIN-END Section
BEGIN-END sections contain a series of automation-table statements. An END statement ends a series of
statements started with the BEGIN option on an IF-THEN or ALWAYS statement. You can use BEGIN-END
sections to logically segment an automation table or to help improve the performance of automation-
table processing.
The syntax for a BEGIN-END section is:
BEGIN-END Section
IF conditions THEN BEGIN ;
ALWAYS statements ;
END ;
Where:
IF
Starts an IF-THEN statement, as described in “IF-THEN Statement” on page 127.
conditions
Are the conditions that determine whether the actions indicated by THEN are to be processed, as
previously described.
THEN
Starts the THEN part of an IF-THEN statement, as described previously.
ALWAYS
Starts an ALWAYS statement, as described in “ALWAYS Statement” on page 201. Starting a BEGIN-
END section with the ALWAYS statement is equivalent to simply coding statements without a BEGIN-
END section.
IF-THEN Statement
The IF-THEN statement enables you to specify messages and MSUs you want NetView automation to
intercept and process. You can use the statement to code the conditions that a message or MSU must
meet to be selected for automation, and the actions you want the NetView program to take if a message
or MSU meets those conditions.
The NetView program evaluates the expressions stated before and after the operator in an IF statement.
If the condition is true, the NetView program processes the THEN part of the statement. You can combine
more than one condition with a logical-AND (&) operator, logical-OR (|) operator, and parentheses.
The syntax of the IF-THEN statement is:
( ENDLABEL: labelname )
( GROUP: groupname )
BEGIN
Where:
IF
The keyword you code at the beginning of each IF-THEN statement.
LABEL:labelname
The LABEL keyword identifies an automation-table statement or a BEGIN-END section to be specified
with the DISABLE or ENABLE function of the AUTOTBL command.
• The labelname must be specified with alphanumeric characters, and can contain @, #, and $.
• The labelname can be up to 16 characters in length.
ENDLABEL:labelname
The ENDLABEL keyword identifies an automation-table statement or a BEGIN-END section to be
specified with the DISABLE or ENABLE function of the AUTOTBL command.
Note:
• The labelname value must match the value on a previous LABEL keyword that is in the same
member.
• If ENDLABEL is within a BEGIN-END section, the associated LABEL must be located within the same
BEGIN-END section.
• The name used on the LABEL-ENDLABEL pair must be unique within the automation table.
• ENDLABEL must be specified with alphanumeric characters, and can contain @, #, and $.
• The labelname can be up to 16 characters in length.
The labelname value must match the value on a previous LABEL keyword which is in the same
member.
GROUP:groupname
The GROUP keyword identifies an automation-table statement or a BEGIN-END section to be
specified with the DISABLE or ENABLE function of the AUTOTBL command.
Note:
• One or more automation-table statements can be part of a named group of statements to be
specified with the DISABLE or ENABLE function of the AUTOTBL command.
• The statements identified by a GROUP name can be in multiple members if desired.
• The groupname must be specified with alphanumeric characters, and can contain @, #, and $.
• The groupname can be up to 16 characters in length.
condition_item
The item being compared can be a bit string, character string, or a parse template.
See “Condition Items” on page 132 for more information about condition items.
operator
Indicates how the condition item is to be compared to the compare item.
=
Indicates that if the condition item equals the compare item, the condition is true.
IF DOMAINID='CNM01' &
TEXT='PURGE DATE IS LATER THAN TODAY''S DATE' THEN
EXEC (CMD('CLISTA') ROUTE (ONE * OPER1));
Figure 25 on page 130 shows another example of two conditions linked with the logical-AND operator.
In this example, the domain ID must be CNM02 and the MSU major vector key must be X'0000'
(indicating an alert).
The IF-THEN statement in Figure 26 on page 130 shows two conditions linked with the logical-OR
operator. If the message ID is IST051A or IST1311A, the NetView program takes the specified action.
IF MSGID='IST051A' | MSGID='IST1311A'
THEN EXEC (CMD('CLISTA') ROUTE (ONE * OPER1));
IF DOMAINID='CNM01' |
TEXT='PURGE DATE IS LATER THAN TODAY''S DATE' &
SYSID='MVS1' THEN
EXEC (CMD('CLISTA') ROUTE (ONE * OPER1));
The NetView program evaluates the TEXT and SYSID conditions together (because a logical-AND
operator links these two conditions). The TEXT and SYSID conditions must both be true or the
DOMAINID condition must be true. The program then combines the result with the DOMAINID
condition.
3. You can control the order in which the NetView program groups conditions by using parentheses
around comparisons that you want the NetView program to evaluate together.
This example presents the grouping of logical operators. If you want the NetView program to evaluate
the DOMAINID and TEXT conditions together, place code parentheses around them, as shown in
Figure 28 on page 131.
When processing the IF-THEN statement in the previous example, the NetView program evaluates the
DOMAINID and TEXT conditions together (because they are grouped within parentheses). The
NetView program then combines the result with the SYSID condition. Either the DOMAINID or the
TEXT condition must be true; and the SYSID condition must also be true.
The NetView program ignores blank lines if they appear at the beginning of an MLWTO (multiline write-
to-operator) message. The blank lines are retained for display purposes and can affect the location of
lines when using GETMLINE in a command procedure.
An MLWTO message presented to MVS can have a control line (IEE932I), a sequential message
identifier, or both appended to the message. The NetView program removes IEE932I to make the
message more useful, but does not remove the sequential message identifier.
4. The series of IF-THEN statements in the next example shows automation-table statements that make
up a block named VTAM.
You can enable or disable the various statements by using the AUTOTBL ENABLE or DISABLE
command with:
Figure 30 on page 131, which presents the use of the GROUP keyword, includes several automation-
table statements, some of which are part of a group of statements named VTAMX. You can use the
AUTOTBL command to enable or disable all statements in the automation table that are part of this
group by specifying a keyword of GROUP=VTAMX. In this example, the first and third statements are
affected.
Condition Items
This section describes the condition items that you can use in an IF-THEN statement. Three tables show
the condition items by type:
• Table 5 on page 132 for messages
• Table 6 on page 133 for MSUs
• Table 7 on page 135 for messages and MSUs
With these exceptions, the text in these tables describes each condition item in alphabetic order:
• Display actions for messages are ignored unless the message is sent to the command facility for
display.
• Display actions for MSUs are ignored unless the MSU contains an alert that is sent to the hardware
monitor for display.
There are five types of MSUs:
• Control point management services units (CP-MSUs)
• Multiple domain support message units (MDS-MUs)
• Network management vector transports (NMVTs)
• Record maintenance statistics (RECMSs)
• Record formatted maintenance statistics (RECFMSs)
Note: ¹ This condition item does not have a value unless the message being processed was originally a
message data block (MDB). This occurs when the MVS message is destined for a NetView operator.
HMORIGIN² Parse template 8 chars Returns the name of the resource sending the MSU
HMSECREC² Bit string 1 bit Returns an indicator specifying whether the hardware
monitor performs secondary recording
HMSPECAU² Parse template 2 chars Returns the specific component code of an MSU, in
hexadecimal
HMUSRDAT² Parse template 5 chars Returns the user data from subvector 33 of an MSU
MSUSEG Parse template See MSUSEG. MSU data
or bit string
Note: ² This condition item returns a null value if the MSU was not submitted for automation by the hardware
monitor.
A condition item that enables you to extract AIFR data using the syntax and function provided by the
PIPE EDIT stage.
Only the first line of the returned message buffer is used for comparison. The AIFR path ) continues
unaltered through the automation process.
While edit_specification must be enclosed in single quotation marks (in the form 'edit_specification'),
you cannot use single quotation marks within the edit_specification itself.
For specific information about the edit_specification, refer to the IBM Z NetView Programming: Pipes.
ACTIONDL [(pos [len])]
The reason for deleting the NetView program action message. The reason is expressed in an EBCDIC
string that is 1-8 characters in length.
pos
The position where the comparison begins. The default is 1.
len
The length of the string to be compared. The default value is the remaining portion of the string
beginning with pos.
If the value of ACTIONDL is not null (''), the automation table is processing a DOM (Delete Operator
Message), as contrasted to a message or an alert.
Valid values are as follows:
''
Null; the message is not a DOM.
ASID
The message was deleted because the address space ended that issued the message.
INVALID
The DOM contained an unrecognizable combination of bit settings.
LOCAL
The message was deleted by an operator overstrike or by the CONSOLE DELETE stage.
NETVIEW
The message was deleted by the NetView program DOM command using the NVDELID option, or
internally by the NetView program.
SMSGID
The message was deleted by an MVS DOM-by-SMSGID. A single message was deleted by its
specific identifier.
BIT
Indicates that the compare item is a bit string. If you do not specify BIT, the compare item is a
parse template.
aaaaaaaa1111bbbbbbbb2222cccccccc3333
There can be up to five name-type pairs. If an MSU does not have hierarchy information, the value of
HIER is null. See “Using the Resource Hierarchy” on page 292 for HIER examples.
HIER does not support a length specification. You can assign HIER to a variable, and then use that
variable (including pos and len) in a VALUE conditional statement.
Maximum length: 60 characters
Type: MSU
HMASPRID [(pos [len])]
Returns the 9-character alert-sender product ID. This is the same alert-sender product ID returned
with the prodid parameter on the SRFILTER command. The ID can be either of these items:
• A hardware product ID that has from 1 to 4 characters
• A software product ID has from 1 to 9 characters
Trailing blanks are not truncated.
pos
The position where the comparison begins. The default is 1.
len
The length of the string to be compared. The default value is the remaining portion of the string
beginning with pos.
HMASPRID returns a null if an MSU is either:
• Not a generic record
Note: The term generic refers to all MSUs that contain subvector 92. Generic MSUs include:
– Alerts that contain subvector 92
– Resolutions, which contain subvector 92
• Not submitted to automation by the hardware monitor
Maximum length: 9 characters
Type: MSU
Applies to: All MSUs submitted to automation by the hardware monitor
Example 1: Searching for a Device
This example specifies that if a hardware monitor MSU is generic and from a 3745 device, the
automation table calls the CLISTA command list and routes it to operator AUTO1.
Example 2: Specifying a Generic MSU
This example specifies that if a hardware monitor MSU is generic, the automation table calls the
CLISTA command list and routes it to operator AUTO1.
This example checks for MSUs with a block ID and action code that is not null, and colors them red.
Example 2: Checking for a Specific Block ID and Action Code
This example checks for MSUs with a block ID of X'FFD' and an action code of X'03', and colors them
red.
Example 3: Checking for a Specific Block ID
This example checks for MSUs with a block ID of X'FFD'. It does not check for a specific action code.
The automation table calls the CLISTA command list for MSUs with a block ID of X'FFD'. The block ID
This example specifies that hardware monitor MSUs with a complex link are colored red.
Example 2: Checking for an MSU with No Complex Link
This example checks for an MSU that was forwarded by the hardware monitor and that has no
complex link, and colors it red.
HMEPNAU[(pos [len])]
Returns the network addressable unit (NAU) name of the entry point node where the MSU originated.
For local MSUs, HMEPNAU returns the local NAU (domain) name. For MSUs that were forwarded from
a remote node entry point, the NAU name of the remote entry point is returned. This is true for both
alert forwarding mechanisms: LU 6.2 and LUC.
For LU 6.2 forwarded alerts, the NAU name returned is the NAU name of the entry point node in which
the MS application resides which first sent (forwarded) the alert to the ALERT-NETOP application. If
the NetView program cannot determine with complete certainty that the NAU name returned is the
entry point NAU name (for example, it might be an intermediate node name) then the NAU name
returned is preceded by an asterisk (*), for example, *nauname.
See Chapter 26, “Centralized Operations,” on page 329 for more information about forwarding
mechanisms.
pos
The position where the comparison begins. The default is 1.
This example specifies that hardware monitor MSUs that have been forwarded from remote entry
point node NETA.CNM01 using the SNA-MDS/LU 6.2 alert forwarding protocol are to be colored red.
HMEPNET[(pos [len])]
Returns the netid name of the entry point node where the MSU originated. For local MSUs, HMEPNET
returns the local netid name. For MSUs that were forwarded using LUC alert forwarding, HMEPNET
returns an asterisk (*), because the NetView program cannot determine the netid name.
For MSUs that were forwarded using LU 6.2 alert forwarding, the netid name returned is the name of
the entry point node where the MS application resides. If the NetView program cannot determine a
netid name, HMEPNET returns an asterisk (*). If the NetView program can determine the netid name,
but cannot with complete certainty determine that the netid name is the entry point netid name (for
example it might be an intermediate node netid name) then HMEPNET returns the netid name
preceded by an asterisk (*), for example *netidnam.
See Chapter 26, “Centralized Operations,” on page 329 for more information about forwarding
mechanisms.
pos
The position where the comparison begins. The default is 1.
len
The length of the string to be compared. The default value is the remaining portion of the string
beginning with pos.
Maximum length: 16 characters
Type: MSU
Applies to: All MSUs submitted to automation by the hardware monitor
Example: Checking for an MSU Forwarded from NETA.CNM01 Using LU 6.2
HMEPNETV[(pos [len])]
Returns a one-bit indicator, either 1 or 0, that specifies whether the entry point node where the MSU
originated was a remote node NetView program. This function applies only to MSUs forwarded using
the SNA-MDS/LU 6.2 alert forwarding protocol.
Indicator
Description
1
Indicates that the entry point was a NetView program.
0
Indicates that the entry point was not a NetView program or that the MSU was not forwarded
using the SNA-MDS/LU 6.2 alert forwarding protocol.
This example specifies that hardware monitor MSUs, which have been forwarded from a remote entry
point NetView program using the SNA-MDS/LU 6.2 alert forwarding protocol, are to be colored red.
HMEVTYPE[(pos [len])]
Returns a 4-character event type of the MSU. Trailing blanks are not truncated from the returned
value.
The event types are:
Refer to the NetView online help (HELP NPDA 'event_type') for more information.
pos
The position where the comparison begins. The default is 1.
len
The length of the string to be compared. The default value is the remaining portion of the string
beginning with pos.
HMEVTYPE returns a null if an MSU is:
• Not submitted to automation by the hardware monitor
• A PD statistic (X'0025')
• Link configuration data (X'1332')
• A statistics-only RECMS
Note: Statistics-only RECMS refers to record maintenance statistics that contain only statistical
data. These records have a recording mode of X'81', X'86', and X'87' in byte 8, offset 1 of the
RECFMS. For X'87', only RECMSs that represent temporary errors (not permanent) are considered
statistics-only.
• A statistics-only RECFMS
Note: Statistics-only RECFMS refers to record formatted maintenance statistics that contain only
statistical data. These records have a type of 1, 4, and 5 in byte 8, offset 1 of the RECFMS.
Maximum length: 4 characters
This example specifies that MSUs with an event type of PERM are colored red.
Example 2: Searching for Event Type SNA
These examples specify that MSUs with an event type of SNA are colored red. You do not have to
check for the trailing blank.
Example 3: Extracting an Event Type
This example extracts the event type from the hardware monitor MSU, passes it to the CLISTA
command list in variable MYVAR, and routes the command list to operator AUTO1.
HMFWDED[(pos [len])]
Returns a one-bit indicator, either 1 or 0, that specifies whether an MSU was forwarded from another
node.
Indicator
Description
1
Indicates an MSU was forwarded from another node through one of these alerts:
• NV-UNIQ/LUC alert forwarding protocol
• SNA-MDS/LU 6.2 alert forwarding protocol
0
Indicates that the MSU was not forwarded through another node, was forwarded over LU 6.2, or
that the hardware monitor did not submit the MSU to automation.
An indicator of 0 is returned in these instances:
• Local MSUs are received through the CNM interface.
• Local MSUs are received from the operating system.
• MSUs are received through the program-to-program interface.
• MSUs are received through the SNA-MDS/LU 6.2 alert forwarding protocol.
Note: RECMSs and RECFMSs that are forwarded from entry points over LUC or LU 6.2 are not
submitted to automation at the receiving focal point. RECMSs and RECFMSs are submitted to
automation at the entry point, but not at the receiving focal point.
See Chapter 26, “Centralized Operations,” on page 329 for more information about forwarding
mechanisms.
pos
The position where the comparison begins. The default is 1.
len
The length of the string to be compared. The default value is the remaining portion of the string
beginning with pos.
Maximum length: 1 bit
Type: MSU
This example specifies that hardware monitor MSUs that have been forwarded from an entry point
NetView program are to be colored red.
Example 2: Searching for MSUs Not Forwarded from an Entry Point
This example checks for an MSU, which was forwarded by the hardware monitor but not from an entry
point NetView program, and colors it red.
HMFWDSNA[(pos [len])]
Returns a 1-bit indicator, either 1 or 0, that specifies whether an MSU was forwarded from a remote
entry point node using the SNA-MDS/LU 6.2 alert forwarding protocol.
Indicator
Description
1
Indicates that an MSU was forwarded from a remote entry point node using the SNA-MDS/LU 6.2
alert forwarding protocol.
0
Indicates that an MSU was not forwarded from a remote entry point node using the SNA-MDS/LU
6.2 alert forwarding protocol or that the hardware monitor did not submit the MSU to automation.
Refer to Chapter 26, “Centralized Operations,” on page 329 for more information about forwarding
mechanisms.
pos
The position where the comparison begins. The default is 1.
len
The length of the string to be compared. The default value is the remaining portion of the string
beginning with pos.
Maximum length: 1 bit
Type: MSU
Applies to: All MSUs submitted to automation by the hardware monitor
Example: Checking for an MSU Forwarded from NETA.CNM01 Using LU 6.2
HMGENCAU[(pos [len])]
Returns the 1-character hexadecimal general cause code of an MSU.
The general cause code indicates:
• The general classification
• The exception condition that caused the MSU to be created
For more information about general cause codes, refer to the information about basic alert (X'91') MS
subvectors in the Systems Network Architecture library.
pos
The position where the comparison begins. The default is 1.
This example checks for a general cause code that is not a null, passes it to the CLISTA command list
variable MYVAR, and routes the command list to operator AUTO1.
Example 2: Checking for a Specific General Cause Code
This example specifies that a hardware monitor MSU with a general cause code of X'01' is to be
colored red.
HMONMSU[(pos [len])]
Returns 0 or 1 to indicate whether an MSU was forwarded to automation from the hardware monitor.
Indicator
Description
1
Indicates an MSU was forwarded from the hardware monitor.
0
Indicates that an MSU was not forwarded from the hardware monitor. It might have been
submitted to automation by the generic receiver (NVAUTO), or by a user application that issued
DSIAUTO or CNMAUTO.
These examples specify that MSUs submitted by the hardware monitor are to be colored red.
Example 2: Checking for MSUs Not Submitted by the Hardware Monitor
These examples specify that MSUs not submitted by the hardware monitor are not sent to
automation.
HMORIGIN[(pos [len])]
Returns the name of the resource sending the MSU.
pos
The position where the comparison begins. The default is 1.
len
The length of the string to be compared. The default value is the remaining portion of the string
beginning with pos.
Trailing blanks are not truncated from the value returned. The resource name returned by HMORIGIN
is the same name displayed on the hardware monitor Alerts-Dynamic, Alerts-Static, and Alerts-
History panels when ALT_ALERT=ORIGIN is specified in BNJMBDST.
Refer to the IBM Z NetView Administration Reference for more information about the ALT_ALERT
statement.
If a complex link does not exist in a resource hierarchy, the resource name returned with HMORIGIN
is the same as the resource name returned with the HIER condition item. If a complex link does exist,
the resource names might not be the same. Use the HMCPLINK condition item to determine whether
a complex link exists. For more information, see HMCPLINK and HIER.
HMORIGIN returns a null if the hardware monitor does not submit the MSU to automation.
Maximum length: 8 characters
Type: MSU
Applies to: All MSUs submitted to automation by the hardware monitor
Example 1: Checking for MSUs from GENALERT
This example specifies that MSUs sent from a resource named GENALERT are to be colored red.
Example 2: Extracting a Resource Name
This example checks for secondary recording on an MSU, passes the HIER resource hierarchy level
data in variable MYHIER to the CLISTA command list, and routes the command list to operator
AUTO1.
HMSPECAU[(pos [len])]
Returns 4 characters representing the 2-character hexadecimal specific component code of an MSU.
A general cause code is returned.
The pos parameter is the position where the comparison begins. The default value is 1.
The len parameter is the length of the string to be compared. The default value is the remaining
portion of the string beginning with pos.
The specific component code indicates the type of component, subcomponent, or logical resource
that is most closely related to the exception condition that caused the MSU to be created. For more
information about specific component codes, refer to the information about basic alert (X'91') MS
subvectors in the Systems Network Architecture library.
Values are returned only for nongeneric alerts (X'0000') and for RECMSs and RECFMSs that are not
statistics-only. HMSPECAU returns a null if an MSU is:
• A generic alert (X'0000')
Note: The term generic refers to all MSUs that contain subvector 92. Generic MSUs include:
– Alerts that contain subvector 92
– Resolutions, which always contain subvector 92
This example checks for a specific component code that is not null, passes the code to the CLISTA
command list in variable MYVAR, and routes the command list to operator AUTO1.
Example 2: Checking for a Specific Component Code
This example specifies that an MSU with a component code of X'0001' is colored red.
HMUSRDAT[(pos [len])]
Returns the 5-character user-specified data in subvector 33 of an MSU.
Trailing blanks are truncated from the value returned. This data can be used with hardware monitor
filtering. The hardware monitor translates any unprintable data in subvector 33 to underscores (_),
and translates lowercase characters to uppercase characters. The characters returned with
HMUSRDAT reflect any translation done by the hardware monitor, and might not be the same
characters in subvector 33. Use HMUSRDAT to determine whether the hardware monitor has
translated any data in subvector 33 to underscores or uppercase.
You can also use MSUSEG to retrieve user-specified data from subvector 33 in an MSU. However,
MSUSEG does not translate any characters.
For more information about subvector 33 data, the UDAT option of the GENALERT command, and the
U option of the SRFILTER command, refer to the NetView online help
HMUSRDAT returns a null if an MSU:
• Does not contain subvector 33. Subvector 33 is never present in RECMS or RECFMS records. Only
generic major vectors can contain subvector 33. The hardware monitor accepts and processes
subvector 33 information in any of the generic major vectors submitted to automation.
This example checks for hardware monitor MSUs with user-specified data of MYDAT in subvector 33,
and colors them red.
Example 2: Checking for User-Specified Data
This example checks for hardware monitor MSUs with user-specified data in subvector 33, passes the
data to the CLISTA command list in variable MYVAR, and routes the command list to operator AUTO1.
IFRAUIND [(pos [len])]
Indicates the AIFR indicator fields IFRAUIND and IFRAUIN2, which contain 16 bits.
pos
The position where the comparison begins. The default is 1.
len
The length of the string to be compared. The default value is the remaining portion of the string
beginning with pos.
Bit 16 indicates whether the message was solicited or unsolicited:
1
Unsolicited
0
Solicited
See Chapter 9, “NetView Program Information Routing for Automation,” on page 67 for a discussion
of solicited and unsolicited messages. Refer to the IBM Z NetView Programming: Assembler for a
description of all other bits.
The value of IFRAUIND evaluates to null ('') if all bits are B'0'. You can test for this condition by
comparing to the null ('') keyword.
Maximum length: 16 bits
Type: Both
IFRAUIN3 [(pos [len])]
The 8–bit AIFR field IFRAUIN3 mapped by DSIIFR.
pos
The position where the comparison begins. The default is 1.
Table 8. The MCSFLAG Condition Item Compared to REXX, Command List, and HLL
Bit MCSFLAG Condition Item REXX, CLIST, and HLL
1 REG0
2 REG0 QREG0
3 RESP RESP
4 REPLY
5 REPLY BRDCST
6 BRDCST HRDCPY
7 HRDCPY NOTIME
8 QREG0 NOCPY
9 NOTIME
10
11
12
13
14 NOCPY
15
16
The value of MCSFLAG evaluates to null ('') if all bits are B'0'. You can test for this case by comparing
to the null ('') keyword.
Maximum length: 16 bits
Type: Message
MSGAUTH [(pos [len])]
Indicates whether a message was issued from an authorized program. MSGAUTH is a two-bit
indicator. The compare item is a bit string.
pos
The position where the comparison begins. The default is 1.
len
The length of the string to be compared. The default value is the remaining portion of the string
beginning with pos.
Values for MSGAUTH are:
B'00'
The message is not from MVS
B'01'
Not used
B'10'
A WTO from an unauthorized program
. key
( occurnum )
H
For an MDS-MU, indicates that the first key is to be obtained at the MDS-MU level, rather than
the major-vector level. If you use this parameter and the MSU being processed is not an MDS-
MU, MSUSEG returns a value of null.
key
The 2-character or 4-character representation of the 1-byte or 2-byte hexadecimal ID of the
generalized data stream (GDS) variable or key of the major vector, subvector, subfield, or sub-
subfield.
You can use more than one key, separating them with periods. Each additional key specifies a
lower-level structure within the structure identified by the preceding key.
occurnum
The occurrence number, counting from 1, of the GDS variable, major vector, subvector,
subfield, or sub-subfield. An asterisk (*) means you want any occurrence. For example, used
at the subvector level, an occurnum of 2 means you want the second instance of the key
subvector. An occurnum of * means you want the first subvector with a key of key, if any, that
results in equality with the compare item you have specified. The maximum occurnum is
32767, and the default is 1.
byte
The byte position within the lowest key specified in location. A position of 1, not a 0, designates
the first byte. The maximum is 32767, and the default is 1.
bit
The bit position within the byte specified by byte. The bit position can be any number from 1 to 8.
Note that a position of 1, not a 0, designates the first bit. If you specify a bit position, the compare
item is a bit string. Otherwise, the compare item is a parse template.
MSUSEG does not support a length specification. You can assign MSUSEG to a variable, and then use
that variable (including pos and len) in a VALUE conditional statement.
Maximum length: Varies
Type: MSU
Usage notes:
1. See “Writing Automation Table Statements to Automate MSUs” on page 284 for examples of how
to use MSUSEG.
Indicates a variable to convert from a text value to a numeric value and to compare to the numeric
value of the literal specified in the parse template.
pos
The position where the text to convert to a numeric begins within the variable value. The default
value is 1.
len
The length of the text value to convert to a numeric. This value can be positive or negative;
decimal points are not supported. The default value is the remaining portion of the variable
beginning with pos.
Messages originating from MVS on system SYSA satisfies the check for SYSID because they have a
SYSID value equal to 'SYSA'. Messages that did not originate from MVS but are local to system SYSA
also match because they have a SYSID equal to null.
Maximum length: 8 characters
Type: Message
SYSPLEX [(pos [len])]
Identifies the name of the MVS SYSPLEX where the received message is being automated. SYSPLEX is
a 1-8 character name.
pos
The position where the comparison begins. The default is 1.
len
The length of the string to be compared. The default value is the remaining portion of the string
beginning with pos.
The value of SYSPLEX evaluates to equal to null ('') if the message is not being automated on an MVS
SYSPLEX or has no associated SYSPLEX name. You can test these cases by comparing to the null ('')
keyword.
Maximum length: 8 characters
Type: Both
TASK [(pos [len])]
Specifies the type of task under which the automation table is processing. TASK is a 3-character
string.
pos
The position where the comparison begins. The default is 1.
len
The length of the string to be compared. The default value is the remaining portion of the string
beginning with pos.
The values for TASK are:
HCT
A hardcopy task.
Unless you are accepting the default time period of 24 hours (one day), specify all the elements of
time_period (days, hours, minutes, and seconds), even though they are not required, to avoid any
misunderstanding of what the time period is.
The values returned by THRESHOLD are:
1
Indicates the number of occurrences within the specified time period is equal to or greater than
the value of occurrence_number
0
Returned for all other occurrences
The count of evaluations is incremented only if the THRESHOLD condition item is reached during the
sequential search (for matches) of the automation table. The count of evaluations is not incremented
if one of these situations is true:
• The statement with the THRESHOLD condition item is not reached because of a prior statement
match in the table.
• The BEGIN-END conditional logic that resulted in the statement was not evaluated.
• A prior condition in the automation-table statement that is linked with the logical-AND (&) operator
evaluates to false.
In Figure 32 on page 178, the evaluation count is incremented only if the sequential search through
the active automation table reaches this statement and if the message ID is XYZ123I.
The automation actions are done only for the fifth (or more) XYZ123I message that reaches this
statement during the automation table search for any 3-hour time period.
The second THRESHOLD condition item in the statement is evaluated only after the first threshold
is met (starting with the third occurrence of the XYZ123I message within a one-hour period). The
fifth evaluation of the second THRESHOLD condition item is the seventh occurrence of the
XYZ123I message.
5. Processing of immediate messages - If the automation table evaluates THRESHOLD for a
NetView message sent to the immediate message area of the operator's screen (that is, if
TVBINXIT is on), the THRESHOLD occurrence count is not incremented, and the condition
evaluates as false.
TOKEN [(token-number [pos [len]])]
Indicates a particular word or phrase within the message. The NetView program uses the blank
spaces between words and phrases to divide a message into tokens. A token consists of all the
characters between two nonadjacent blank spaces. The compare item is a parse template.
token-number
The number of the token you want to compare. It must have a numeric value; the default value is
1.
pos
Indicates the position, within the specified token where comparison begins. The default value is 1.
len
The length of the string to be compared. The default value is the remaining portion of the string
beginning with pos.
Maximum length: 255 characters
Type: Message
VALUE (variable [pos [len]])
The NetView program compares a compare-item bit string to a bit-string of equal length taken from the
condition item, starting with the position you indicate (the default is to start with position 1). If there are
not enough bits available in the condition item, an error results. For example, the statement in Figure 34
on page 181 directs the NetView program to compare 10X10 to bits 14 through 18 of the descriptor
codes. Because descriptor codes can only contain 16 bits, an error results.
A bit string of null ('') works differently, and its function depends on the condition item. DESC and
ROUTCDE equal null if all of the bits (beginning with the position you specify, if any) are zero. In Figure 35
on page 181, the comparison is true if all of the DESC bits are zeros.
For MSUSEG and ATF, null bit strings work like null parse templates. MSUSEG is null if the location you
specify does not exist in the MSU being processed. ATF is null if the ATF you call sends back a compare
item with a length or zero. The precise meaning of a zero-length compare item depends on the ATF.
DSICGLOB and DSITGLOB, which are the ATFs that are supplied with the NetView program, give a value
of null if you request a global variable to which you have not yet assigned a value, or to which you have
assigned a value of null.
If the NetView program is not using multiple console support consoles, the condition items that have
values only if the message was originally a message data block evaluate to null for MVS system
messages. See “Condition Items” on page 132 for a list of these condition items. These condition items
can have a value if the MDB was received from the CNMPMDB or DSIMMDB application programming
interface.
Literals
A literal indicates that you want to compare to a specified string. A literal is either a character or a
hexadecimal string. The maximum length for a literal is 255 characters. The maximum length for a
hexadecimal literal is 255 hexadecimal digits.
Try to keep literals on one line. If you use more than one line for a single literal, do not indent the
continuation lines. End each line in column 72, and begin each continuation line in column 1.
You can continue a literal compare item by breaking it into smaller literal compare items on several lines.
Consecutive literal compare items are concatenated without extra blanks, so you do not have to end the
lines in column 72 and begin them in column 1. For example, you can continue a literal compare item on
several lines, as shown in Figure 36 on page 182.
When a single quotation mark is part of a character literal, you must code a second single quotation mark
after the first, as shown in Figure 38 on page 182.
You can use system symbolics as a character literal, as shown in Figure 39 on page 182.
A hexadecimal literal is a string of hexadecimal digits enclosed in single quotation marks within a HEX()
keyword, such as HEX('A1'). The single quotation marks distinguish a hexadecimal literal from a
hexadecimal variable.
If you specify an odd number of hexadecimal digits, the NetView program adds a leading zero. For
example, the NetView program interprets HEX('1AB') the same as HEX('01AB').
Variable Names
Variable names designate parts of a message or MSU that you want the NetView program to ignore (when
doing the comparison), but to store those parts for use during action processing. You can use the stored
variables as command string parameters on an EXEC action with CMD.
During comparison processing, the NetView program ignores any parts designated by variable names and
stores each part ignored in the variable name you specify. After setting variables in the IF part of an IF-
THEN statement, you can use them in the THEN part of the statement or within a BEGIN-END section for
that IF-THEN statement.
IF DOMAINID='CNM01' &
TEXT='DATABASE HASN''T BEEN PURGED SINCE' DATEVAR THEN
EXEC (CMD('CLISTA ' DATEVAR) ROUTE (ALL OPERA OPERB));
If the NetView program receives the message DATABASE HASN'T BEEN PURGED SINCE 12/3/19, the
NetView program puts the value of the text following the word SINCE, which is 12/3/19, into the variable
DATEVAR. Then the NetView program runs CLISTA under both OPERA and OPERB using the value of
DATEVAR as a parameter.
The IF-THEN statement in Figure 41 on page 183 contains the variable name DOMID.
If the NetView program receives the message PURGE DATE IS LATER THAN TODAY''S DATE from
domain CNM01, the statement says to put the value of DOMAINID, which is CNM01, into the variable
DOMID and run CLISTA under both operators OPERA and OPERB using the variable DOMID as a
parameter.
A hexadecimal variable name is one whose value is the hexadecimal representation of the data you
assign to it. Specify a hexadecimal variable name with the HEX() keyword.
The example is Figure 42 on page 183 extracts the generic alert data from an MSU in the variable
GENERICDATA. The examples pass the data to a POWEROUT command list in hexadecimal format. Unlike
the hexadecimal literal HEX('14'), the hexadecimal variable HEX(GENERICDATA) does not have single
quotation marks.
IF MSUSEG(0000.92 6) = HEX('14') .
& MSUSEG(0000.92) = HEX(GENERICDATA) THEN
EXEC (CMD('POWEROUT 'GENERICDATA) ROUTE (ONE AUTO1 *));
The NetView program expands the data assigned to GENERICDATA into a string of EBCDIC characters
representing hexadecimal digits (0–9 and A–F) before passing the data to the POWEROUT command list.
Variable Values
You can use the value of a variable in a parse template using the VALUE() function. In this case, the value
is used rather than being set. A variable that has no value is treated as a NULL literal. The variable must be
specified in either the BEGIN block or the IF-THEN statement. A variable cannot be set and subsequently
referenced in the same parse template. The variable cannot be subscripted with position or length. The
IF-THEN statement in Figure 43 on page 184 contains a parse template to use the domain name from
variable DOM1.
Placeholders
Placeholders cause the NetView program to skip over parts of a message or MSU that you do not want to
use in the comparison. Placeholders are similar to variable names, but the NetView program does not
store the text skipped by a placeholder for use in an action. Designate a placeholder with a period (.).
If you code a period within single quotation marks, the NetView program treats the period as part of a
string, not as a placeholder.
The IF-THEN statement in Figure 44 on page 184 a placeholder to cause the NetView program to skip
over parts of the message text.
If the NetView program receives the message RESOURCE LU1 SENSE CODE=08 NOT ACTIVATED, the
statement in Figure 44 on page 184 directs the NetView program to skip over all of the text preceding
SENSE CODE=, store the value 08 in the variable name SENSE, and skip over all of the text following the
variable name SENSE. Without the leading placeholder, the example message does not fulfill the
conditions of the statement. Without the trailing placeholder, the variable SENSE takes on the value 08
NOT ACTIVATED.
The IF-THEN statement in Figure 45 on page 184 uses a placeholder to cause the NetView program to
select a single character from the message text.
If the NetView program receives the message IST105I A01A425 NODE NOW INACTIVE, the message
identifier and the 4th character of the resource name (the second token) are compared. If the values
specified in the automation-table statement match, the message does not appear in the network log.
Nulls
You can use a parse template of null ('') to check if information is absent in a message or MSU. You cannot
use the null in conjunction with literals, variable names, or placeholders in a single comparison. You can
use the logical-AND (&) and logical-OR (|) operators to join null comparisons with other comparisons.
A parse-template compare item has a value of null if the message or MSU being processed does not have
any value for that item. The precise meaning of the null varies from compare item to compare item. A bit
string compare item has a value of null if all bits in that bit field have a value of B'0'.
Some condition items have values only if the message was originally a message data block (MDB) (see
“Condition Items” on page 132). These condition items evaluate to null for MVS system messages if the
NetView program is not using multiple console support consoles. These condition items can have a value
if the MDB was received from the CNMPMDB or the DSIMMDB API.
Textual compare items give a value of null if the position you specify is beyond the length of the compare
item. For example, TOKEN(8) yields null for a message that has only six tokens. Some compare items in
the textual compare category are:
• DOMAINID
• MSGID
Actions
This section describes the actions that you can use in IF-THEN and ALWAYS statements. Table 10 on
page 185 summarizes these actions. The actions are organized according to type (message, MSU, or both)
in the table and alphabetically in the description section.
AUTOMATED (Yes|No|Ignore)
Sets the specified value of the significant action indicator for any message or MSU that matches the
statement. Possible values are as follows:
YES|Y
Forces the AUTOMATED status ON for an AIFR matching this statement, regardless of the actions
for this statement, to indicate this AIFR has been automated. This is the default.
NO|N
Forces the AUTOMATED status OFF for an AIFR matching this statement, regardless of the
actions, to indicate this AIFR has not been automated.
IGNORE|I
Leaves the indicator in the state prior to this statement.
This indicator can be queried by the AUTOMATED condition item.
Type: Both
BEEP (Y|N)
Determines whether an audible alarm sounds when the message or MSU is displayed. For MSUs,
BEEP applies only to alert major vectors displayed by the hardware monitor. If you do not specify a
BEEP value in the automation table or elsewhere, the default is BEEP (N) for messages.
See Note “5” on page 200 for information about MSU defaults.
Type: Both
CNM493I (Y|N)
Indicates whether CNM493I messages are written to the network log for this automation-table
statement. A CNM493I message is generated and written to the log to serve as an audit trail for a
command or command list that is run from the automation table. If you do not specify a CNM493I
value in the automation table, the DEFAULTS command, or the OVERRIDE command, the default is for
the NetView program to generate CNM493I messages.
STRIP(varname)
where varname is the variable name whose value, without leading and trailing blanks and
hexadecimal zeros, is to be inserted into the command.
This string contains the complete command syntax of the command or command list, including
the command name and any parameters. If you have defined automation table variables, you can
use them for parameters. See “Parse Templates as Compare Items” on page 182.
( ONE * )
ALL PPT
oper
+ grp
? auto
Where:
ONE
Routes the message or cmdstring to the first logged-on operator in the list or to the first
operator who is assigned to a group appearing in the list and who is logged on.
ALL
Routes the message or cmdstring to all the operators and groups of operators in the list who
are logged on to the NetView system.
*
Indicates that the NetView program routes the message or cmdstring to the current operator
task (the task that sent the message to the automation table). In cases where the current task
cannot process the message or cmdstring, the NetView program routes to the primary
autotask, defined by the FUNCTION.AUTOTASK.PRIMARY statement in the CNMSTYLE
member.
For additional information about command routing, see Note “6” on page 192.
PPT
Indicates that the NetView program routes the message or cmdstring to the PPT for
processing.
oper
The identifier of an operator to whom the NetView program routes the message or cmdstring.
The operator identifier must be defined to the NetView program. The maximum length of an
operator identifier is 8 characters. You can code as many operator identifiers as needed.
+grp
The identifier of each group of operators to whom the NetView program routes the message or
cmdstring. The maximum length of a group identifier is 8 characters, and it must begin with a
plus sign (+). You can code as many group identifiers as required. Define group identifiers with
the ASSIGN command.
Refer to the IBM Z NetView Command Reference Volume 1 (A-N) for information about the
ASSIGN command.
?auto
The function_name of an autotask defined with a function.autotask.function_name to which
the NetView program routes the message or cmdstring. The autotask must be defined to the
NetView program. You can code as many as necessary in this manner. This value is resolved to
the appropriate autotask name when the automation table is compiled.
If VARPARM1 is OPER4 and VARPARM2 is OPER5, the resulting command is CLISTB OPER4
OPER5 LITPARM.
4. If you specify CMD on an EXEC action, also specify ROUTE.
When you specify both CMD and ROUTE, the NetView program processes the CMD actions under
the tasks specified in routeparms. Autotasks, in many cases, are ideal command destinations.
You cannot route commands to SYSOP or the network log. Any BEEP, DISPLAY, HCYLOG, and
HOLD actions you specify do not apply to the CMD action but to the incoming message.
In Figure 48 on page 191, the NetView program sends the RUNNING command list to the first
task in group +GRP01 that is logged on. If none of the +GRP01 operators are logged on, the
command list goes to AUTOMGR instead. In any case, the NetView program does not display the
message that triggers the entry.
8. Using EXEC with both CMD and ROUTE only routes the command you specify with the CMD
keyword.
It does not affect the routing of the message that is undergoing automation-table processing. To
change the routing of the message itself, use an EXEC action with ROUTE, but not CMD.
When you specify ROUTE but not CMD on an EXEC action, the NetView program routes the
message to the operators specified in routeparms using the BEEP, DISPLAY, HCYLOG, and HOLD
actions specified in the IF-THEN statement. Otherwise, the NetView program processes the
BEEP, DISPLAY, HCYLOG, and HOLD actions under the current operator task (the task that sent
the message to the automation table).
Figure 49. Example of Using EXEC Action with the ROUTE Keyword
9. Commands issued from the automation table can be up to 2000 characters. However, command
parse tokens in the NetView program have a maximum length of 255 characters.
A command parse token is made up of all characters between parse delimiters in a command.
Parse delimiters are commas, equal signs, parentheses, and blanks. In Figure 50 on page 193,
the parse tokens are:
• MYCMD
• KEYWORD1
• VALUE1
• KEYWORD2
• VALUE1
• VALUE2
Each parse token can be up to 255 characters.
MYCMD KEYWORD1=VALUE1,KEYWORD2=(VALUE1,VALUE2)
In an automation-table statement, use two single quotes to represent one single quote within a
literal string. If a parse token has a pair of single quotes in it, any parse delimiters between the
single quotes are ignored. For example, if the command shown in Figure 51 on page 193 is issued
from the automation table, 'LITERAL, STRING' is one parse token. The comma is not used as
a parse delimiter.
IF MSGID='DSIxxxI'
THEN EXEC(CMD('MYCMD KEYWORD1='LITERAL, STRING',
KEYWORD2=(VALUE1,VALUE2)')
ROUTE(ALL OPER1));
If there is an unbalanced set of single quotes, everything from the extra single quote to the end of
the command is considered one parse token. For example, if the command shown in Figure 52 on
page 193 is issued from the automation table, 'LITERAL, STRING,
KEYWORD2=(VALUE1,VALUE2)' is one parse token.
IF MSGID='DSIxxxI'
THEN EXEC(CMD('MYCMD KEYWORD1='LITERAL, STRING,
KEYWORD2=(VALUE1,VALUE2)')
ROUTE(ALL OPER1));
IF MSGID='IST105I' THEN
NETLOG(Y 2);
.
Message IST105I is defined as an important message with a status monitor important message
indicator number of 2. Because no operators or groups of operators were specified, when the
NetView program encounters message IST105I, the message is logged as important for the
authorized receiver.
This shows how the IST105I message is logged when an indicator number and a list of operators
and groups of operators are specified for NETLOG. The IST105I message is defined as an
important message with a status monitor important message indicator number of 2.
IF MSGID='IST105I' THEN
NETLOG(Y 2 * OPER1 +GRP5 OPER6);
The NetView program logs the IST105I message as important with defined highlighting for OPER1,
OPER6, all operators assigned to group +GRP5, and the current operator. Duplicate highlighting
and logging do not occur if specified operators are also assigned to a specified group. If operators
*=====================================================================*
* Was the MSU forwarded over LU 6.2, and if so *
* then record it in the hardware monitor database as alert-only by *
* BLOCKing ESREC and PASSing AREC. *
*=====================================================================*
IF HMFWDSNA = '1' THEN
SRF(ESREC BLOCK)
SRF(AREC PASS);
As explained in Chapter 26, “Centralized Operations,” on page 329, default alerts received over LU
6.2 from NetView entry points are recorded to the database as alert-only, but alerts received over
LU 6.2 from non-NetView entry points go through the normal ESREC and AREC filters.
Data is recorded to the database in accordance with how these filters are passed. The SRF action
enables you to override these defaults. For example, you can set the AREC filters level to PASS and
the ESREC filter level to BLOCK to record non-NetView alerts as alert-only, or you can set the
ESREC filter level to PASS to record events or statistical data for alerts forwarded from entry point
NetView systems.
The NetView program processes each EXEC action of each matching statement individually. The
exception is EXEC actions that use the ROUTE keyword with the ALL option (but without the CMD
keyword). If you specify more than one EXEC(ROUTE(ALL parm1 parm2 parmx)) action for a
single message, the NetView program merges the task lists and does not route the message to any
task more than once.
You can use the CONTINUE(Y) action any number of times on separate statements to continue
automation-table processing after matches are found. A message or MSU continues processing until
it matches a statement that does not have a CONTINUE(Y).
For actions other than EXEC, SRF, and CONTINUE, if use of the CONTINUE action results in the
application of conflicting actions to a single message or MSU, the NetView program uses the value
given last. For example, a BEEP(Y) action can override a BEEP(N) action given earlier in the
automation table. However, if a NETLOG(Y) action without an important-message indicator follows a
NETLOG(Y) action with an important-message indicator, with no intervening NETLOG(N), the
indicator from the first NETLOG(Y) is retained as shown in Figure 55 on page 199:
If message IEE136I is issued, a match occurs on the first statement. Because CONTINUE(Y) is
coded, the automation table is searched for additional matches. When the second statement is
found, the actions set in the first statement can optionally be altered because of the CONTINUE(Y)
that was coded. The HOLD action is established in the first statement and unchanged in the second.
The COLOR action is set in the first statement, but then altered in the second. Finally, the NETLOG
action is ultimately determined by the second statement. The result is that OPER1 through OPER8
each displays message IEE136I that is held and has a color of blue. The message is not sent to the
NETLOG.
2. For actions coded yes or no (Y|N), you can code YES or Y for yes, and NO or N for no.
3. For a message action, the default value indicated is the NetView system default. Use this list to
determine override defaults. Each item in the list can override the items preceding it in the list.
a. System default.
b. DEFAULTS command.
c. Installation exit DSIEX02A, if used to replace DEFAULTS settings.
d. Action on a matching statement in the automation table.
e. Installation exit DSIEX16, if used to replace DEFAULTS settings.
f. OVERRIDE command. SCRNFMT specifications for message color and highlighting do not override
automation-table specifications.
g. Installation exit DSIEX02A or DSIEX16, if used to replace OVERRIDE settings.
ALWAYS Statement
The ALWAYS statement enables you to specify actions or a series of statements that the NetView
program processes for all messages and MSUs that reach that point in the table.
You can use the ALWAYS statement with CONTINUE at the beginning of an automation table or a BEGIN-
END section to set defaults for the table or section.
You can also use the ALWAYS statement at the end of an automation table or a BEGIN-END section to
handle messages and MSUs that do not match any other statement in the table or section.
The syntax for the ALWAYS statement is:
ALWAYS Statement
ALWAYS actions ;
BEGIN
Where:
ALWAYS
The keyword coded at the beginning of each ALWAYS statement.
actions
Specifies actions for the NetView program to take. For information about actions, see “Actions” on
page 185.
%INCLUDE Statement
The %INCLUDE statement enables you to keep portions of your automation table in separate files or
members.
The syntax for the %INCLUDE statement is:
%INCLUDE Statement
% INCLUDE membername
& varname
Where:
%INCLUDE
The keyword coded at the beginning of each %INCLUDE statement.
membername
The name of the member to be included. The member must be in the DSIPARM data set.
&varname
The name of an existing local or global variable, preceded by the ampersand (&) character.
Usage notes:
1. Each %INCLUDE statement can be no longer than one line.
2. Unlike other automation-table statements, the %INCLUDE statement does not end with a semicolon
(;).
3. A member that has been included can contain %INCLUDE statements as well as other automation-
table statements.
4. A member that has been included cannot include itself either directly or indirectly.
5. If you specify a variable name, the NetView program includes the designated member or file when you
issue the AUTOTBL command. The NetView program searches for the variables in this order:
• If the AUTOTBL command is issued from a command procedure, the NetView program searches first
for a local variable of the name varname.
• If the AUTOTBL command is not issued from a command procedure or there is no local variable of
the name varname, the NetView program searches next for a task global variable, and finally for a
common global variable.
SYN Statement
The SYN statement enables you to define synonyms for use later in the automation table. A synonym has
a name and a value. After defining a synonym, you can use the name of the synonym elsewhere in the
table. When you activate the table, the NetView program substitutes the synonym value for the name.
Synonyms enable you to provide a shorthand notation for long, repetitive strings. Synonyms can also help
you modify and maintain an automation table, because you can change a value throughout a table by
changing it in one place.
The syntax for the SYN statement is:
SYN Statement
SYN % synname % = ' synvalue ' ;
Where:
SYN
The keyword coded at the beginning of each SYN statement.
synname
The name of the synonym, up to 256 characters.
synvalue
The value of the synonym.
Usage notes:
1. The definition of a synonym must precede the use of the synonym in the automation table. You can
define a synonym's value only once in the table, but thereafter you can use the synonym as often as
you like. Consider defining all synonyms at the beginning of the table.
2. You cannot nest a synonym inside another synonym.
3. You can use blanks, alphanumeric characters, and other characters in synonym names and synonym
values except as follows:
• Synonym names cannot contain a percent sign (%) or a semicolon (;).
• Synonym values cannot contain a semicolon (;).
• Because single quotation marks are used as the delimiter for the synonym value, if a synonym value
is to contain a single quotation mark ('), you must represent it as two consecutive single quotation
marks (''). Do not substitute a double quote for two single quotes. For example, the synonym in
Figure 56 on page 203 contains single quotation marks.
Although the statement in Figure 57 on page 204 uses correct syntax, no substitution occurs for the
synonym %LDOMAIN% because it is coded within single quotes. If you want single quotes to be
included as part of the synonym, code the SYN statement and automation table as shown in Figure 58
on page 204.
Dividing the table into sections minimizes the number of statements that must be processed to find a
match for a message or MSU. In Figure 59 on page 205, for a NetView command-facility DSI message, the
NetView program needs to check only two statements before reaching the section for command-facility
DSI messages:
• The MSGID = 'IST' statement
• The MSGID = '$HASP' statement
The NetView program does not check the MSUSEG(0000) ¬= ' statement for a message, because
MSUSEG is for MSUs only. Within each section, additional BEGIN-END sections can also help reduce the
number of automation-table comparisons that must be made.
Arrange BEGIN-END sections so that the most frequently used sections come earlier in the table. You can
use the AUTOCNT command to generate automation-table usage reports, which you can use to analyze
message and MSU frequency.
The sample NetView automation table DSITBL01 (CNMS1015) uses BEGIN-END sections for groups of
messages.
You can use the occurrence-detection condition items (THRESHOLD and INTERVAL) within a BEGIN-END
section to indicate different actions taken depending on whether the occurrence-detection threshold has
been reached, as shown in Figure 60 on page 206.
Using the example in Figure 60 on page 206, the NetView program does one of these functions if VTAM
becomes inactive:
• If this has happened at least two other times within the past seven days, the NetView program sends a
message to the system operator informing the operator of the problem.
• If this is the first or second time this has happened within the past seven days, the NetView program
performs these activities:
– Tries to restart the VTAM program.
– Notifies the system operator that the automation table had sent a request for an autotask to restart
the VTAM program.
In Figure 62 on page 207, automation-table members ATSYNS, AT0000, ATVTAM, ATJES2, ATNVDSI,
and ATNVBNJ contain the statements for synonym definitions, X'0000' major vectors, VTAM messages,
JES2 messages, NetView DSI messages, and NetView BNJ messages, respectively.
Note: BEGIN-END sections can be used in the included members or files to increase the efficiency of the
automation table.
Use Synonyms
Use synonyms to define complex or repetitive strings within an automation table or to standardize using
automation tables across several systems. You can define all system-dependent specifications as
synonym values and place the synonyms at the beginning of the automation table or in an included
member. Then copying an automation table to another system might require changing only the synonym
values or the member containing the synonyms.
Note: Synonyms must be defined in the same table in which they are used. They cannot span multiple
tables.
The statement in Figure 64 on page 208 causes all messages to go to the system log but not to the
network log by default. If a message matches a later statement in the table, that statement must
explicitly specify SYSLOG(N) or NETLOG(Y) to override the defaults set by the ALWAYS statement.
Because SYSLOG and NETLOG are message-only actions, the statement in Figure 64 on page 208 does
not affect MSUs.
The second member, shown in Figure 66 on page 210, is the main automation-table member, the one you
specify on an AUTOTBL command.
You can generate a listing of the table shown in Figure 66 on page 210 by issuing an AUTOTBL command
with the LISTING keyword. Figure 67 on page 211 shows the resulting listing. The listing gives you several
types of information about the automation table:
• Header lines indicate the AUTOTBL command that you issued, the task that ran the command, and the
time.
• Start and end lines indicate where each member in the table begins and ends.
• An asterisk (*) in column 1 marks each comment line.
• Any synonyms that you defined are resolved. In the example, %MYDOMAIN% and %NETL3% are
replaced with their values.
• The listing describes each statement in the table:
– Columns 1 through 4 indicate the statement number.
– Columns 6 through 8 indicate the BEGIN-END nesting level. For example, an 001 indicates a
statement that is not within a BEGIN-END section, and an 002 indicates a statement in a first-level
BEGIN-END section.
– Columns 10 through 72 show the statement text.
– Columns 73 through 80 show the sequence number, if any.
– An error message follows each statement that is not valid.
• At the end of the listing is a line stating the total number of errors.
0 STATEMENT(S) IN ERROR
The detailed statistics can indicate the effect of each statement on automation processing. Examine the
comparison and match counts to determine the optimal order of automation statements. Generally, the
statements with the highest match counts should be near the beginning of their BEGIN-END sections.
Likewise, BEGIN-END sections with the highest total match counts for all statements within the BEGIN-
END section should be near the beginning of the automation table.
Move statements with care, ensuring that the sequential logic of the table is not affected.
Consider the statements in Figure 72 on page 218. Even if the usage statistics show that the third
statement is matched more frequently than the first and second statements, moving the third statement
sequentially ahead of the first two affects the automation actions performed. The statements that call
COMMAND1 and COMMAND2 never match, because the statement that calls COMMAND3 always
matches the messages first.
Examine IF-THEN statements that always match to determine whether there are logic errors in the
statement specifications. Examine IF-THEN statements that never match to determine whether:
• There is a logic error in the statement specification
• There is a statement preceding the statement in question that prevents this statement from getting its
intended messages or MSUs
• The statement is no longer required, and therefore can be removed
Examine the comparison and match counts to determine the optimal order of automation statements.
When you add new automation statements, the COMPARE and MATCH COUNTS can indicate part of the
effect of the addition.
A high number of matches for a statement that contains one or more command invocations can indicate
excessive CPU processing for issuing the commands. If the commands being issued are command lists,
consider preloading them using the LOADCL command.
The summary statistics can indicate how effective and efficient your automation processing is:
• The number of messages or MSUs per minute can indicate the automation processing load.
• The average compares per message or MSU indicate how much automation processing time is taken to
determine what, if any, automation-table actions to take.
The smaller the average compares figure is, the smaller the CPU use by automation processing of
messages and MSUs. You can generally reduce the average compares figure by adding BEGIN-END
sections or combining multiple statements.
A high number of messages that are not matched might indicate that one of these activities is to be
performed:
– Add automation statements
– Improve efficiency of the operating system message processing facility to prevent messages from
undergoing automation processing
– Suppress more messages
The summary statistics are especially useful for historical purposes so that you can see the effect of:
Getting Started
AUTOMAN provides individual table commands and global commands. The individual table commands
apply to one or more selected tables, and global commands apply to all automation tables. See these
features and options of each type of command:
• With individual table commands, you can enable or disable automation tables. You can also enable or
disable automation-table statements, as shown here:
– Sequence number
– Label
Command ===>
F1=Help F2=Main Menu F3=Return F4=Commands F5=Refresh F6=Roll
F7=Backward F8=Forward F9=Responses F10=Global Commands F12=Cancel
In the previous figure, the status of all loaded tables is displayed. The fields in this figure are described as
follows:
Command ===>
F1=Help F2=Main Menu F6=Roll
F12=Cancel
These commands are available in the COMMANDS pop-up menu shown in Figure 76 on page 223:
1
Enables the selected tables.
2
Disables the selected tables.
3
Reloads the selected tables.
4
Reloads selected tables and reinstates all disabled elements.
5
Tests the selected tables.
6
Enables or disables parts of the selected tables.
7
Unloads or removes the selected tables.
8
Displays the panel where new tables (that are based on the currently selected table) can be inserted.
See Figure 77 on page 224.
9
Displays the panel where other display options are available for automation tables. See Figure 78 on
page 225.
Command ===>
F1=Help F3=Return F6=Roll
F12=Cancel
The automation-table INSERT option is used to insert tables based on the INSERT command you chose in
Figure 76 on page 223 and the focus table that was selected in Figure 75 on page 221.
The insert panel displays the name of the focus table and its numeric position. To the left of the focus
table is the name of the Preceding Table and to the right is the name of the Next Table. If there are
no tables in those positions, N/A is displayed. Using this information, you can specify the INSERT option
as follows:
1 - AT
Inserts a new table in the same position as the focus table.
The focus table is moved to the next position. You cannot insert a table using the AT option if the
focus table is marked as FIRST.
2 - AFTER
Inserts a new table in the position following the focus table.
If the focus table is marked as LAST, you cannot insert a table using the AFTER option.
3 - BEFORE
Inserts a new table before the focus table. This request has the same result as the default AT.
4 - REPLACE
Replaces the focus table with the new table.
This function has the same result as the RELOAD option in Figure 76 on page 223.
If the focus table is marked as FIRST or LAST, you cannot specify the REPLACE option unless the
tables have the same name.
5 - FIRST
Inserts a new table and marks it as FIRST.
You cannot specify this option if another table is marked as FIRST or if the current focus table is not
the first table located at position 1.
6 - LAST
Inserts a new table and marks it as LAST.
You cannot specify this option if another table is marked as LAST or the current focus table is not the
last table listed.
7 - AUTOTBL TEST
Performs an AUTOTBL test on the table name specified.
Command ===>
F1=Help F2=Main Menu F3=Return F6=Roll
F12=Cancel
In Figure 78 on page 225, the DISPLAY functions act only on a single automation table. The table in this
panel was selected in Figure 75 on page 221. You can choose the following options on the DISPLAY
OPTIONS panel:
1
Invokes the BROWSE command for the selected table with the default XINCL option.
2
Invokes the BROWSE command for the selected table with the NOINCL option.
3
The %INCLUDE structure is displayed using the WINDOW command. Each INCLUDE level is indented
and color-coded. Refer to the NetView online help for more information about the WINDOW
command.
4
Displays the same %INCLUDE structure as option 3 with synonyms included.
8
Invokes the BROWSE command for the selected table listing file.
Command ===>
F1=Help F2=Main Menu F6=Roll
F12=Cancel
When the GLOBAL COMMANDS pop-up menu is displayed, you can choose from the following options:
1
Turn on all tables.
2
Turn off all tables. (See note 2.)
3
Remove all tables from memory. (See note 2.)
4
Shows the GLOBAL DISPLAY OPTIONS popup.
Any option selected from this pop-up menu applies to all tables.
Usage notes:
1. Characters that you typed in the SEL fields are ignored when the GLOBAL COMMANDS pop-up window
is displayed.
2. If you select the global command to UNLOAD or DISABLE all automation tables, you receive a
confirmation panel asking you to confirm whether you want to disable or remove the tables or cancel
the operation. See “The Confirmation Panel” on page 230 for more information.
Command ===>
F1=Help F2=Main Menu F3=Return F6=Roll
F12=Cancel
Command ===>
F1=Help F2=Main Menu F3=Return F4=Enable
F5=Display Group/Block F6=Roll F7=Backward F8=Forward
F9=Disable Stmt/Member F10=Disable Block F11=Disable Group F12=Results
Note: When you enter this panel from the GLOBAL DISPLAY OPTIONS or DISPLAY OPTIONS (6) pop-up
windows, only not allowed statements are displayed.
In Figure 81 on page 228, the following data is displayed:
MEMBER
The name of the automation table that contains the statements that follow.
STATEMENT
The automation-table statements that were retrieved from the automation-table listing member.
The status of each statement is displayed in different colors as follows:
Green
The statement is enabled.
Red
The statement is disabled.
Blue
The statement cannot be individually disabled because it does not contain a label or sequence
number.
Pink
This statement is not disabled on its own, but as the result of a disabled table, %INCLUDE, or
begin block.
To activate a pink statement, you must place the cursor on the preceding red statement, which
caused this statement to be disabled, and activate that statement accordingly.
To use this panel to enable or disable an automation-table statement, scroll to the statement you want to
take action on and choose one of the following function keys:
F4
Enables the label, block, or group, depending on which statement is the current focus and how that
statement was disabled.
F5
Displays groups and blocks.
F9
Disables a statement or member; statements displayed in green might be disabled.
F10
Disables a block. This function requires that your selection is a LABEL statement that has a
corresponding ENDLABEL statement.
COMMAND ===>
F1=Help F2=Main Menu F3=Return F4=ENABLE
F5=DISABLE F6=Roll F7=Backward F8=Forward
F9=Toggle Display F12=Cancel
If you enter the previous pop-up window from Figure 78 on page 225, the display panel, your actions
affect only a single automation table. If you enter this pop-up window from Figure 80 on page 227, the
global display panel, your action affects similarly named labels in all automation tables.
NetView Policy Services is a set of functions that enable dynamic policy-based management and
automation of your resources. Several NetView functions exploit the Policy Services. Before an action is
taken against a resource, these functions use the policy definitions to determine what action, if any, is to
be taken.
You can write your own policy-based applications using NetView Policy Services. This section provides
you with information to write your own policy applications and manage NetView policy.
NetView Policy Services consist of:
Policy Repository
A persistent data store in storage for your policy
Policy APIs
A set of functions that enable access to the policy repository for querying, modifying, adding, deleting,
or loading the policy definitions.
Any application using NetView Policy Services needs to provide policy definitions to be loaded into the
Policy Repository as well as application code to interpret the policy and take appropriate action. The
NetView program includes two applications that use the NetView Policy Services:
Network Management Console (NMC)
Provides you with function to define time schedules (for resources in NetView management console
views), based on NMCSTATUS policy definitions. With these schedules, policy can be applied to views
to specify when:
• The displayable status of one or more resources in a view is disabled at the NetView management
console
• One or more resources in a view is suspended from aggregation
Automated Operations Network (AON)
Provides you with automation of your network resources based on policy definitions.
Each of these applications defines default policy in the Policy Repository and then interprets the policy in
order to take appropriate action based on that policy. You can modify the default policy statements that
are included with the NetView management console and AON. All of the policy definitions used by the
NetView management console and AON are documented in IBM Z NetView Administration Reference. This
chapter provides information about installing Policy Services, the syntax of the policy file statements, how
to load the policy files into the Policy Repository, and how to manage the policy.
Where:
Policy_Name
The name of your policy (such as RECOVERY or NMCSTATUS) This is used for the ENTRY= parm on
POLICY requests. This name must start in column 1 and must contain from 1 to 32 characters without
embedded blanks ( ), commas (,,,), single (' ') or double quotation marks (" "), parentheses (), or equal
signs (=).
Note: Before creating your own policy refer to Automated Operations Network (AON) Definitions in
IBM Z NetView Administration Reference for a list of policy names to avoid.
TEXT=A=B is invalid
TEXT='A=B' is ok
TEXT="A=B" is ok
TEXT=A B is invalid
TEXT="A B" is ok
Usage Notes
• Comments start in column 1 with an asterisk (*).
Do not embed comments within a policy definition. Place your comments before the start of a given
policy definition.
• Policy definitions, such as RECOVERY or NMCSTATUS, start in column 1.
Note: Policy statements must begin in column 1. Continuation lines for these statements must not begin
in column 1.
• Continuation to the next line is supported.
To continue a line, end the current line with a comma and then start the next line in column 2 or greater.
• Continuation is not supported for text strings or for parenthesis-delineated strings.
• Policy statements must be in columns 1–72.
• If a policy statement contains a syntax error, the load of the policy repository terminates.
• Do not use a NetView predefined policy for your own applications.
Changing NetView policy might cause errors. For additional information refer to the IBM Z NetView
Administration Reference.
Examples:
Policy information is defined by the application and stored in the Policy Repository. The following
examples of AON's RECOVERY policy illustrate how you can define policy. The comments are used to
explain the purpose of the policy.
Remember that the keyword value syntax is defined by the application. In this case, the application is
AON.
For additional information about the AON RECOVERY policy and other NetView policies, see the IBM Z
NetView Administration Reference.
ADD
DEL
LOAD
STATUS
TEST
MEMBER= member_name
DISP = Y
( Keywd = value )
Where:
GET
Retrieves the requested policy definition from the Policy Repository. This is the default.
SET
Updates the requested policy definition keyword with a value.
ADD
Creates a new policy definition in the Policy Repository with provided keywords and values.
DEL
Deletes a policy definition from the Policy Repository.
LOAD
Loads the Policy Repository based on definitions in the CNMSTYLE member.
STATUS
Queries which policy files have been loaded in the Policy Repository.
TEST
Performs a syntax check of the policy files.
MEMBER=member_name
The name of the actual policy file to test. If not specified on a TEST request, then all of the
currently active policy files are tested.
DISP
Y: Displays pertinent messages at the user console. Y is the default.
N: Option that does not display pertinent messages at the user console.
Note: This option must be used by 3270 applications to avoid being interrupted by messages.
EZL005I MEMBER NVPOLICY CURRENTLY BEING USED FOR THE CONTROL FILE
EZL006I NVPOLICY FILE 1 = EZLCFG01
EZL006I NVPOLICY FILE 2 = DUIPOLCY
EZL002I END
Where NVPOLICY is the logical file name used to load the Policy Repository. EZLCFG01 and DUIPOLCY
are the real files used to create NVPOLICY when the policy definitions were loaded.
For every file that is not tested successfully, you see this message, along with other more descriptive
messages that document errors:
When all files test accurately, you can reload the Policy Repository. See “Loading Policy Files” on page
237.
Reloading the policy removes temporary changes that were made to the previous policy that was loaded.
1. Use caution when loading and reloading the Policy Repository.
Test your policy files before you load them. See “Syntax Testing the Policy Files” on page 237.
Applications that use the Policy Repository must resynchronize whenever the policy is reloaded.
2. Authorize the tasks that load the policy.
Applications that use the Policy Repository must resynchronize whenever the policy is reloaded.
3. If you have written your own application that uses the Policy Repository, do these steps:
a. Review the EZLI110I automation statements that are used to resynchronize the application when
the policy is reloaded.
b. Provide similar functions for your application.
The Policy_Name is RECOVERY. The Policy_Definition is NCP10. There are four keyword=valuee pairs. The
first keyword=value pair is AUTO=Y. The second keyword=value pair is NOAUTO=(HOLIDAY,00:00,02:00).
The third keyword=value pair is NOAUTO=(WEEKEND,00:00,04:00). The fourth keyword=value pair is
NOAUTO=(WEEKDAY,00:00,06:00).
In this case, the Policy_Name is TCP390. The query returned 3 Policy_Definition values: DEFAULTS,
NMPIPL10, and NMP190.
Wild cards are supported. For example, issue POLICY REQ=GET ENTRY=TCP390 TYPE=NMP* to
retrieve TCP390 policy definitions for only NMP*. You see a response similar to this:
In this case, the query returned two policy_definitions, NMPIPL10 and NMP190.
Updates are made to the copy of the policy definition that is loaded into the Policy Repository. The original
policy file in DSIPARM remains unchanged. If you want the change to be permanent, modify the original
policy file in DSIPARM so that the change is not lost the next time the policy is loaded
Note: If you want to replace an existing policy definition in its entirety, delete the current policy definition
and then add the new policy definition.
Deletions are made from the policy file that is in the Policy Repository. The original policy file in DSIPARM
remains unchanged. If you want the change to be permanent, modify the original policy file in DSIPARM.
Then the change is not lost the next time the policy is loaded.
You can now query the policy to see what was loaded into the Policy Repository. Updates are made to the
copy of the policy definition which is loaded into the Policy Repository. The original policy file in DSIPARM
remains unchanged. If you want the change to be permanent, modify the original policy file in DSIPARM
so that the change is not lost the next time the policy is loaded.
EZLETAPI
The EZLETAPI API is used to define parameters to establish or change a timer.
The syntax for the EZLETAPI API is:
CHANGE--HANDLE = timerid
SET
HANDLE = timerid
STARTAT=NOW
STARTAT= hh.mm.ss.micros
yyy-mm-dd
STARTAFTER= hh.mm.ss.micros
dd
TASKID='' RECOVERY=IGNORE
RECOVERY=AUTOLGN
RECOVERY=PURGE
TIMEZONE=GMT
TIMEZONE=LOCAL
NOTIFYIGNORE= ( taskname )
NOTIFYPURGE= ( taskname )
NOTIFYREMOVE= ( taskname )
NOTIFYRUN= ( taskname )
REPEATING=NO
repeatoptions
REPEATMAX=NOLIMIT
INTERVAL= hh.mm.ss.micros
ddd REPEATMAX= repeatcount
REPEATOFF= hh.mm.ss.micros
REPEATFOR= hh.mm.ss.micros
REMOVE=MANUALLY
REMOVE= yyyy-mm-dd-hh.mm.ss.micros
REMOVEAFTER= ddd-hh.mm.ss.micros
DAYOFWEEK=ALL
DAYOFWEEK=( dayname )
NOT
,
( 1st )
2nd
3rd
4th
5th
LAST
LAST-n
DAYOFMONTH=ALL
DAYOFMONTH=( dayofmonthnumber )
NOT LAST
LAST n
CALDAY=ALL
CALDAY=( keyname )
NOT
Where:
SAFE
The name of the safe where the output is placed. The default is EZLTASAF.
/* */
/* Valid parameters to this test exec are TIMERID and OPID */
/* This routine changes the ACTION keyword of an existing timer */
/* and sets the timer using EZLETAPI. */
trace o
parse arg argstring
parse var argstring TMRID OPID .
Address NETVASIS
/* Issue the command that was built */
'PIPE CORRCMD (MOE) 'testcmd,
'| SEP',
'| STEM CHRON1.'
If Chron1.0 ¬= 0 Then
Do
'PIPE SAFE DELSAFE ',
'| STEM DOUTPUT.'
If Doutput.0 ¬= 0 Then
If Doutput.1 ¬= '0' Then
Do
delfailed = 1
say Doutput.I
End
End
End
Else
newtimer = newtimer || 'TYPE=CHANGE'
If delfailed = 0 Then
Do
/* Issue the EZLETAPI command just built */
'PIPE CORRCMD (MOE) 'newtimer,
'| SEP',
'| STEM Chron1.',
'| COUNT',
'| VAR errorcnt',
If Chron1.0 ¬= 0 Then
Do
'PIPE SAFE NEWSAFE ',
'| STEM NOUTPUT.'
If Noutput.0 ¬= 0 Then
If Noutput.1 = 0 Then
Do
say 'The handle is 'Noutput.2
End
Else
say 'Failure in EZLETAPI: Return code is 'Noutput.1
Else
say 'Nothing in the safe'
End
End
Else
SAY 'The delete of timer 'oldhandle' was not successful'
exit
EZLEQAPI
EZLEQAPI is an API that enables you to easily query timers (that were set by the CHRON command) to
determine if a particular timer has been set.
The syntax for the EZLEQAPI API is:
SAFE=EZLQASAF
EZLEQAPI HANDLE = timerid TASKID= taskid
SAFE= safename
Where:
SAFE
Specifies the name of the safe where the output from the EZLEQAPI command is placed. The default
is EZLQASAF.
HANDLE
The timers to be queried. Valid values are:
timerid
Displays the status of the named timer request. The timerid is the optional handle specified on the
HANDLE operand of the SETTIMER command or generated by the system.
TASKID
The tasks to be queried. Valid values are:
EZLEDAPI
EZLEDAPI
The EZLEDAPI API enables applications to delete timers they have established.
SAFE=EZLDASAF
EZLEDAPI HANDLE = timerid
SAFE= safename
TASK=''
TASK= taskname
Where:
HANDLE
The timers to be deleted. Valid value is:timerid Deletes the specific timer request.
SAFE
The name of the safe in which output from the EZLEDAPI command is placed. The default is
EZLDASAF.
TASKID
The task on which the delete timer is to be performed. Valid values are:
SAFE=EZLQCSAF
EZLEQCAL
SAFE= safename
QRYDATE= currdate
QRYDATE= yyyy-mm-dd
:nnn
Where:
QRYDATE
Date to be queried. This can specify the number of days to be queried by specifying :nnn following the
date specification. The range for yyyy is from 1 to 9999. The range for nnn is 1 to 999. The range of
dates that can be queried (including the nnn) is 0001-01-01 through 9999-12-31.
SAFE
Name of the safe in which output from the EZLEQCAL command is placed. The default is EZLQCSAF.
Return Codes:
-8
REXX syntax failure
-5
REXX halt
-1
REXX failure
0
Successful completion
4
Incorrect safe name
8
Error in operands passed
Safe Containing:
For Return Code 0:
A safe containing the data as described in this information. Data begins in column 1.
This example displays four days, beginning with the 31st of December, 2010.
EZLEQCAL 2010-12-31:4
The first column is the Month. The second column is the date specification. The third column is the
year. The fourth column is the day of the week. The fifth column is the day specification. The last
column is user-defined days.
Note: This routine requires READ access to the DSISCHED data set in DSIPARM.
This chapter provides product-sensitive programming interfaces and associated guidance information.
Installation exits available for automation are briefly described in this section.
Before you can use automated operations, you must perform these setup tasks:
• If you want to use system automation, set up communication between the NetView system and the
operating system.
• Define and activate autotasks to perform automation processing.
The NetView subsystem address space acts as a z/OS subsystem. It selects messages that are broadcast
on the z/OS subsystem interface and forwards copies of the selected messages to the NetView
application address space for automation processing. If you are using EMCS consoles, the subsystem
address space is used to receive commands, not messages. For more information about the flow of
messages within the z/OS system and across the subsystem interface into the NetView system, see
Appendix C, “MVS Message and Command Processing,” on page 451.
The NetView application address space performs all network management functions, system and network
message processing, and presentation services for the NetView program. It contains the automation table
and autotasks that you use for automation.
Adding CMDDEF Statements to Allow System Commands from the NetView Program
System automation is based on the ability to issue IBM z/OS system, subsystem, and application
commands from the NetView program. The NetView program provides a z/OS command processor that
enables a NetView operator to enter a z/OS system, subsystem, or application command from the
NetView program by preceding the command with z/OS. Additional actions are not necessary.
As long as a z/OS system or subsystem command is not also a NetView program or VTAM command, you
can set up a CMDDEF statement for it in CNMCMD. This enables you to enter specific z/OS system and
subsystem commands from the NetView program without preceding them with z/OS.
The syntax of the CMDDEF statement for a z/OS system or subsystem commands is:
CMDDEF.commandname.MOD=CNMCMJC
CMDDEF.commandname.TYPE=R
CMDDEF.commandname.RES=Y
Where:
commandname
Is any z/OS system or subsystem command name.
For examples of CMDDEF statements that define z/OS, JES2, and JES3 commands in this manner, refer to
members CNMS6401, CNMS6402, and CNMS6403 in the advanced automation sample set.
Note: Many common system operator command verbs are spelled like NetView commands. For example,
the VARY, MODIFY, DISPLAY, and REPLY system commands have the same names and abbreviations as
the ACF VTAM commands in the NetView program, and the z/OS abbreviation for HOLD is the same as the
NetView command synonym for the HELP command. You cannot change the name of a z/OS command.
Avoid defining these z/OS verbs, or rename the appropriate CMDDEF statements.
Message suppression and alert filtering are vital first steps toward automated operations. Suppression
and filtering can relieve the operator of viewing information that does not require operator intervention.
Message suppression can also relieve NetView automation facilities of the burden of handling many
informational messages.
The sample set for automation provides lists of messages that are good candidates for suppression. The
sample set for automation also provides a log analysis program that can help you identify messages to
suppress. For more information, see “Log Analysis Program” on page 399.
Filtering Alerts
NetView provides two sets of filters to assist you with alert management:
• Recording filters
Determine which records NetView logs in the hardware monitor databases. You can use them to avoid
accumulating unnecessary data. Recording filters also allow you to generate messages from alerts,
route alerts to a focal point, and select alert color and highlighting options.
• Viewing filters
Limit the information displayed to individual operators. Viewing filters allow operators to display only
the alerts for which they are responsible, without sorting through all the information in the hardware
monitor databases.
If you have set an OPER filter to PASS for resource IBMRING, the NetView program generates the
messages for the alert shown in Figure 87 on page 270.
Viewing Filters
Viewing filters enable a hardware monitor operator to concentrate on certain parts of the network or
certain types of alerts by limiting the alerts that the operator sees. You can select NetView events and
alerts for viewing by using the hardware monitor SVFILTER (SVF) command. You can display viewing filter
settings with the DFILTER command.
The SVFILTER command affects only the display of the operator whose OST runs the command. With the
SVFILTER command, the operators responsible for monitoring the system or network can use filters to
exclude any extraneous alert records. This enables the operator to focus on a specified area of
responsibility.
The SVFILTER command, like the SRFILTER command, can affect a particular event type, resource name,
or resource type, or can affect all resources attached to a specified resource. In addition, you can base
viewing filters on the time that the NetView program received the record. The defaults for viewing filters
are PASS.
For example, suppose you have one department dedicated to ensuring that service-level agreements are
met in the area of system performance. An operator in that department might set viewing filters to BLOCK
for all event types other than PERF. This allows the operator to view only those alerts that affect that
particular department (the performance alerts).
To implement effective viewing filters, become familiar with the syntax of the SVFILTER command and its
various options. For syntax information, refer to the NetView online help.
Console consolidation enables you to reduce the number of consoles your operators must monitor. You
can combine operations for NetView, the MVS master console, and subsystem consoles on a single
NetView command facility screen. Operators can issue MVS commands from the NetView console to
perform master console operations.
For example, if an MVS system that is a focal point is monitoring the activities of several MVS systems,
you can consolidate messages from all of the systems on one screen. The NetView command facility, at
the focal point, displays messages from the target systems to operators in a consistent way, even if you
have a variety of operating systems. In addition, you can reduce the number of consoles required for
monitoring, possibly to one console. Chapter 26, “Centralized Operations,” on page 329 describes the
operation of remote systems and networks from a centralized focal point system.
Screen Refresh
NetView command facility screens have a timed AUTOWRAP capability, such as that offered to multiple-
support-console consoles using the RTME parameter of the CONTROL command. Operators can use the
AUTOWRAP NO command to stop the refresh.
Message Holding
Action messages are WTORs or those marked with a Descriptor code that matches one of those specified
on the MVSPARM.ActionDescCodes CNMSTYLE statement. Assuming no automation, if an MVS action
message is received and displayed at an operator's screen, it is handled as if HOLD(Y) was specified in the
automation table entry. Conversely, if a non-action message is automated with DOMACTION(DELMSG) or
DOMACTION(AUTOMATE) rather than by HOLD(NO), the message is also held. Either of these message
types can be deleted by a DOM. Action messages are highlighted as soon as they are displayed. For either
of the above cases, the message does not roll off the screen when more messages arrive. If the task
where one of these messages is held receives a subsequent MVS DOM request, any message highlighting
is removed. Alternatively, an operator can delete any held or action messages from the NetView screen by
putting the cursor on any line of the message and pressing ENTER.
For descriptions of the actions that can be performed in the automation table, see the Actions section in
Chapter 15, “Automation Table,” on page 123.
Delete operator message (DOM) requests are also passed to NetView-NetView tasks (NNTs). That means
that the associated operator station task (OST) at a focal point system automatically removes action
messages held on its screen. The OST then reroutes the DOM to all OSTs and NNTs in its own domain,
V NET,ACT,ID=NCP1,LOAD=YES,LOADSTA=LINK1
To provide them with a shorter command, you can write a command list called ACTNCP1 in the NetView
command list language. The command list might look like Figure 89 on page 277.
ACTNCP1 CLIST
&CONTROL ERR
***************************************************
* *
* ACTNCP1 - Activates NCP1 *
* *
***************************************************
V NET,ACT,ID=NCP1,LOAD=YES,LOADSTA=LINK1
&EXIT
This chapter describes how you can use the NetView automation table to automate the handling of
common messages and management services units (MSUs). It includes information about how you can
automate other information by first converting it to messages or MSUs. For example, you can generate
messages from hardware monitor records other than MSUs and from status changes detected by the
status monitor and the NetView management console.
While reading this chapter, you might want detailed syntactical information about how to code certain
automation-table statements. For this type of information, see Chapter 15, “Automation Table,” on page
123.
You can also use the Automated Operations Network (AON) component of the NetView program to
automate handling of common messages and MSUs. See Chapter 30, “Using Automated Operations
Network,” on page 381 for more information.
The NetView program provides multiple methods which you can use to write automation table
statements:
• A traditional 3270 application, like TSO
• Service Management Unite Automation
Checking by Message ID
In many cases, you can select a message by using its message ID. The message ID is a key that
distinguishes the message from all others and typically appears at the beginning of the message. You can
use the MSGID keyword to automate a message based on its ID.
For example, suppose you want to select a NetView message DSI001I MESSAGE SENT TO taskid. To
select this message and suppress it, you can use the IF-THEN statement in Figure 90 on page 280.
The message ID is not always the first word, or token, in a string. In MVS WTORs, the ID is the second
token, because the message begins with a reply ID. In the WTOR message 01 AHL125A RESPECIFY
TRACE OPTION OR REPLY U, AHL125A is the message ID. In these cases, you can still use the
message ID to select a message. For example, you might select and suppress the preceding WTOR
message with the statement in Figure 91 on page 280.
Figure 91. Example of Checking an MVS WTOR Message Using the Message ID
Chapter 22. Automating Messages and Management Services Units (MSUs) 281
IF MSGID='DSI039I' &
TOKEN(4)='AUTOMGR' THEN
SYSLOG(Y);
The statement in Figure 94 on page 282 does not select the message, because TEXT(29) equals
CHECKING AUTOTASK - AUTOJES, rather than just CHECKING.
This statement compares the text beginning in position 29 to the string CHECKING followed by anything
else, which is indicated by the placeholder.
Use caution when using such general comparisons. Too general a comparison can lead to automation of
messages that you did not intend to process. The IF condition in Figure 98 on page 283 matches the
example message DSI039I MSG FROM AUTOMGR : CHECKING AUTOTASK - AUTOJES but also
matches the message DSI039I MSG FROM OPER1 : I AM CHECKING ON THE STATUS OF THE
SPOOL UTILIZATION.
Do not use a general comparison for a string anywhere in the text of a message unless you use a more
specific condition in conjunction with it. In Figure 98 on page 283, the MSGID='DSI039I' condition
prevents the statement from matching any other messages that contain the string CHECKING after the
28th position.
The statement checks for a message ID of IEE362A and the string FOR SYS1.MAN anywhere in the
message text, followed by anything, followed by the string ON, followed again by anything. With a
statement like this, you can check a long text string without knowing exactly what data appears in all
parts of the string. You do not have to know the sizes or contents of the fields indicated by the
placeholders.
Chapter 22. Automating Messages and Management Services Units (MSUs) 283
The variable LIBIND stores whatever data is in the message between the strings FOR SYS1.MAN and ON.
The variable VOLSER applies to whatever data follows the string ON, to the end of the message.
If the message IEE362A SMF ENTER DUMP FOR SYS1.MANX ON CPDLIB occurs, the value of the
variable LIBIND becomes X, and the value of VOLSER becomes CPDLIB.
Notice that the data being conveyed, in this case an alert, lies in a structure called a management
services major vector. A management services major vector includes these major vectors:
• X'0000'
• X'0001'
• X'0002'
• X'0025'
• X'1332'
• X'1044' (encapsulated RECMS)
• X'1045' (encapsulated RECFMS)
A management services major vector looks the same in a CP-MSU as in an NMVT.
You can use the RATE statement to suppress repetitive MSUs from resources. MSUs that are blocked by a
filter generated as a result of the RATE function are not passed to automation. If you want these MSUs to
be automated, add an AUTORATE statement to the BNJDSERV DST initialization member. Refer to the
RATE and AUTORATE statements in the IBM Z NetView Customization Guide.
For these examples, suppose you want to automate an alert that you are receiving from a local area
network. The alert comes to the NetView program in an NMVT, and you decide to select the NMVT for
automation. You might start by observing an instance of the alert on the hardware monitor's Alerts-Static
panel. From there, you can type DM to get the detail menu and choose 1 to get a hexadecimal display of
the NMVT. Paging through two or three panels, you can view the entire contents of the alert, as shown in
Figure 103 on page 286.
Chapter 22. Automating Messages and Management Services Units (MSUs) 285
NetView SESSION DOMAIN: CNM99 R350581 12/02/19 15:11:18
???
CMD==>
In the example, MSUSEG(0000) returns the entire contents of the alert major vector, if one exists. By
comparing the result to the null ('') keyword, you can ignore the contents of the alert major vector and
merely check whether such a major vector exists.
Checking Subvectors
To move down in levels, use the period (.) character. The level below the major vector is the subvector. If
you want to select only those X'0000' major vectors that contain X'31' subvectors (self-defining text
messages), you can use the statement in Figure 105 on page 286.
The example statement selects any MSU that passes through the hardware monitor and contains a
X'0000' major vector (alert) with a X'51' subvector (LAN link connection subsystem data) that in turn
contains an X'02' subfield (ring or bus identifier).
Here, MSUSEG returns the entire contents of the subvector X'93', including the length byte (X'04' in this
case) and the key (X'93'). However, you can skip the length and the key by specifying a byte position. A
position of 1 is the default and starts the comparison at the first byte, which is a length byte. This is
different from the notation described in Systems Network Architecture Formats, where 0 designates the
first byte. The statement in Figure 108 on page 287, using a position of 3, skips the length byte and the
key byte, giving you the remainder of the data.
In an automation table statement, you can also use a placeholder (.) or assign a value to a variable.
Placeholders and variables work the same with MSUs as they do with messages. For instance, the
statement in Figure 108 on page 287 checks whether subvector X'93' contains exactly the data X'3223'.
But you can check whether the subvector merely begins with the data X'3223' by adding a placeholder at
the end, as in Figure 109 on page 287.
Figure 109. Example of Using a Placeholder to Check the Contents of a Position in an MSU Subvector
RECMS 82
Figure 110 on page 287 is an example of a RECMS 82 (recording mode) received by the hardware
monitor.
01038103C4000182F04000zzzz
Chapter 22. Automating Messages and Management Services Units (MSUs) 287
Where:
X'010381'
Is the RECMS header.
X'82'
Indicates RECMS 82 (see byte 8). RECMS 82 starts with offset 1 instead of offset 0.
F04000zzzz
Is the remainder of RECMS 82.
Refer to the Network Control Program library for information about RECMS and RECFMS record formats.
Encapsulated RECMS
When the hardware monitor receives this RECMS 82, it encapsulates it in a CP-MSU that contains major
vector X'1044'. An example is shown in Figure 111 on page 288.
LLLL1212nnnn104401038103C4000182F04000zzzz
Where:
LLLL
Is the 2-byte length. The length equals the sum of:
X'D'
Length of the RECMS. Your RECMSs can be longer.
X'2'
Length of X'1044'.
X'2'
Length of nnnn.
X'2'
Length of 1212.
X'2'
Length of LLLL. In Figure 111 on page 288, the 2-byte length of LLLL is X'0015'.
1212
Indicates a CP-MSU.
nnnn
Is the 2-byte length. The length equals the sum of:
X'D'
Length of the RECMS. Your RECMSs can be longer.
X'2'
Length of X'1044'.
X'2'
Length of nnnn. In Figure 111 on page 288, the 2-byte length of nnnn is X'0011'.
X'1044'
Is the major vector key indicating a RECMS.
X'010381'
Is the RECMS header.
X'82'
Indicates RECMS 82 (see byte 16). RECMS 82 starts with offset 1 instead of offset 0.
F04000zzzz
Is the remainder of RECMS 82.
This example checks the 12th byte for a X'82', indicating a RECMS 82, and if found, colors the MSU green.
You not include the 2-byte length and the X'1212' of the CP-MSU.
Note: RECMSs do not support subvector, subfield, and sub-subfield keys, and RECFMSs support only a
limited number of subvectors. You cannot use MSUSEG to access any subvectors, subfields, or sub-
subfield keys in RECMSs and RECFMSs.
MSU Actions
The actions you can specify for an MSU include issuing a command, command list, or command processor
with the EXEC action. EXEC is available for any MSU.
The other actions control how the hardware monitor processes alerts. These actions have meaning only
for MSUs containing alert major vectors and passing through the hardware monitor.
Some actions set highlighting attributes for the alert:
XHILITE
Sets a foreground highlighting option, such as blinking text, underscoring, or reverse video
COLOR
Lets you choose a color for color monitors
HIGHINT
Determines whether the high-intensity 3270 setting is used for monochrome monitors
BEEP
Determines whether an audible alarm sounds
The remaining actions control recording:
SRF
Sets recording-filter attributes and determines whether the MSU passes ESREC, AREC, OPER, ROUTE,
TECROUTE, and TRAPROUT filters.
• Set the ESREC filter to pass for the AREC filter to function. These are methods of setting the ESREC
filter:
– The automation table
– The SRFILTER command
– The DSIEXI6B installation exit
• Set the ESREC and AREC filters to pass for the OPER, ROUTE, TECROUTE, and TRAPROUT filters to
function as follows:
– The OPER filter controls message generation.
– The ROUTE filter controls alert forwarding.
– The TECROUTE filter controls alert forwarding to the designated event server.
– The TRAPROUT filter controls alert forwarding to the SNMP manager.
XLO
Specifies that none of the recording filters take effect, and the MSU goes to external logging only
Highlighting and recording attributes that you set in the automation table override those specified by the
hardware monitor. For example, the SRF action overrides the hardware monitor SRFILTER command.
However, installation exit DSIEX16B can override even the automation table.
Chapter 22. Automating Messages and Management Services Units (MSUs) 289
Hexadecimal, Character, and Bit Notations
It is often convenient to use hexadecimal notation when working with MSUs. However, you might prefer
character notation in some statements. Character notation is helpful when the MSU contains an EBCDIC
representation of character data.
The sample alert contains EBCDIC characters in subvector X'05' (the hierarchy/resource list) in subfield
X'10' (hierarchy name list). You can use either hexadecimal or character notation to test the hierarchy
name list.
A placeholder is not used in Figure 114 on page 290, because bit-string comparisons test only as many
bits as you provide. You can also use Xs in the bit string if you want the comparison to skip specified bits.
The location specification is in hexadecimal, while the byte and bit positions are in decimal numbers. In
Figure 114 on page 290, for example, the X'0000', X'05', and X'10' are in hexadecimal, while the 5 and
the 1 are decimal numbers.
In Figure 116 on page 291, the asterisk results in a match if the comparison evaluates as true for any
subvector X'10' in the first major vector X'0000'. You can also use occurrence numbers or asterisks at
other levels such as the major-vector and subfield levels. For an MSU that comes through the hardware
monitor, the NetView program separates extra major vectors into individual MSUs prior to automation.
The default at each level is to check only the first occurrence of a specified field. The statement in Figure
117 on page 291 determines whether any X'0000' major vectors contain X'10' subvectors, the first of
which contains any X'11' subfields, the second of which contains any X'00' sub-subfields. If so, the
statement checks the first X'00' sub-subfield to see whether the third byte beginning with the fourth bit
contains a 1 followed by a zero (0).
Because the sample alert in Figure 103 on page 286 has only one X'11' subfield in its X'10' subvector, it
does not satisfy the condition in the statement in Figure 117 on page 291.
You can use the H parameter only for MDS-MUs. NMVTs processed with MSUSEG(H) return a value of null,
as do any CP-MSUs that are not within MDS-MUs, such as those from the program-to-program interface.
Therefore, you can check for alert major vectors carried in MDS-MUs by entering this statement:
In Figure 119 on page 291, H1212 selects a CP-MSU within an MDS-MU, and 0000 checks for an alert
major vector.
Chapter 22. Automating Messages and Management Services Units (MSUs) 291
Using Major Vectors Other than Alerts
Alerts are the most commonly automated major vectors, but you can automate other major vectors (such
as X'0001', X'0002', X'0025', X'1332', RECMSs, and RECFMSs).
The hardware monitor sends X'0000', X'0001', X'0002', X'0025', X'1332', RECMSs (encapsulated in a
X'1044'), and RECFMSs (encapsulated in a X'1045') major vectors to the automation table, along with any
X'154D' GDS variables that might be appended. However, you can send any major vector to the
automation table through the NVAUTO MS application, the CNMAUTO service routine, or the DSIAUTO
macro. MSUSEG can process any major vector you send and can accept more than one major vector per
CP-MSU. The major vectors must be in valid MSUs.
The spacing is important in Figure 122 on page 293. You need the two spaces after LANMGR to make TP
start in the ninth column. The statement in Figure 123 on page 293 also matches the sample alert.
If you omit the resource number, as shown in Figure 124 on page 293, you get a concatenated string of all
the resource names and resource types.
For the sample alert, the resource hierarchy is based on the information in subvector X'05', the hierarchy/
resource list. Therefore, you can also obtain resource hierarchy information from MSUSEG(0000.05).
However, this is not true for all alerts. The most reliable way to test the hardware monitor resource
hierarchy is to use the HIER keyword.
Chapter 22. Automating Messages and Management Services Units (MSUs) 293
BNJ146I
Contains information about the alert
Automation usually uses the BNJ146I message because it contains more information.
The OPER filter determines which alerts generate messages. However, an alert must pass the ESREC and
AREC filters before it can pass the OPER filter and generate the messages.
To automate an alert, you can use the MSGID keyword to select message BNJ146I. You can use several
of the fields in BNJ146I as a basis for automation, or you can automate a small subset of the fields
sufficient to uniquely identify the alert.
In addition to routing the message for display, you can use the NetView automation table to schedule one
or more command procedures to run under one or more NetView tasks when a BNJ146I message arrives.
For example, suppose a command procedure is scheduled to run under the task of a monitor operator.
That command procedure can receive the BNJ146I message and process it so that a more meaningful
message is written to the operator. Another command procedure can automate the recommended
actions of the alert.
You can automate status changes by using the MSGID keyword to select the CNM094I message.
AUTOTBL MEMBER=ATABLE1,TEST,LISTING=LIST1
If there are syntax errors, messages are sent indicating the records in which errors occur and describing
the kinds of errors. With this information, you can correct the syntax of your table.
You can test the logic of an automation table using the AUTOTEST command. For testing information, see
Chapter 33, “Automation Table Testing,” on page 405.
You can activate the table by entering AUTOTBL MEMBER=ATABLE1. To avoid unintended actions caused
by a syntax error in the automation table, the NetView program does not activate a table unless all of the
syntax is correct.
To verify what automation tables are still active, use the AUTOTBL command with the STATUS keyword as
follows:
AUTOTBL STATUS
The AUTOMAN command provides a full-screen panel interface to enable you to:
• View and manage single or multiple automation tables
• Enable or disable individual automation tables or statements
• View existing tables and their status
For more information, see “Managing Multiple Automation Tables” on page 220.
The NetView program provides two web application interfaces which you can use to put your automation
table statements into effect:
• Service Management Unite provides Create New Statement and Automation Statements dashboards
that enable you to validate, test, and save your automation table statements, as well as activate
automation table members. For more information, see IBM Service Management Unite Knowledge
Center.
• User-written web application using the NetView REST Server's Automation APIs:
– Validation
– Test
– Persistence
– Destination
– Retrieval
For more information, see the REST Server section in the IBM Z NetView Application Programmer's
Guide and the REST Server Swagger documentation.
Chapter 22. Automating Messages and Management Services Units (MSUs) 295
For information about installing the correlation engine, see IBM Z NetView Installation: Configuring
Additional Components.
Correlation Overview
This is an overview of the correlation process:
• A message or MSU passes through the automation table. You can use an automation table condition
(CORRELATED='0') to test whether this message or MSU has gone through correlation.
• If the message or MSU is not already correlated, a copy of the message or MSU is made and an event is
constructed from the copy and sent to the correlation engine using the COREVENT pipe stage or the
CNMCRMSG command list. A predefined subset of information from the message or MSU is contained in
the event sent to the correlation engine. You can add additional information using the PIPE EDIT stage
or the CNMCRMSG command list. The original message or MSU can be discarded or continue through
the automation table for further processing.
• The event is then processed by the correlation engine. The event is checked against a rules base
constructed from an XML document. If the event meets the rule criteria, one or more events (depending
on the type of rule and the options specified) are returned to the NetView address space. The rules base
must be coordinated with the automation table to successfully correlate messages and events. The
correlation rules determine what information from the message or MSU is contained in the event.
• When the event is returned from the correlation engine, the copy of the original message or alert is
retrieved and resubmitted to the automation table. The automation table can detect this resubmission
by testing for CORRELATED='1'. Automation table actions can then be driven to handle the correlation
detection.
• When correlated output is run through the automation table, you can access the event data that is
returned using the COREVTDA PIPE stage. You can check the contents of the event, which might be
modified by user-written code during correlation processing. The COREVTDA stage constructs an
MLWTO on the secondary output stream with each slot and value representing one line of the MLWTO.
This is a sample automation table entry that detects a command message that is not valid. In this
example, the original message is suppressed when its copy is sent to the correlation process.
IF MSGID='DSI002I' THEN
BEGIN;
IF CORRELATED='0' THEN
EXEC(CMD('CNMCRMSG INVALID'))
DISPLAY(N)
NETLOG(N)
SYSLOG(N)
CONTINUE(N);
IF CORRELATED='1' THEN
EXEC(ROUTE(NETOP))
CONTINUE(N);
END;
You can use the CORRFAIL condition to determine if there is a problem with the correlation process.
Notice in the example that follows that you test the CORRFAIL condition first. The CORRELATED condition
always returns '0' if there is a failure in the correlation process.
IF MSGID='DSI002I' THEN
BEGIN;
IF CORRFAIL='1' THEN
EXEC(CMD('MSG NETOP CORRELATION FAILED'))
CONTINUE(N);
IF CORRELATED='0' THEN
EXEC(CMD('CNMCRMSG INVALID'))
DISPLAY(N)
NETLOG(N)
SYSLOG(N)
CONTINUE(N);
IF CORRELATED='1' THEN
EXEC(ROUTE(NETOP))
CONTINUE(N);
END;
Correlation Processing
The NetView program takes data from a message or MSU and constructs an event (name/value pair) for
the correlation engine. The correlation engine does not work directly with messages or MSUs.
The correlation logic is presented as a series of rules in an XML file. Information from the message or MSU
becomes an attribute of the event and can be tested according to rules in the XML file.
Before using the COREVENT stage, verify that the DSICORSV task is active. Error messages are written to
the secondary stream if communications with DSICORSV fail.
You can also use the CNMCRMSG command list to construct a COREVENT pipe stage. You can use the
CNMCRMSG command list to add data. The first parameter identifies the eventType. Subsequent
parameters must be in pairs. The first is the name and the second is the value. This command is
equivalent to the pipe shown in the previous example:
Chapter 22. Automating Messages and Management Services Units (MSUs) 297
CNMCRMSG SAMPEVENT USERDATA SAMPLE DATA
Notice that SAMPLE DATA is expressed as multiple tokens. Name/value pairs must be separated by
commas.
This example adds an additional slot of USER1 to the event:
Notice that the optional time interval with the event type parameter must be enclosed in quotation marks.
This example uses mixed case values:
You can use REXX functions as parameters. For example, to include a user slot of EPNET that contains the
entry point network for an MSU, enter:
Table 12 on page 299 lists the default set of attributes for MSUs.
resnam1/typ1,resnam2/typ2,resnam/typ3,
resnam4/typ4,resnam5/typ5
MMM HH:MM:SS
resnam_x/typ_x
SEVERITY Alert type field from the Generic Alert Data subvector or the event
type that is used to determine the severity (for example FATAL or
CRITICAL). For more information, refer to the IBM Z NetView
Customization Guide.
Chapter 22. Automating Messages and Management Services Units (MSUs) 299
Table 12. Default MSU attributes (continued)
Attribute Name Description
EVENT_CORREL Correlators extracted from MSU correlation subvector 47. These
correlators correlate alerts to other alerts. For example, you can
have two or more alerts that pertain to the same underlying
problem and those alerts are correlated by subvector 47.
INCIDENT_CORREL Correlators extracted from Incident Identification subvectors.
These correlators correlate alerts to resolutions.
SELF_DEF_MSG Text extracted from self-defining text message subvector 31
BLOCK_ID For non-generic alerts, the code used to identify the IBM hardware
or software associated with the alert.
ACTION_CODE For non-generic alerts, code that provides an index to predefined
screens. The combination of the block identifier and action code
that uniquely identifies the sending product.
PRODUCT_ID The hardware or software product set identifier (PSID) of the alert
or event sender. This can be 4, 5, 7, or 9 characters. This pertains to
all generic alerts and some non-generic alerts.
ALERT_CDPT A 2-byte hexadecimal value from the alert description code field of
the generic alert data subvector, or the resolution description code
field of the resolution data subvector.
ALERT_ID For non-generic alerts (including resolutions), an 8-character
hexadecimal value assigned by the sender to designate an
individual alert condition. The value is 00000000 for resolution
alerts.
MSU The alert converted into character format. (This attribute is
intended for internal use by the NetView program.)
DOMID The NetView domain that first processed the alert. (This attribute is
intended for internal use by the NetView program.)
Creating Rules
Correlation is achieved with state-based and stateless rules. You specify these rules by using XML syntax,
defined by the supplied DTD file, rule.dtd. The default XML file is located in:
/var/netview/v6r3/rulefiles/znvrules.xml
You can use the CORRSERV REFRESH to override the default file.
Table 13 on page 301 contains a summary of the XML statements.
Chapter 22. Automating Messages and Management Services Units (MSUs) 301
Table 13. XML Statements (continued)
Type or Element Attribute Function
<correlation_type> randomOrder = "true" Used for correlation types passthru and
(continued) | "false" ResetOnMatch: specifies whether ordering of
events is significant. If this is set to false, events in
the rule have to be received in the same order as
expected by the predicates to start the correlation
process.
timeInterval = Used for correlation types passthru and
miliseconds ResetOnMatch: specifies the time interval in
milliseconds.
triggerMode = Specifies which events are processed by the
which_events action tag:
allEvents
All the events processed by the rule.
firstEvent
The first event to start correlation processing
for the rule.
lastEvent
The last event to start correlation processing
for the rule.
forwardEvents
For Threshold processing only: Causes the
Threshold rule processing to return all events
and continue to forward events until the time
limit expires.
Note: How this option is coded can affect how
you code the automation table. A single rule
firing can result in multiple messages or MSUs
being sent through the automation table with
the CORRELATED attribute set to '1'.
You define each rule in a state machine. The state machine gathers and summarizes information about a
particular set of related knowledge. It is composed of states, transitions, summaries, and other
characteristics, such as expiration timers and control flags.
These are the state-based rules: collector, duplicate, and threshold. These are all based on state
machines. Each state machine looks for a trigger event to start it. Additionally, there is the matching rule,
which is a stateless rule.
State-based rules rely on a history of events, whereas the stateless rules operate on a single, current
event. These specify the rules:
• Predicates for matching events relevant to that rule
• Actions that run after the rule triggers
• Attributes, such as a threshold limit
Predicates
A predicate in the predicate library consists of a Boolean operator and zero or more arguments. Each
argument can be a predicate returning these types:
Actions
The default action for state correlation is the ReturnToNV action. This action supports a common, optional
Boolean attribute named singleInstance. If this attribute is false, the action is not shared among different
Chapter 22. Automating Messages and Management Services Units (MSUs) 303
rules. One instance of the action is created for every rule that triggers it. This is the default behavior. If the
attribute is true, a single instance of the action is created and shared with all rules that trigger it.
Matching rules
Matching rules are stateless. They perform passive filtering on the attribute values of an incoming event.
A matching rule consists of a single predicate; if the predicate evaluates to true, the trigger actions, which
are specified in the rule, run.
In the example that follows, the SAMPLE rule processes an event type of INVALID that was sent by the
automation table (for an example, see “Correlation Overview” on page 296). The SAMPLE rule checks the
message identifier of the event submitted to correlation and if the message identifier is DSI002I, the
event is returned to the NetView program.
<rule id="SAMPLE">
<eventType>INVALID</eventType> 1
<match> 2
<predicate> 3
<![CDATA[
&MSGID == "DSI002I"
]]>
</predicate>
</match>
<action function="ReturnToNV"/>
</rule>
Duplicates rules
The duplicates rule blocks the forwarding of duplicate events within a time interval. It requires these
arguments:
• A time interval during which state correlation blocks duplicates of the trigger event. You control the
interval with the timeInterval attribute, specified in milliseconds. The trigger event is the first event
detected by the duplicates rule and is the only one that is not actually discarded.
• A predicate that is used in detecting the trigger event.
Figure 128 on page 305 shows the state transitions for the duplicate rule:
In Figure 128 on page 305, state one is the initial state. Transition 1 occurs when there is a match on an
incoming event. At that time, state correlation forwards the matching event, and the timer starts.
Transition 2 occurs when the time interval expires, and the state machine resets. This is an example of
the rule:
<![CDATA[
&msg == "internal error " &&
&hostname == "hostname1" &&
&errno = 10
]]
</predicate>
</duplicate>
<action function="ReturnToNV"/>
</rule>
Threshold rules
The threshold rule looks for n occurrences of an event within a time interval. When the threshold is
reached, it sends events to the defined actions. The threshold rule requires these parameters:
• One of the sending modes specified by the triggerMode attribute:
firstEvent
Sends the first event.
lastEvent
Sends the last (nth) event.
allEvents
Sends all events 1 through n, the default mode.
forwardEvents
Sends all events after the nth until it resets.
• A time interval during which the threshold has to be reached. You control the interval with the
timeInterval attribute, specified in milliseconds.
• The time interval mode that indicates if the time interval is fixed. The attribute
timeIntervalMode=fixedWindow | slidingWindowinterval controls the mode. The default value is
fixedWindow.
• The number of events to match, specified by the thresholdCount attribute.
• A trigger predicate that is used in detecting 1 through n events.
Figure 129 on page 306 and Figure 130 on page 306 show the operation of the threshold rule with
timeIntervalMode=fixedWindow specified.
Chapter 22. Automating Messages and Management Services Units (MSUs) 305
Figure 129. State transitions for the basic threshold rule
Figure 129 on page 306 shows the state machine for the modes firstEvent, lastEvent, and allEvents.
Transition 1 occurs when state correlation detects the trigger event (trigger predicate matches).
Transition 2 takes place when an incoming event matches the second predicate. When the time interval
expires, transition 3 occurs and the state machine resets. Transition 4 resets the state machine after the
threshold is reached. When the state SN is reached, either the first event, the last event, or all n events
are sent before resetting.
Figure 130. State transitions for the threshold rule using forwardEvents
In forwardEvents mode (Figure 130 on page 306), the threshold rule operates as in the previous case.
Except, it sends all events matching the second predicate after the threshold is reached and until the time
interval expires.
When the state machine has timeIntervalMode=slidingWindow specified, the operation of the threshold
rule is the same as the fixedWindow time interval. Except that from each node K, there is a transition of 1,
2, .., K-1. This transition accounts for events that are not in the sliding time window. This is an example of
the rule:
<!--
I'm only interested when at least 5 Node_Down
events for hostnames in my local subnet happen
within 1 minute.
-->
<rule id="test.threshold">
<eventType>Node_Down</eventType>
Threshold rules can also define complex aggregate values, instead of a simple count of events. Use the
aggregate configuration tag to define this rule. You can construct an aggregate value similar to the
definition of a predicate. Threshold rules with aggregate values trigger only when the aggregate value is
equal or greater than the thresholdCount value. This is an example of the rule:
<!--
If I receive a slot value with a relative percentage between
0 and 1, but I want to check my threshold using the normal
percentage value of 100%, I can define an aggregate of the
slot relative_percentage, by multiplying it by 100 and counting
all percentages until it reaches 100%.
-->
<rule id="test.aggregate_threshold">
<eventType>Temperature_Variation</eventType>
<threshold
thresholdCount="100"
timeInterval="2000"
triggerMode="allEvents"
timeIntervalMode="fixedWindow" >
<aggregate>
<![CDATA[
&relative_percentage * 100
]]
</aggregate>
<predicate>true</predicate>
</threshold>
<action function="ReturnToNV"/>
</rule>
Collector rules
The collector rule gathers events that match the given predicate for a specified period of time. The rule
triggers when the timer expires and sends all collected events to the defined actions. The collector rule
requires these arguments:
• A time interval during which matching events are collected. You control the interval with the
timeInterval attribute, specified in milliseconds.
• A predicate, which is part of filtering the relevant events to add to the collection.
Figure 131 on page 307 shows the state transitions for the collector rule:
In Figure 131 on page 307, S1 is the initial state. Transition 1 occurs when there is a match on an
incoming event; the initial event is not sent but collected. A timer is set to the specified interval. Before
the timer expires, all incoming and matching events are collected (transition 2). Transition 3 occurs when
Chapter 22. Automating Messages and Management Services Units (MSUs) 307
the time interval expires, and the state machine resets. At this time, all collected events are sent. This is
an example of the rule:
<!--
Collects 10 seconds of Server_Down
events for my database.
-->
<rule id="test.collector">
<eventType>Server_Down</eventType>
<collector timeInterval="10000" >
<predicate>
<![CDATA[
&servername == "my_database"
]]
</predicate>
</collector>
<action function="ReturnToNV"/>
</rule>
Passthru rules
The passthrough rule forwards the trigger event only if a specific set of events arrives within a specified
time interval. If the required events arrive before the timer expires (optionally is a specific sequence), the
trigger event is forwarded; if they do not arrive, the timer resets and the trigger event is not forwarded.
The passthrough rule requires these arguments:
• A Boolean value (randomOrder) indicating whether the required events can arrive in any order or must
arrive in the order specified. If randomOrder is equal to yes, the events can arrive in any order.
• A time interval, after which the state machine resets.
• A trigger predicate, defining the trigger event. This is the event that initializes the state machine and is
forwarded if the required subsequent events arrive within the time interval.
• One or more predicates specifying the required subsequent events.
Figure 132 on page 308 shows the state transitions for the passthrough rule when the required events
must arrive in sequence (randomOrder=no).
In Figure 132 on page 308, S1 is the initial state. Transition 1 occurs when the trigger event is detected;
the transition stores the event and starts the timer. Transition 2 occurs when an incoming event matches
the first predicate in the required sequence; similarly, transition 3 takes place when an incoming event
matches the second predicate in the sequence. When state S4 is reached, the rule forwards the trigger
event and resets to the initial state S1 (transition 5). Transition 4 occurs when the time interval expires,
resetting the rule to the initial state without forwarding the trigger event.
Figure 133 on page 309 shows the state transitions for the passthrough rule when the required events
can arrive in any order (randomOrder=yes).
In Figure 133 on page 309, the transitions are the same as in Figure 132 on page 308. In this case,
however, the final state is S5, after which the state machine resets.
The Passthrough correlation function ties different events together. In the example that follows, an
automation action occurs when two different messages (MSG001 and MSG002) are received within a 30-
second timeframe:
<rule id="SAMPLE001">
<eventType>DUMMYMSGS</eventType>
<passthrough randomOrder="true" 1 timeInterval="30000" 2
triggerMode="allEvents" 3 >
<predicate>
<![CDATA[&MSGID == "MSG001" ]]>
</predicate>
<predicate>
<![CDATA[&MSGID == "MSG002" ]]>
</predicate>
</passthrough>
<action function="ReturnToNV"/> 4
</rule>
Chapter 22. Automating Messages and Management Services Units (MSUs) 309
3
When the rule triggers, all events are returned to the NetView program.
You can use triggerMode to specify that only the first or last event is returned to the NetView program.
If you specify triggerMode, also select which automation table entries checks for the
CORRELATED='1' condition.
4
If the correlation type in this example was ResetOnMatch instead of Passthrough, the ReturnToNV
action is invoked if either MSG001 or MSG002 is received, but not both.
Figure 134. State transitions for the reset on match rule (randomOrder=no)
In Figure 134 on page 310, S1 is the initial state. Transition 1 occurs when the trigger event is detected;
the transition stores the event and starts the timer. Transition 2 occurs when an incoming event matches
the first predicate in the required sequence; similarly, transition 3 takes place when an incoming event
matches the second predicate in the sequence. When state S4 is reached, the rule resets to the initial
state S1 (transition 5). Transition 4 occurs when the time interval expires, causing the rule to forward the
trigger event and then reset to the initial state.
Figure 135 on page 311 shows the state transitions for the match rule when the required events can
arrive in any order (randomOrder=yes).
In Figure 135 on page 311, the transitions are the same as in Figure 134 on page 310. In this case,
however, the final state is S5, after which the state machine resets without forwarding the trigger event.
<rule id="testcases.taskinitfailure">
<eventType>INITMSGS</eventType>
<resetOnMatch randomOrder="false" timeInterval="10000" triggerMode="firstEvent">
<cloneable attributeSet="TASKN"/> 1
<predicate>
<![CDATA[&MSGID == "DSI166I" ]]> 2
</predicate>
<predicate>
<![CDATA[&MSGID == "DSI530I" ]]>
</predicate>
</resetOnMatch>
<action function="ReturnToNV"/> 3
</rule>
Chapter 22. Automating Messages and Management Services Units (MSUs) 311
1
This rule assumes that all events of eventType INITMSGS have an attribute named TASKN that
contains the task name.
2
As each DSI166I is received, a separate correlation process starts a 10-second timer to wait for the
receipt of an INITMSGS event with the same TASKN value and a MSGID value of DSI530I. An event
with a MSGID of DSI530I but a different TASKN value does not satisfy the predicate.
3
If both messages are not received within 10 seconds, the first event from message DSI166I is
returned to the NetView program.
The events can be built out of the automation table with this coding:
Event objects
The state correlation engine works with Java objects that represent events. When an event arrives, a Java
object is created containing all of the attribute data from the event. This object, an instance of class
com.tivoli.zce.engine.Event, is sent to the state correlation engine. If persistence is enabled, the state
correlation engine then writes a record of the event to a persistent store. The persistent store is a
recovery mechanism used to ensure that no events are lost if the gateway shuts down while events are
processed by the state correlation engine. When the gateway is restarted, any unsent events recorded in
the persistent store are immediately sent to the gateway.
As initially created, the Java Event object contains two copies of the event:
• A working copy, which can be directly accessed using the methods of the event object. Actions can use
this working copy to make changes to event attributes during processing.
• An internal snapshot of the state of the event as it was received by the state correlation engine. This
field is initially equivalent to the record written to the persistent store, and it is not dynamically updated
to match changes to the working copy.
The event object is then processed by the state correlation rules and any actions called by those rules.
This processing might include changing the event attribute values or creating new events.
package com.tivoli.zce.action.libs;
import com.tivoli.zce.IRule;
import com.tivoli.zce.ParserException;
import com.tivoli.zce.CorrelatorException;
import com.tivoli.zce.engine.EventList;
import com.tivoli.zce.engine.Event;
import com.tivoli.zce.actions.DefaultActionHandler;
Chapter 22. Automating Messages and Management Services Units (MSUs) 313
Working with events
An event object (an instance of com.tivoli.zce.engine.Event) contains the event attribute information as a
set of name-value pairs stored in a hash table. The Event class provides methods you can use to work
with these attributes. The methods include:
hasAttribute()
The hasAttribute() method takes a single string as a parameter and returns a Boolean value
indicating whether the event contains an attribute with the specified name. For example,
event.hasAttribute("HOSTNAME") returns true if event has an attribute called HOSTNAME.
(Note that attribute names are case-sensitive.)
getString()
The getString() method takes a single string as a parameter and returns a string containing the
value of the attribute with the specified name. For example, event.getString("SEVERITY")
returns the current value of the SEVERITY attribute of event.
putItem()
The putItem() method takes as its parameters a string key and a value. This method sets the value
of the attribute whose name is equal to the specified key string. For example,
event.putItem("ORIGIN","SCE") sets the value of the ORIGIN attribute to the string "SCE". If
the specified key does not match an existing attribute, a new attribute is added. If the attribute value
contains spaces or special characters, enclose it within nested single quotes to ensure correct parsing
by the event server.
You can automate many operations that are more complex than scheduling commands or responding to
messages and MSUs. For example, you can automate these operator tasks:
• Initializing the products in your system or network
• Monitoring the products
• Initiating recovery actions when necessary
• Shutting down products in an orderly way when you want them deactivated.
Advanced automation requires you to coordinate actions among many command procedures and other
automation facilities. For example, the automation table can receive information in the form of messages
and MSUs and pass the information to monitoring command procedures. The monitoring procedures in
turn can initiate recovery whenever necessary. In addition, to ensure the availability of the automation,
have your automation applications monitor each other.
Because of the coordination required among your automation applications for advanced automation, you
must thoroughly design your automation project before you begin implementation. See Chapter 4,
“Designing an Automation Project,” on page 43 for automation design guidelines.
You can achieve coordinated automation by using NetView global variables, the Resource Object Data
Manager (RODM), or both. This chapter explains establishing coordinated automation with NetView global
variables. See Chapter 28, “Automation Using the Resource Object Data Manager,” on page 355 for a
discussion about establishing coordinated automation with RODM.
Before establishing coordinated automation using NetView global variables, examine the advanced
automation sample set that NetView provides. The sample set automates initialization, monitoring,
recovery, and shutdown for several MVS products and components. The sample set also uses internal
monitoring to ensure that its own autotasks remain active and functioning. By examining the sample set,
you can see how global-variable naming conventions and other common protocols ensure effective
communication among command procedures.
Automating Initialization
To accomplish automated initialization of a product or component, you can usually use a process
modeled on the manual process that operators use. Operators issue certain commands and await certain
messages that indicate successful initialization. If the messages are not received within the expected
time, a problem is indicated and operators can take recovery action.
To accomplish automated initialization of an entire system, you can begin by activating the operating
system manually. Alternatively, you can activate the operating system remotely; see “Establishing
Remote Operation” on page 15 for information. The operating system can automatically activate the
NetView program, and the NetView program can automate the initialization of other products and
components. You can start the NetView program automatically by placing the start command for the
NetView program in the COMMNDxx member of SYS1.PARMLIB.
Use the NetView initial command list to call your automation procedures and begin initializing all
remaining products and components. Wait for the successful initialization of one product before
initializing another because of product dependencies. For example, VTAM must be active before you can
initialize TSO.
Automating Monitoring
Automation can use both passive monitoring and proactive monitoring, described as follows:
Passive monitoring
Watching for certain messages and MSUs and acting when they are received
Proactive monitoring
Issuing query commands to determine status
Passive Monitoring
In an automated environment, operators no longer need to monitor all messages and MSUs that indicate
the status of system and network components. The automation table performs passive monitoring.
Automated actions that can be taken upon receipt of a message or an MSU include updating state
variables so that the NetView program has an accurate record of the state of each component.
Proactive Monitoring
Proactive monitoring involves issuing commands that query the system or network to obtain status
information. You can issue query commands at regular, timed intervals so that you obtain updated
information. NetView timer commands, such as the EVERY command, can schedule your query
commands for you.
The shorter the interval you use, the more up-to-date your status information is and the faster you can
respond to failures. However, you can place an unnecessary burden on the system by issuing queries too
frequently.
Also, use proactive monitoring to monitor the status of your automation application. For example, you can
monitor autotasks by sending test commands or test messages to them at regular intervals. If the
autotasks are set up to issue a specific response to a test message with the help of the automation table,
failure to send the correct response can indicate an autotask failure. The advanced automation sample
set illustrates this technique.
Automating Recovery
When passive or proactive monitoring detects a problem, such as a mismatch between an actual state
and a desired state, you can initiate recovery. Automated recovery is similar to an operator's attempting
to restart a product after receiving a console abend message.
The recovery process for a failing component can be the same as the initialization process for that
component and can use the same command procedure. However, automation might need to first answer
a failure message, investigate the cause of a problem, or ensure that a failing component is ready for
reactivation before restarting the component.
Automating Shutdown
As with automatic initialization, automatic shutdown typically follows a process similar to the manual
process. To shut down a specific product, issue the shutdown command for the product and await
messages indicating successful completion.
When shutting down an entire system, you can generally shut down the products in the reverse of the
order in which you initialized them. Do not shut down a product until all other products that depend on it
have first completed their shutdowns.
An important part of implementing your automation plan is to create an operator interface that is
appropriate to your evolving environment. A good operator interface presents operators with the
information they need to monitor the environment, examine the state of each resource, and verify that
automation is functioning correctly.
In addition, you must provide for exception notification, which is the process of informing operators when
automation routines encounter problems or events that you have not yet automated. With exception
notification, you focus operator attention on any problems that still require manual intervention.
In an automated environment, you can present information to operators in these forms:
• As messages with the command facility
• As status information with the status monitor and, the NetView management console (NMC)
• As alerts with the hardware monitor or NMC
• As full-screen displays with VIEW and help panels
• As e-mail or alphanumeric pages
Displaying Messages
You can display information to operators in the form of messages on the NetView command facility.
NetView messages and network messages can continue to be displayed on the command facility, just as
in an unautomated environment. In addition, if you have consolidated your consoles, you can display
system messages from the operating system, subsystems, and applications.
Automation must reduce the number of messages displayed. Chapter 19, “Suppressing Messages and
Filtering Alerts,” on page 267 and Chapter 22, “Automating Messages and Management Services Units
(MSUs),” on page 279 describe ways to reduce the flow of messages.
However, messages are still useful in the automated environment, and you can have your automation
procedures issue messages to the command facility. When testing automation, for example, you can have
automation procedures issue messages that inform operators of the actions being taken. After testing is
complete and your automation is working smoothly, you can reduce your use of this type of message.
Another use of messages is to inform an operator when automation procedures encounter problems that
require manual intervention.
Command lists can issue messages with the MSG command. Refer to the NetView online help for a
description of the MSG command.
The first step toward automating your entire data-processing enterprise is to ensure that you are doing as
much local automation as possible on each NetView system. Therefore, if you have begun with single-
system automation on one system or on a few test systems, propagate that automation onto all of your
NetView systems. Copy your automation routines and tailor the routines to the new systems. In this
process, it is important to automate all of your systems consistently to keep maintenance as simple as
possible.
Propagation also involves preparing for exception forwarding and the use of focal points. When you
connect your systems and forward exceptions, the automation of one system can affect the automation of
others. Therefore, it is important to synchronize your automation and to determine the relationship that
each system has with its focal point. This chapter describes guidelines for effectively propagating
automation.
Defining Responsibilities
Establish clear boundaries between responsibilities of the focal point and those of the distributed
systems to avoid duplication of work. For example, if each distributed system has an autotask that
periodically checks the status of the automation table with AUTOTBL STATUS, it is not necessary for the
focal point to monitor the automation tables of the distributed systems.
Including Forwarding
Message, alert, and command routing are key to managing the delegation of automation responsibilities
across multiple focal point and distributed systems. Use routing to direct where messages and alerts are
to be processed and where commands are to be run. As with autotask IDs and command procedures,
consistency in your approach simplifies automation maintenance. See “NetView Program Message
Routing” on page 69 and Chapter 26, “Centralized Operations,” on page 329 for more information.
With automation, you can centralize operations so that you manage all systems, networks, and data
centers from a single system or a few centralized systems. Often, you can run many of your systems
unattended and consolidate your operation staff at a single location. This process has some of the same
objectives as single-system console consolidation and can further reduce the number of consoles you
monitor.
Before centralizing operations, use local automation on each system to perform as many operation tasks
as possible. Part 5, “Single-System Automation,” on page 257 describes the techniques for local
automation on each system. Do not forward problem notifications for a problem that you can solve
locally. However, you must forward the following types of information to the central system:
• Forward information about the state of each local system, including the system portion of the network,
so that operators and automation on the central system have an accurate, up-to-date description of
every resource and application.
• Forward notifications about exceptions or problems that local automation alone cannot solve. These
problems can be solved by automation on the central system or by operators logged on to that system.
A central system that receives information from distributed systems is called a focal point. For design
guidelines about choosing a suitable focal point, refer to Chapter 4, “Designing an Automation Project,”
on page 43.
This chapter describes how to transmit information between a distributed NetView system and a focal-
point NetView system.
Data Transports
To help you centralize operations, NetView provides different data transport methods. The transport
methods are: LU 6.2, LUC, and OST-NNT. These transports are used to transfer data between NetView
programs that reside in different nodes. LU 6.2 transports are also used to transfer data between NetView
and non-NetView products, such as the AS/400. When you centralize operations between NetView nodes,
one or more of these transports are used to move data between the nodes.
LU 6.2 Transports
The NetView program supports two LU 6.2 transports, which use different versions of the SNA LU 6.2
protocols:
• The management services (MS) transport is for low-volume transmissions that require high reliability,
such as sending alerts.
• The high-performance option of the MS transport is for large-volume transmissions that require better
performance.
The NetView LU 6.2 transports are based on the MULTIPLE_DOMAIN_SUPPORT Function Set described in
SNA Management Services Reference. The LU 6.2 transports are used by Management Services (MS)
applications to send and receive data.
MS applications can be architectural applications, such as the applications that are provided with the
NetView program or user-defined applications. An application is created when it registers with the LU 6.2
transports. After registering, an application can send data to other registered applications and receive
data from them. For example, you can create a user-defined application that can send alerts to the
NetView ALERT-NETOP application. You can display the applications known to the NetView program
(both the applications that are provided with the NetView program and user-defined applications) by
using the REGISTER QUERY command, shown in Figure 138 on page 330:
Many of the applications shown in Figure 138 on page 330 are described in later sections. You can think
of these applications as sitting on top of the LU 6.2 transports. The DSI6DST task must be active to use
the LU 6.2 transports.
Ensure that the names in the DSI6SCF sphere of control member and the DSI6INIT LU 6.2 transport
initialization member match the node configuration. For example, if the VTAMCP USE option of a focal
point is set to yes (VTAMCP USE=YES), then the focal point is referenced in DSIDMN and must be
referenced by the VTAM CPName using the DSI6INIT member of the entry point. If the USE option of a
focal point is set to no (USE=NO), then the focal point must be referenced by the domain name of the
NetView program on which it is running.
The VTAMCP statement specifies if the NetView MS transport running on that NetView program can
receive MDS-MUs with the VTAM CPName as the destination. Therefore, when coding DSI6SCF and
DSI6INIT statements, be aware of the VTAMCP statements in your DSIDMN members.
The SNA protocols used for the MS transport are not limited to NetView program. You can use the MS
transport to communicate with MS applications on any system or device that supports these protocols,
for example, an AS/400.
To use the LU 6.2 transports, first define NetView to VTAM as an LU 6.2 application. The NetView domain
ID serves as the VTAM LU 6.2 application name.
Figure 139 on page 330 shows how to define the NetView program as a VTAM LU 6.2 application:
For detailed information about writing applications that use the LU 6.2 transports, refer to the IBM Z
NetView Application Programmer's Guide.
LUC
Unlike the LU 6.2 transports, the LUC transport supports communication only between NetView
programs. The LUC tasks (for example, CNM01LUC) must be active to use the LUC transport. For NV-
UNIQ/LUC alert forwarding, the DSICRTR task must also be active.
OST-NNT
Like the LUC transport, the OST-NNT transport supports communication only between NetView programs.
To establish an OST-NNT session, issue a START DOMAIN command from a central system to start a
session with a target system NNT. For additional information on OST-NNT sessions, see “Forwarding with
OST-NNT Sessions” on page 344.
Failure Processing
If the MS-CAPS application at an entry point receives notification of an error in communication with a
primary focal point for an architectural category, MS-CAPS does the following:
• Sends notification of the failure to all applications that registered interest in the category.
• Sets a timer for an attempt to reacquire the primary focal point. The attempt takes place after a period
specified by the REACQPRI option on the DEFAULTS command. Refer to NetView online help for a
complete description of DEFAULTS REACQPRI.
• Attempts to acquire the backup focal point if one exists. If the system is unable to establish a session
with the backup focal point, it attempts a session with the next backup focal point (if you defined more
than one) and so on, until a session is established. When MS-CAPS successfully acquires a backup, it
sends notification to local entry-point applications for the category, informing them of their new focal
point.
• Attempts to reacquire the primary focal point when the timer expires. If the attempt succeeds, MS-
CAPS sends notification to local entry-point applications and sends a revocation notice to the backup. If
the attempt fails, MS-CAPS resets the timer and continues to try to regain the primary focal point.
If a backup focal point is the current focal point and MS-CAPS receives notification of a failure in
communicating with the backup focal point, MS-CAPS sends notification to all applications that registered
interest in the category.
Sphere-of-Control Types
The sphere-of-control type is maintained for each entry point by the SOC-MGR at the focal point. The
sphere-of-control type defines how the entry point is obtained into the sphere-of-control. Use the
FOCALPT DISPSOC command to display the sphere-of-control type for entry points. The sphere-of-
control types are:
EXPLICIT
The focal point has initiated a relationship with an entry point because of an operator command or
because the entry point was defined in the sphere-of-control configuration file. The focal point
attempts to establish a relationship with the entry point until it is successful. When the relationship is
established, the entry point is responsible for reestablishing the relationship if it is lost.
IMPLICIT
The entry point has initiated a relationship with the focal point. If the relationship is lost, the entry
point is responsible for reestablishing the relationship.
An EXPLICIT sphere-of-control type has a higher priority than an IMPLICIT sphere-of-control type when
focal-point-to-entry-point relationships are established. For example, when a focal point initiates a
relationship with an entry point, the entry point is considered to be explicitly obtained into the focal
point's sphere-of-control. This entry point is then considered to have an EXPLICIT sphere-of-control type
in the information maintained by the SOC-MGR.
The entry point that was explicitly obtained into the focal point's sphere of control can then initiate a
relationship with the same focal point. The entry point request to initiate a relationship with the focal
point is completed successfully. However, because a sphere-of-control type of EXPLICIT has a higher
priority than a sphere-of-control type of IMPLICIT, the SOC-MGR continues to list this entry point with an
EXPLICIT sphere-of-control type.
DSTINIT FUNCT=OTHER,XITDI=DSI6IDM
DEFFOCPT TYPE=ALERT,PRIMARY=NETA.CNM02
DEFFOCPT TYPE=OPS_MGMT,PRIMARY=NETA.CNM02,BACKUP=NETB.CNM99
DEFFOCPT TYPE=OPS_MGMT,BACKUP=CNM03
DEFFOCPT TYPE=USERCAT,BACKUP=NETB.CNM99
DEFFOCPT TYPE=USERCAT,PRIMARY=NETA.CNM02,OVERRIDE
DEFFOCPT TYPE=USERCAT,BACKUP=*.CNM05
DEFFOCPT TYPE=USERCAT,BACKUP=CNM03
DEFENTPT EPONLY=YES
END
Figure 140. Typical Focal Point and Entry Point Definition Statements in DSI6INIT
The DEFFOCPT and DEFENTPT statements are processed by MS-CAPS at DSI6DST task initialization.
Focal Points and Architected Alerts for Programs other than the NetView Program
These are properly processed by the other product. A non-major vector alert, such as a RECFMS, might be
displayed with a probable cause of UNDETERMINED. Consult the product documentation for more
information.
Focal Points and Unarchitected Alerts for Programs other than the NetView Program
Because the focal point is a program other than the NetView program, the focal point might not know how
to process non-architected records; it depends on the focal point product. For example, nongeneric Alert
major vector X'0000's (which do not contain subvector X'92') are not architected to be sent to a focal
point, however the AS/400 product supports receiving them. Most likely, if the focal point receives an
unarchitected record, it performs one or more of the following actions, depending on the product:
• Issue an error message.
• Send an MDS Error Message (a X'1532' major vector within an MDS-MU) or an Application Error
Message (a X'1532' major vector within a CP-MSU) back to the entry point NetView program.
When the entry point NetView program receives the MDS Error Message or Application Error Message,
the entry point issues the BNH094I or BNH095I message in accordance with the option specified on
the ALERTFWD statement in the CNMSTYLE member.
Refer to the IBM Z NetView Administration Reference for information about ALERTFWD and refer to the
IBM Z NetView Installation: Getting Started for information about the CNMSTYLE member.
• Ignore (discard) the unarchitected alert.
Non-architected alerts might not be properly processed by these focal points; consult the product
documentation for more information.
Note: If all alerts that are forwarded from an entry point NetView program are to be properly processed
by the focal point, the focal point must be a NetView program Version 3 or later.
Figure 141. NetView Intermediate Node Focal Point Forwards Alerts with LU 6.2
Only alerts forwarded over LU 6.2 can be forwarded again by an intermediate node focal point. The
intermediate node focal point, which receives such alerts, may forward them again, using either the SNA-
MDS/LU 6.2 or NV-UNIQ/LUC alert forwarding method. Alerts forwarded over LUC are not forwarded
again, they are forwarded only once from the entry point to the focal point. The receiving focal point is not
permitted to forward them again. You can think of LUC alert forwarding as a one hop alert forwarding
method.
If you do not want an intermediate node NetView program to record data to the hardware monitor
database, but to simply pass through an intermediate node, specify the ALRTINFP NORECORD statement
in BNJMBDST. The ALRTINFP setting only applies to alerts forwarded with LU 6.2 from remote nodes; all
other alerts are unaffected. Refer to ALRTINFP in the IBM Z NetView Administration Reference for more
information.
At the ultimate (topmost in the diagram) NetView focal point, the domain name that the entry point alert
is recorded against in the hardware monitor database is obtained as follows:
Note: This is the domain name displayed under the DOMAIN column on the Alerts Dynamic, Alerts Static,
and Alerts History panels, and is displayed in the pictorial hierarchy at the top of several other hardware
monitor panels.
• If the entry point is a Version 3 or later NetView program and the ultimate focal point is a Version 3 or
later NetView program, when the alert appears on the Alerts Dynamic panel at the ultimate focal point,
the domain name present under the DOMAIN heading is the entry point domain name.
The alert is recorded in the focal point database against the entry point NetView domain name. Only a
single alert record is recorded in the database, the complete set of data is present at the entry point
database. Recording a single alert record to the database saves database storage and processor time.
An operator at the ultimate Version 3 or later focal point can retrieve hardware monitor data from the
entry point database through the Distributed Data Base Retrieval function by entering SEL# M from the
Flexibility in Communication
Distributed autotasks provide flexible communication. Suppose you want to forward messages from a
distributed system to a central system for exception notification, to inform operators of problems that
local automation encounters. You can issue the RMTCMD command from the central system to forward a
command, possibly just a dummy command, to the distributed system. This sets up a distributed
autotask. After that, automation can send messages to the distributed autotask any time it needs to
forward information to the central system.
Issuing this command sends an EXCMD command to AUTO1 on the central system, which routes a
second RMTCMD to AUTO2. AUTO2 then issues RMTCMD to establish a session with AUTO3 on the
distributed system, and message forwarding can begin. It is assumed here that AUTO2 is already active; if
not, you can first issue an AUTOTASK command to start it.
Each RMTCMD distributed autotask can connect to only one master OST at a time. However, a master OST
can have as many distributed autotasks as you want. You can use RMTCMD commands nested within
each other to forward commands and messages to their destinations through intermediate nodes. In this
case, you can use the EXP parameter to determine whether the commands and messages go through the
automation table on the intermediate nodes. Refer to NetView online help for the syntax of the RMTCMD
command.
Limitations
When you use an SDOMAIN command, work with a full-screen TAF session, or directly log on to a
distributed system, you do not see consolidated data from several domains on a single panel. Another
disadvantage of full-screen methods is that automation cannot use them. Therefore, full-screen methods
are better suited to problem determination in exceptional cases than to continuous monitoring.
Choosing a Configuration
When choosing a configuration for the centralized-operations environment, consider both the physical
connections that connect your focal points with distributed systems and the type of session you must use.
You might also want to include backup or intermediate focal points in your design.
However, use nonpersistent sessions for message forwarding with the NetView samples if you expect
forwarding to the primary focal point to quickly resume. This is because a persistent session continues to
carry data to the backup focal point after the primary focal point becomes available, unless you explicitly
end the session.
application, as are requests in the alert category that you send to a target that is not a NetView program
or send to a Version 3 or later NetView target that has "ALERTFWD SNA-MDS" coded in the CNMSTYLE
member. See “The MS-CAPS Application” on page 331 for more information about categories.
Changing a status focal point is a lengthy process, because the new focal point has to start by collecting
initial status information. Change the status focal point only if you expect the primary focal point to be out
of service for an extended time. You cannot use the BACKUP operand with status focal points.
To change and add backup focal points, use the FOCALPT ACQUIRE command. This command can be
used to:
• Change the backup focal point name.
• Define a new backup list for a data category.
• Add backup focal points to an existing backup list.
• Remove focal points from the backup list.
You can also use FOCALPT ACQUIRE to restore the focal points to those defined in DSI6INIT.
Use the FOCALPT QUERY or LIST FOCPT command to list a system's focal points. You can issue the
FOCALPT DROP command on a distributed system to stop forwarding a category of information to a focal
point, except for status information or messages. You can also issue FOCALPT DROP to remove one or
more focal points from the backup list. You can issue the ENDTASK command to end message forwarding
by deactivating a distributed autotask. To stop forwarding messages with an OST-NNT session, you can
send a LOGOFF command to the NNT.
The previous chapters describe automation of processors that are capable of running the NetView
program. They describe automating devices and networks that use SNA protocols and report to the
NetView program through the VTAM program. In this chapter, NetView automation capabilities for
automated management of many other IBM and non-IBM systems, devices, and networks are described.
NetView automation capabilities for a non-NetView system or non-SNA device depend on the capabilities
of the system or device. The system or device must be able, directly or indirectly, to send problem reports
and other information to the NetView program in a form (messages or MSUs) that can be automated and
to receive commands from the NetView program.
For information about managing non-SNA networks through automation, refer to the IBM Z NetView
Resource Object Data Manager and GMFHS Programmer's Guide.
Often a product that cannot be automated directly can be automated with an appropriate interface
product. This chapter describes a few examples of interface products that implement service points and
enable you to expand the scope of your NetView automation:
• Event/Automation Service
• Service point application (SPA) router and remote operations service (ROPS)
• NCP frame relay switching equipment
See Chapter 2, “Overview of Automation Products,” on page 19 for some additional examples of interface
products.
Event/Automation Service
The Event/Automation Service serves as a gateway for event data between the IBM Z NetView
management environment, managers, and agents that handle Event Integration Facility (EIF) events, and
SNMP managers and agents. With this gateway function, you can manage all network events from the
management platform of your choice. Alerts received by the hardware monitor can be translated either to
EIF events or to SNMP traps and forwarded to the respective event manager. Messages received by the
NetView program can be translated to EIF events and forwarded to a designated event server.
Conversely, SNMP traps or EIF events can be translated to alerts and forwarded to the hardware monitor.
For alerts, only a portion of the original alert data is forwarded to the Event/Automation Service. The
NetView program adds information to the alert and forwards it to the Event/Automation Service. The
combined information is used by the alert adapter service, confirmed alert adapter service, or the alert-
to-trap service of the Event/Automation Service to create the EIF event or SNMP trap. You can customize
the contents of the outgoing events or traps by customizing the information that is forwarded from the
NetView program. For more information, see “Forwarding Alerts” on page 353.
Messages are processed similarly. The entire message is combined with additional information created by
the NetView program and is forwarded to the Event/Automation Service. The combined information is
used by the message adapter service or the confirmed message adapter service of the Event/Automation
Service to create the EIF event. You can customize the contents of the EIF event by customizing the
information that is forwarded from the NetView program. For more information, see “Forwarding
Messages” on page 354.
Forwarding Alerts
If you want to forward a hardware monitor alert without changing how the Event Integration Facility (EIF)
event or SNMP trap is built, use the hardware monitor recording filters to choose which alerts the NetView
program must forward. The TECROUTE filter selects alerts for forwarding to the designated event server
Forwarding Messages
To forward a message from the NetView program without changing how the EIF event is built, specify a
NetView automation table IF-THEN statement with this information in cmdstring:
In this command, PPI_receiver_ID is the name of the PPI receiver associated with the Event/Automation
Service. The default value is IHSATEC. Specify a value in PPI_receiver_ID, even if you use the default.
Note that no messages are output in this example, even if the PPI stage fails. NetView sample
CNMEMSUS has examples that use the secondary output of the PPI stage to output error messages.
Note: To use the confirmed message adapter, use the following information in the cmdstring:
To customize how the EIF event is built when a message is forwarded to the designated event server or to
handle error messages:
• Write a command that performs your customization. For information about how to write the command,
refer to the NetView samples CNMEMSUS and CNMSIHSA.
• In the NetView automation table, specify the name of your command in the cmdstring parameter of an
automation table IF-THEN statement.
• Customize the message adapter service message format file (sample IHSAMFMT) or the confirmed
message adapter service message format file (sample IHSANFMT)
• Customize any baroc files that have been applied to event servers. For more information, see theIBM Z
NetView Customization Guide. This step is not necessary for the confirmed message adapter service.
The Resource Object Data Manager (RODM) is an in-storage data cache that stores configuration data and
resource status information. You can use RODM for both network and system automation.
Before designing an automation project that uses RODM, be familiar with RODM terminology and
concepts. For more information about the object-oriented terms used by the NetView program to
describe RODM and its data model, refer to the IBM Z NetView Resource Object Data Manager and GMFHS
Programmer's Guide.
This chapter describes automation using RODM by explaining basic concepts and providing a detailed
automation scenario. The concepts are:
• Managing one or more RODM data caches
• Issuing NetView commands from RODM methods
• Verifying commands issued from RODM methods
• Accessing RODM from the NetView automation table, NetView high-level language, and assembly
language programs
The NetView program offers a dedicated NetView task and a series of services that allow you to use
RODM. With these NetView services, you can automate with RODM more easily than by using the basic
RODM APIs. This set of NetView services is referred to as the RODM automation platform.
An automation-in-progress indicator is maintained by NetView in RODM for resources undergoing
automation. This enables operators using a NetView graphical display to wait until automation is finished
for a resource before attempting to solve a problem.
You can use the RODMView tool to view and manipulate data and objects in RODM. RODMView also
includes an application programming interface to RODM. Refer to the IBM Z NetView Resource Object Data
Manager and GMFHS Programmer's Guide for more information about RODMView.
Chapter 28. Automation Using the Resource Object Data Manager 357
IF MSGID='DWO670I' THEN
EXEC(CMD('SAVECMD') ROUTE(ONE NETOP1));
Figure 143. Using the SAVECMD Command List in the Automation Table
• The ASSISCMD command
After a command is routed to an operator, the operator sees message CNM436I. Subsequent
commands routed to the same operator are put in a queue for that operator and message CNM436I is
not displayed. After the operator has processed all the saved commands and the queue is empty,
message CNM436I is displayed for the next command routed to the operator.
Message CNM436I indicates that the operator is to enter ASSISCMD. The operator can use ASSISCMD
to manipulate the commands saved by SAVECMD. Using ASSISCMD, the operator can:
– Delete the command
– Edit and reissue the command
– Run the command as it is
Refer to the NetView online help for the syntax of the ASSISCMD command.
Chapter 28. Automation Using the Resource Object Data Manager 359
TERMINAL
The name of a class contained in RODM2.
A01A704
The identifier of an object, of class TERMINAL, in RODM2. This object is a locally attached logical unit
(LU) in the network.
STATUS
The name of a field in object A01A704. This field contains the status (UP or DOWN) of the resource. A
RODM change method, EKGCPPI, is associated with this field. This method attempts to reactivate
A01A704 when the status changes to DOWN.
AOLEVEL
The name of a field in object A01A704. This field contains a numeric value: 1, 2, or 3. In this scenario,
the AOLEVEL field is used to determine whether automation commands associated with a resource
are issued. This field is also used to determine whether assist mode is used.
1
The RODM method issues a VTAM command to activate the resource. The IST105I message that
notified the NetView program that the resource was down does not receive any special handling.
2
The IST105I message that notified the NetView program that the resource was down is routed to
an operator as specified by the ORCONV command, and RODM does not attempt to activate the
resource.
3
The RODM method issues a VTAM command, in assist mode, to activate the resource, and the
IST105I message that notified the NetView program that the resource was down does not receive
any special handling.
CNM01
The name of the command receiver queue that RODM uses to send commands to DSIQTSK.
AUTO1, AUTO2, AUTO3
Three autotasks to which DSIQTSK dispatches commands.
*
* Define the PPI command receiver, and make it APF-authorized.
*
CMDRCVR ID=CNM01
*
* Define two resource object data managers (RODMs) to be managed
* by the DSIQTSK. RODM1 is the default RODM. Both RODMs will
* be connected automatically (using the password) when the DSIQTSK
* task is started.
*
REP RODM1,CONN=Y,AO=Y,PASS=PASSWORD,T=300,ID=APPL1
REP RODM2,CONN=Y,AO=N,PASS=PASSWORD,T=300,ID=APPL2
*
* Define three autotasks to which the DSIQTSK can dispatch work.
*
TASK AUTO1
TASK AUTO2
TASK AUTO3
*
Figure 144. Sample DSIQTSKI Initialization Member for the DSIQTSK Task
6. Add an automation table statement to DSITBL01. This statement traps message IST105I and issues
the ORCONV command to RODM1 to change the resource status to DOWN. Figure 145 on page 361
shows the automation table statement that accomplishes this.
Figure 145. Automation Table Statement to Trap IST105I and Issue ORCONV Command
DISPLAY is set to Y because this message needs to be displayed to the operator, NETOP1. If DISPLAY
were set to N, the message is never displayed anywhere (even if the ORCONV command specifies a
destination).
7. Create a RODM change method to attempt the recovery of the failed resource, A01A704.
A programmer creates a method that uses the EKGSPPI method to send the VARY NET,ACT command
to DSIQTSK. The DSIQTSK task receives this command and dispatches it to one of the autotasks
defined in DSIQTSKI.
In this scenario, the method that calls EKGSPPI is the EKGCPPI method. EKGCPPI is written in PL/I.
“Key Sections of Change Method EKGCPPI” on page 366 presents excerpts from EKGCPPI.
The EKGCPPI method checks the AOLEVEL field to determine whether the VARY NET,ACT command is
issued in assist mode. In this scenario, AOLEVEL is set to 3, so commands are issued in assist mode.
Because the AOLEVEL field indicates assist mode, EKGCPPI requests assist mode when calling the
EKGSPPI method. Assist mode means that any command issued by the RODM method is not run.
Instead, this command is trapped by DSIQTSK and issued as NetView message DWO670I. You can
trap this message in the automation table and save it using the SAVECMD command. Commands saved
using SAVECMD can be displayed and manipulated using ASSISCMD. See step “9” on page 364 for an
example of using ASSISCMD.
Without assist mode, DSIQTSK would have dispatched the command to autotask AUTO1 to be run.
Chapter 28. Automation Using the Resource Object Data Manager 361
After the change method is created, it must be compiled and link-edited into one of the libraries
specified with the STEPLIB data definition (DD) statement of the RODM START procedure.
8. Create an automation table statement in DSITBL01. This statement traps message DWO670I and
saves the command passed from RODM.
Figure 146 on page 362 shows the automation table statement that accomplishes this. This statement
traps the DWO670I message and uses the SAVECMD command to save the VTAM VARY command
issued by the RODM method. In this scenario, the SAVECMD is then routed to NetView operator
NETOP1, if NETOP1 is logged on.
When the SAVECMD command is routed to NETOP1, NETOP1 receives message CNM436I. NETOP1
can then use the ASSISCMD to edit, discard, or issue the saved command.
Refer to the IBM Z NetView Resource Object Data Manager and GMFHS Programmer's Guide for more
information about the RODM load function.
ORCNTL CHNG,OR=RODM2
Now the ORCONV command you coded in the automation table acts on RODM2.
6. Activate the automation table. To start the automation table, use the command in Figure 149 on page
363.
AUTOTBL MEMBER=DSITBL01
If an IST105I message is received for A01A704, the ORCONV command is issued to change its status
to DOWN. When the status is changed to DOWN, a change method is invoked. The change method
checks AOLEVEL. The AOLEVEL field is set to 3, so the VTAM VARY command is issued in assist mode
rather than being dispatched to an autotask for execution.
7. Use the DEFAULTS command to ensure that an operator is notified of a failed resource if recovery of
that resource is not automated.
The DEFAULTS command has a parameter called SENDMSG. You can use this parameter, in
combination with the MSGFIELD and MSGPARMS parameters of the ORCONV command, to
determine what to do with the IST105I message that caused the ORCONV command to be issued.
In the scenario, the RODM change method checks the AOLEVEL field to determine whether to
automate recovery of the failed resource. If recovery is not automated, an operator needs to be
notified that the resource has failed. However, the RODM change method does not have access to
this IST105I message. Instead, you can use the ORCONV command to examine the AOLEVEL field
just as the change method did. Based on the value of this field, the ORCONV command routes the
IST105I message to an operator you specify with the ORCONV command.
First, set the SENDMSG parameter to a numeric value (or list of values). In this scenario, SENDMSG is
set to 2. From the operator panel, enter the command in Figure 150 on page 363.
DEFAULTS SENDMSG=2
The MSGFIELD parameter tells the ORCONV command to compare the value set by SENDMSG to the
value of AOLEVEL (see Figure 145 on page 361). The ORCONV command compares the value of
AOLEVEL to the value set by SENDMSG.
If the value of AOLEVEL matches one of the values set by the DEFAULTS SENDMSG command, the
message that caused the ORCONV command to be issued is routed to the destination defined with
the MSGPARMS parameter of ORCONV. In step “6” on page 361, the ORCONV command is issued as
a result of an IST105I message. Also, Figure 145 on page 361 shows that MSGFIELD is set to
AOLEVEL and MSGPARMS is set to NETOP1. Therefore, the IST105I message is routed to the
operator NETOP1 if AOLEVEL is set to 2.
If the value of AOLEVEL does not match one of the values set by the DEFAULTS SENDMSG command,
the IST105I message is not routed to the destination specified by MSGPARMS. If AOLEVEL were set
to 1, the RODM method changes the status of A01A704 to DOWN, and the IST105I message is not
Chapter 28. Automation Using the Resource Object Data Manager 363
routed to the destination specified by MSGPARMS. The RODM method attempts to automate the
recovery of the resource.
8. Deactivate the resource A01A704.
To continue this scenario, deactivate a resource. From the NetView program, issue the command in
Figure 151 on page 364.
V NET,INACT,ID=A01A704,F
1. V NET,ACT,ID=A01A704
MORE This command was sent by the change method EKGCPPI to act
2.
3.
4.
5.
6.
Command===>
PF1 = Help PF2 = Exit
PF6 = Roll
If the command had not been issued in assist mode, the CNM436I message was not received and the
VARY NET,ACT command would have been issued without being displayed to the operator.
The first panel displayed by the ASSISCMD command shows the last six commands issued in assist
mode. Any informational text associated with the commands is also displayed. This informational
text displayed is the same text that is associated with the command when calling the EKGSPPI
method, as shown in Figure 159 on page 369. As each of the commands is processed by the
operator, the next saved command is displayed on the panel. Up to 20 commands can be queued for
display. This number can be changed by modifying the SAVECMD command list.
10. After the first ASSISCMD panel appears, the operator can type one of these letters next to the
command on the panel:
E
Run the command as it is displayed. This option can be entered from the first or second panel.
D
Delete the command. This option can be entered on the first or second panel.
M
Modify the command, or display more information. If there is more information to be displayed,
the word MORE appears on the first panel as the first word on the line immediately following the
command. The M option displays the second ASSISCMD panel. The operator can view the entire
command and any informational text associated with the command.
In Figure 152 on page 364, the word MORE appears under the command. This word indicates that
more details about the command are available.
11. Enter M next to the command as shown in Figure 153 on page 365.
1. M V NET,ACT,ID=A01A704
MORE This command was sent by the change method EKGCPPI to act
2.
3.
4.
5.
6.
Command===>
PF1 = Help PF2 = Exit
PF6 = Roll
Figure 153. Example Screen for the ASSISCMD Command--Enter M for More Detail
12. After you enter M, the second ASSISCMD panel, shown in Figure 154 on page 365, is displayed. This
panel provides an explanation of why the command was issued. This text was created in the change
method EKGCPPI (see Figure 159 on page 369) and passed to the method EKGSPPI as a parameter.
V NET,ACT,ID=A01A704
Command===>
PF1 = Help PF2 = Exit PF3 = Previous Panel
PF6 = Roll
Figure 154. Example Screen for the ASSISCMD Command--More Detail About Command
13. To process the command, enter E next to the command, as shown in Figure 155 on page 366. If you
want to edit the command before executing it, type over the command, and then type E to run the
command.
Chapter 28. Automation Using the Resource Object Data Manager 365
assispn2 Full Detail of Command for Operator Assistance
E V NET,ACT,ID=A01A704
Command===>
PF1 = Help PF2 = Exit PF3 = Previous Panel
PF6 = Roll
Figure 155. Example Screen for the ASSISCMD Command--Enter E to Execute Command
Procedure Statement
⋮
EKGCPPI: PROCEDURE (IN_FLD_ID,IN_LLP,IN_SLP,IN_DATATYPE,
IN_CHARLEN, IN_DATAPTR)
OPTIONS (REENTRANT); 1
Key
Explanation
1
Because this is a change method, it is responsible for physically making the change to the VALUE
subfield of the STATUS field in RODM. To make this change, the method needs to know which field to
change and what the new value is for that field. This information is passed to the change method by
RODM, and must be defined as parameters on the method's procedure statement.
In this scenario, the ORCONV command attempted to change the value of the STATUS field to DOWN.
However, because the change method EKGCPPI is associated with the STATUS field, RODM triggers
the EKGCPPI method and passes the name of the field and the new value to EKGCPPI.
/********************************************************************/
/* */
/* LOCAL VARIABLES */
/* */
/********************************************************************/
⋮
/* Selfdefining data for */
/* OI method EKGSPPI 1 */
DCL 1 EKGSPPI_BLK UNALIGNED,
3 TOTAL_LEN Smallint, /* Not including its length */
3 RCVRID_CHARVAR, 2 /* Receiver id CharVar */
5 DATA_TYPE Smallint INIT(EKG_DT_CharVar), /* Data type */
5 CHAR_LEN Smallint INIT(MAX_CHAR_LEN), /* CharVar len */
5 CHAR_DATA CHAR(8) INIT('CNM01'), /* CharVar data*/
5 NULL_DATA BIT(8) INIT ('00000000'B), /* Null data */
3 ASSIST_CHARVAR, 3 /* Assist information CharVar */
5 DATA_TYPE Smallint INIT(EKG_DT_CharVar), /* Data type */
5 CHAR_LEN Smallint INIT(MAX_CHAR_LEN), /* CharVar len */
5 CHAR_DATA CHAR(8), /* CharVar data*/
5 NULL_DATA BIT(8) INIT ('00000000'B), /* Null data */
3 TASKINFO_CHARVAR, 4 /* Task information CharVar */
5 DATA_TYPE Smallint INIT(EKG_DT_CharVar), /* Data type */
5 CHAR_LEN Smallint INIT(MAX_CHAR_LEN), /* CharVar len */
5 CHAR_DATA CHAR(8) INIT('ONLYANY'), /* CharVar data*/
5 NULL_DATA BIT(8) INIT ('00000000'B), /* Null data */
3 TASKNAME_CHARVAR, 5 /* Task name CharVar */
5 DATA_TYPE Smallint INIT(EKG_DT_CharVar), /* Data type */
5 CHAR_LEN Smallint INIT(MAX_CHAR_LEN), /* CharVar len */
5 CHAR_DATA CHAR(8) INIT('AUTO1'), /* CharVar data*/
5 NULL_DATA BIT(8) INIT ('00000000'B), /* Null data */
3 SENDER_CHARVAR, 6 /* Sender token CharVar */
5 DATA_TYPE Smallint INIT(EKG_DT_CharVar), /* Data type */
5 CHAR_LEN Smallint INIT(MAX_CHAR_LEN), /* CharVar len */
5 CHAR_DATA CHAR(8) INIT('EKGCPPI'), /* CharVar data*/
5 NULL_DATA BIT(8) INIT ('00000000'B), /* Null data */
3 CMD_CHARVAR, 7 /* Command Charvar */
5 DATA_TYPE Smallint INIT(EKG_DT_CharVar), /* Data type */
5 CHAR_LEN Smallint INIT(MAX_CMD_LEN), /* CharVar len */
5 CHAR_DATA CHAR(MAX_CMD_LEN), /* CharVar data*/
5 NULL_DATA BIT(8) INIT ('00000000'B), /* Null data */
3 CMD_DESC_CHARVAR, 8 /* Command Description Charvar */
5 DATA_TYPE Smallint INIT(EKG_DT_CharVar), /* Data type */
5 CHAR_LEN Smallint INIT(MAX_CMD_DESC_LEN), /* CharVar len */
5 CHAR_DATA CHAR(MAX_CMD_DESC_LEN), /* CharVar data*/
5 NULL_DATA BIT(8) INIT ('00000000'B); /* Null data */
⋮
Key
Explanation
1
EKGSPPI is the method that places commands on the program-to-program interface to send the
commands to the NetView task DSIQTSK. This self-defining string contains seven parameters that are
passed to the object-independent method EKGSPPI. All leading blanks are deleted from these input
parameters before they are processed.
2
The RCVRID_CHARVAR statement defines the command receiver name as CNM01. This is the receiver
name that EKGSPPI uses when sending commands to DSIQTSK over the program-to-program
interface. This is the same receiver name defined in the DSIQTSKI initialization member.
3
The ASSIST_CHARVAR statement defines the variable that passes either ASSIST or NOASSIST to
EKGSPPI. When the value of this variable is ASSIST, any commands sent to DSIQTSK are issued in
assist mode. In this scenario, the value of this variable is based on the value of the AOLEVEL field in
RODM.
4
The TASKINFO_CHARVAR statement specifies whether DSIQTSK dispatches commands to a specific
autotask, or to the next available autotask. Its CHAR_DATA statement has the following attributes:
Chapter 28. Automation Using the Resource Object Data Manager 367
Attribute
Meaning
ONLYANY
A specific autotask is used, unless that autotask is not available. If it is not available, the next
available autotask (after the most recently used autotask) defined to DSIQTSK issues the
command. Autotasks are used in the order in which they are defined in the DSIQTSKI member of
DSIPARM.
ONLY
A specific autotask is used. If this autotask is busy, the command is queued for the autotask. If
the specified autotask is not available, the command is not issued.
ANY
The next autotask (after the most recently used autotask) defined to DSIQTSK issues the
command. Autotasks are used in the order in which they are defined in the DSIQTSKI member of
DSIPARM.
5
The TASKNAME_CHARVAR statement specifies that DSIQTSK dispatches the command specified in
CMD_CHARVAR to autotask AUTO1.
6
The SENDER_CHARVAR statement identifies the method that is sending a command to EKGSPPI. In
this scenario EKGCPPI is used as the identifier or sender token.
7
The CMD_CHARVAR statement defines the variable that contains the name of the command passed
from EKGSPPI to DSIQTSK.
8
The CMD_DESC_CHARVAR statement defines the variable that contains text describing the command
sent from EKGSPPI to DSIQTSK. This text is displayed if the command is issued in assist mode and an
operator enters ASSISCMD.
Constants
/********************************************************************/
/* */
/* CONSTANTS */
/* */
/********************************************************************/
⋮
DCL $ASSISTON FIXED BIN(31) INIT(3); 1 /* Send cmd to DSIQTSK*/
DCL $ASSISTOFF FIXED BIN(31) INIT(1); 2 /* Send cmd to DSIQTSK*/
⋮
DCL FIELD_AO CHAR(7) INIT('AOLEVEL'); 3 /* Field name for AOLEVEL */
DCL FIELD_MyName CHAR(6) INIT('MyName'); 4 /* MyName Field */
DCL EKGSPPI_NAME CHAR(7) INIT('EKGSPPI'); 5 /* EKGSPPI OI method name */
/* CMD Value */
DCL CMD_VALUE CHAR(MAX_CMD_LEN - RESOURCE_NAME_SIZE) VARYING
INIT('V NET,ACT,ID='); 6
/* CMD description */
DCL CMD_DESC_VALUE CHAR(MAX_CMD_DESC_LEN) VARYING; 7
⋮
Key
Explanation
1
The $ASSISTON constant is used to determine whether the AOLEVEL field is set to 3. The value 3
indicates that the object-independent method EKGSPPI issues commands in assist mode.
2
The $ASSISTOFF constant is used to determine whether the AOLEVEL field is set to 1. A value of 1
indicates that the object-independent method EKGSPPI sends commands to DSIQTSK without assist
mode. That is, the commands are sent to DSIQTSK, dispatched to an autotask, and processed.
Initialization
/********************************************************************/
/* Initialization */
/********************************************************************/
/* Set change subfield fid */
F1403_FUNC_BLK.Function_ID = EKG_ChangeSubfield; 1
/* Trigger OI method func id */
F1416_FUNC_BLK.Function_ID = EKG_TriggerOIMethod; 2
/* Set the query subfield fid */
F1502_FUNC_BLK.Function_ID = EKG_QuerySubfield; 3
⋮
/* Set the cmd desc value */
CMD_DESC_VALUE = 'This command was sent by the change method ' 4
|| 'EKGCPPI to activate a resource. '
|| 'This command was sent because both of the '
|| 'following conditions have occurred: '
|| '(1) The status of the resource has been set '
|| 'to DOWN in RODM. '
|| '(2) RODM indicates that recovery of this '
|| 'resource should be attempted automatically. ';
Figure 159 on page 369 shows the part of the method that assigns a value to the function identifier fields
in the RODM function blocks that is used throughout this method. These functions are used in this
method:
• Change a subfield
• Trigger an object-independent method
• Query a subfield
These are standard RODM functions. Refer to the IBM Z NetView Resource Object Data Manager and
GMFHS Programmer's Guide for a description of these RODM functions.
Key
Explanation
1
The F1403_FUNC_BLK statement assigns a function identifier for changing a subfield.
2
The F1416_FUNC_BLK statement assigns a function identifier for triggering an object-independent
method. In this scenario, the method started is EKGSPPI.
Chapter 28. Automation Using the Resource Object Data Manager 369
3
The F1502_FUNC_BLK statement assigns a function identifier for querying a subfield. In this scenario,
the EKGCPPI method queries two fields:
• The VALUE subfield of the AOLEVEL field
• The VALUE subfield of the MyName field
4
The CMD_DESC_VALUE statement defines the text that is associated with the command defined by
the CMD_VALUE constant in Figure 158 on page 368.
Changing a Subfield
/********************************************************************/
/* Change the value subfield of the input */
/********************************************************************/
⋮
/* Set datatype of change fld */
F1403_FUNC_BLK.Data_type = IN_DATATYPE; 1
/* Set char data length */
F1403_FUNC_BLK.New_char_data_length = IN_CHARLEN; 2
/* Set new data pointer */
F1403_FUNC_BLK.New_data_ptr = IN_DATAPTR; 3
⋮
/* Change subfield */
CALL EKGMAPI(TRANS_INFO_BLK,F1403_FUNC_BLK,RESPONSE_BLK); 4
⋮
Figure 160 on page 370 shows the part of the method that changes the value of the STATUS field. The
STATUS field is the field with which the method is associated.
Key
Explanation
1
IN_DATATYPE specifies the data type of the STATUS field. This parameter is specified on the
procedure statement in Figure 156 on page 366.
2
IN_CHARLEN specifies the length of the new data. In this scenario, the new value is DOWN. This
parameter is specified on the procedure statement in Figure 156 on page 366.
3
IN_DATAPTR specifies the pointer to the new data. This parameter is specified on the procedure
statement in Figure 156 on page 366.
4
This statement calls the RODM API EKGMAPI. EKGMAPI performs the actual change to the status
field. Function identifier 1403 is defined as EKG_ChangeSubfield in Figure 159 on page 369.
/******************************************************************/
/* Query the AOLEVEL field to see it is 1 */
/******************************************************************/
⋮
/* Length is set */
FIELD_ACCESS_INFO_BLK.Field_name_length = LENGTH(FIELD_AO); 1
/* Set the field ptr */
FIELD_PTR = ADDR(FIELD_AO); 2
⋮
/* Query a AOLEVEL subfield */
CALL EKGMAPI(TRANS_INFO_BLK,F1502_FUNC_BLK,RESPONSE_BLK); 3
⋮
/* Send the command or not */
IF TEMP_DATA_VALUE = $ASSISTON |
TEMP_DATA_VALUE = $ASSISTOFF THEN
DO; 4 /* Prepare to send command */
/* Is ASSIST ON */
IF TEMP_DATA_VALUE = $ASSISTON THEN
EKGSPPI_BLK.ASSIST_CHARVAR.CHAR_DATA = 'ASSIST'; 5
ELSE
EKGSPPI_BLK.ASSIST_CHARVAR.CHAR_DATA = 'NOASSIST'; 6
Figure 161 on page 371 shows the part of the method that determines whether the object-independent
method, EKGSPPI, issues commands in assist mode. The change method, EKGCPPI, examines the
AOLEVEL subfield associated with the failed resource.
• If the value of AOLEVEL is 1 (the constant $ASSISTOFF), EKGSPPI is called with the ASSIST option.
• If the value of AOLEVEL is 3 (the constant $ASSISTON), EKGSPPI is called with the NOASSIST option.
• For any other value of AOLEVEL, EKGSPPI is not called.
Key
Explanation
1
This statement defines the length of the field name.
2
This statement defines the address of the AOLEVEL field name. FIELD_AO was given the value
AOLEVEL in Figure 158 on page 368.
3
This statement calls EKGMAPI to query the AOLEVEL field. Function identifier 1502 was defined as
EKG_QuerySubfield in Figure 159 on page 369.
4
The TEMP_DATA_VALUE was set based on the result of the subfield query. This IF statement checks
the value of TEMP_DATA_VALUE to determine whether commands are sent to DSIQTSK with assist
mode or without assist mode.
5
This statement determines whether the value of TEMP_DATA_VALUE is $ASSISTON. If so, the
ASSIST_CHARVAR variable (see Figure 157 on page 367) is set to ASSIST. The command sent to
DSIQTSK is issued in assist mode. An operator can use the ASSISCMD command to display, modify,
and issue the commands.
6
This statement determines whether the value of TEMP_DATA_VALUE is $ASSISTOFF. If so, the
ASSIST_CHARVAR variable (see Figure 157 on page 367) is set to NOASSIST. The command sent to
DSIQTSK is dispatched to an autotask for execution; assist mode is not used.
Chapter 28. Automation Using the Resource Object Data Manager 371
Querying an Object Name
/**********************************************************/
/* Query the Object name for V NET,ACT,ID=objectname */
/**********************************************************/
⋮
/* Length is set */
FIELD_ACCESS_INFO_BLK.Field_name_length
= LENGTH(FIELD_MyName); 1
/* Set the field ptr */
FIELD_PTR = ADDR(FIELD_MyName); 2
⋮
/* Query a Object name subfld */
CALL EKGMAPI(TRANS_INFO_BLK,F1502_FUNC_BLK,RESPONSE_BLK); 3
⋮
This section of the method determines the object name for the failed resource. In this scenario, the object
name is the resource name. This name is then concatenated with the value of CMD_VALUE and sent to
EKGSPPI.
Key
Explanation
1
This statement defines the length of the field name.
2
This statement defines the address of the MyName field name. (FIELD_MyName was given the value
MyName in Figure 158 on page 368.)
3
This statement calls EKGMAPI to query the VALUE subfield of the MyName field. Function identifier
1502 was defined as EKG_QuerySubfield in Figure 159 on page 369.
/******************************************************/
/* Prepare to trigger OI method EKGSPPI to send the */
/* command V NET,ACT,ID=objectname to DSIQTSK */
/******************************************************/
⋮
/* Set the cmd with */
/* MyName field value */
EKGSPPI_BLK.CMD_CHARVAR.CHAR_DATA =
CMD_VALUE || SUBSTR(CHARVAR_RESP_BLK.CHAR_DATA,
1,CHARVAR_RESP_BLK.CHAR_LEN); 1
/* Set the cmd description */
EKGSPPI_BLK.CMD_DESC_CHARVAR.CHAR_DATA =
CMD_DESC_VALUE; 2
/* Set OI method name */
F1416_FUNC_BLK.Method_name = EKGSPPI_NAME; 3
/* Set selfdefining parm */
F1416_FUNC_BLK.Method_parms = ADDR(EKGSPPI_BLK); 4
⋮
/* Message triggered MAPI call*/
CALL EKGMAPI(TRANS_INFO_BLK,F2009_FUNC_BLK,
RESPONSE_BLK); 5
⋮
This section of the method triggers the object-independent method EKGSPPI. EKGSPPI sends the
command defined in CMD_CHARVAR to DSIQTSK, over the program-to-program interface.
Key
Explanation
Chapter 28. Automation Using the Resource Object Data Manager 373
374 IBM Z NetView: Automation Guide
Chapter 29. Automation Using the Terminal Access
Facility
The NetView terminal access facility (TAF) is a VTAM relay function that permits a NetView operator's
terminal to appear as an LU1 or LU2 type terminal to any application supporting those protocols. The
applications include, but are not limited to, the Customer Information Control System (CICS) and
Information Management System (IMS) applications. TAF enables both NetView operators and autotasks
to view messages and issue commands as if they are logged on to the subsystem console or master
terminal for that application. Messages coming across the TAF LU1 sessions that link the NetView
program to the applications are processed by the automation table and are available for automation using
the standard NetView automation capabilities.
TAF is especially useful in cases where messages from the automated application to its own console or
master terminal are not available to the operating system message processing facilities. On MVS systems,
for instance, both CICS and IMS generate messages to their console or master terminal that are not
broadcast on the subsystem interface and are not available to the NetView program for automation
except through TAF.
Overview
TAF offers two modes of operation. One mode of operation, operator-control, or OPCTL, sessions are LU1
sessions and emulate SNA 3767 terminals. Operator-control sessions transmit messages and commands
in line-by-line mode rather than full-screen mode. Messages usually viewed by the operator on the
application subsystem console or master terminal are sent to the NetView program across the LU1
session and are processed by the automation table. Automation involving TAF is done with operator-
control (LU1) sessions. Using those sessions, autotasks can enter any transaction that is possible from a
3767 terminal directly attached to the application, including CICS and IMS control functions that normally
are entered from the CICS and IMS master terminals.
Another mode of operation, full-screen, or FLSCN, sessions are LU2 sessions and emulate SNA 3270
terminals. By establishing a full-screen session with an application, NetView operators can view the
application screens from the NetView terminal just as if they are logged directly onto the application itself
from a locally attached subsystem console or master terminal. Because the data that appears on the
NetView screen is transmitted in full-screen rather than line-by-line format, the data is not available to
NetView automation processing facilities. Messages received over the LU2 session and viewed on the
NetView screen do not pass through the automation table. Autotasks by definition do not have physical
terminals; therefore, they cannot view the full-screen session.
For these reasons, you cannot use full-screen sessions for automation. You might want to use them,
however, in instances where your automation does not yet handle all control functions for an application.
In those instances, a NetView operator can perform the actions required by using TAF full-screen
sessions. This ability plays an important part in consolidating subsystem consoles, enabling you to
operate several subsystems and applications from a single NetView console. It can be important in focal-
point operation, where operators at a central system controls applications on several systems, which
might be remote.
Both LU1 and LU2 sessions are types of VTAM sessions. All TAF sessions, whether operator-control or
full-screen, require that the VTAM program be active.
Setting Up TAF
The system setup for TAF consists of adding definition statements to the VTAMLST data set for the TAF
source LUs and adding terminal definitions to your applications, such as CICS and IMS, for those same
source LUs. Using the sample definitions provided for the VTAMLST data set, CICS, and IMS in the
following sections can help in setting up the system.
DFHTCT TYPE=TERMINAL,TRMTYPE=3767,NETNAME=TAF01O00,TRMIDNT=TOFO,
GMMSG=YES,RELREQ=(YES,YES),TIOAL=256,VF=YES,
LOGMODE=M3767,BUFFER=256,TRMSTAT=TRANSCEIVE,RUSIZE=256,
BMSFEAT=(NOROUTE,NOROUTEALL),PGESTAT=PAGE,
PGESIZE=(12,80)
TYPE UNITYPE=SLUTYPE1
TERMINAL NAME=TAF01O00
NAME TAF01O00
Include definition statements in the IMS generation for as many SRCLUs as you expect to use in session
with IMS. The statements are included with the terminal definitions that remain statically defined, such as
printers or terminals with an extra logical name.
Automated Operations Network (AON) provides comprehensive, drop-in, policy-based programs that can
be customized and extended to provide network automation. The following components of AON provide
consistent automation across network protocols:
• SNA Automation (AON/SNA)
• TCP/IP Automation (AON/TCP)
You can choose to run one or more of these components.
Note: Many IP-related functions that were previously implemented as part of the NetView Automated
Operations Network (AON) component are now implemented as base NetView services. These functions,
which are referred to as the AON IP functions, no longer require AON enablement and configuration.
Instead, they can be enabled by using the IPMGT tower. However, AON IP functions that are already
enabled using the AON TCP subtower do not need to be reconfigured. The AON TCP subtower and the
IPMGT towers are mutually exclusive. Additional information on the IPMGT tower can be found in IBM Z
NetView Installation: Configuring Additional Components.
AON components intercept alerts and messages that indicate problems with network resources. The
components of AON monitor and attempt to recover failed resources. The AON components also record
resource failures to enable you to track recurring network problems. AON uses many of the functions
described in this manual such as global variables, automation table constructs, and timers. Implementing
AON automation provides you with a base set of automation functions.
Automation Table
The automation table detects messages, alerts, and resolutions and takes actions based on those
messages and MSUs. It then drives AON failure or recovery processing, as appropriate.
Understanding Notifications
An automation notification can consist of one or more of these responses:
• Message
• MSU
• Event Integration Facility (EIF) event
• Dynamic Display Facility (DDF) update
• NetView management console update, such as the Automation In Progress status
• Beeper or email request using Inform Policy definitions
These notifications describe significant actions detected or taken by AON. A notification informs the
operator that a resource requires operator intervention or that a significant network event has occurred.
Messages are routed to the appropriate operators (known as the notification operators) and optionally
held on the command facility display until deleted.
AON message notifications occur based on the usage of message classes. You can define notification
operators with sole responsibility for specific message classes. For example, define one or more
notification operators to receive messages pertaining only to TCP/IP resources.
You can also define inform policy statements that enable you to notify appropriate personnel using pagers
(numeric or alphanumeric) or email. The inform policy is customizable. For example, you can send e-mail
to first shift operators and page third shift operators.
AON/SNA Automation
AON/SNA automates System Network Architecture (SNA) and offers automation functions for:
• VTAM/SNA subarea resource monitoring
• VTAM/SNA Advanced Peer-to-Peer Networking resources
AON/SNA automates network recovery based on VTAM messages and alerts that indicate problems with
network resources. AON/SNA intercepts critical VTAM messages and alerts that indicate problems with
network resources. AON/SNA then issues commands to reactivate the failed resources and monitors the
resources until they are active again. By providing both management and control for your network,
AON/SNA produces quantifiable savings.
Some of the capabilities of AON/SNA are:
• Real-time status display
• Operator-productivity functions from a simple operator interface
• Automated help desk
• Resource processing for status changes
To perform a task in AON/SNA, you can use the operator interface or panels. To bypass the operator
interface, use the command line in the NetView program, AON, or any AON component that is installed
and initialized on your system. You can also manage control of AON/SNA recovery from the workstation
interface.
Using SNAMAP
AON/SNA provides a tool called SNAMAP to list the resources on a particular domain. To create a list of
the resources, select a resource type or enter the name of a specific resource. When you select a
category, AON/SNA displays a list panel that shows the resource names that fit that category.
SNAMAP can zoom to its connected lower nodes. In contrast, the SNA help desk provides a view of a
resource and its connected higher nodes.
Using NetStat
NetStat displays a resource list that is created by selecting the type of resource, the status you want to
display, and whether you want the recovery flag to be set. Using this information, NetStat displays a list of
resources that fit the criteria you selected. This option is a display only option.
AON/TCP Automation
AON/TCP helps you manage your TCP/IP network. The connection between the NetView program and
your TCP/IP network is TCP/IP for z/OS.
Some AON/TCP functions are:
• AON/TCP detects, reacts to, and notifies NetView operators of TCP/IP resource failures. You can
instruct AON/TCP to use passive monitoring, proactive monitoring, or both to detect these network
failures.
• AON/TCP uses ping responses during resource failure processing to detect name server failures in the
TCP/IP network. If a name server is down, AON/TCP notifies operators so they can reconnect the
appropriate name server to the TCP/IP network.
• With AON/TCP you can associate interfaces with routers. When a router interface fails, AON/TCP
notifies operators that both the router and the router interface (link) are not fully operational.
• With the Dynamic Display Facility (DDF) and the operator interface, operators can manage the TCP/IP
network on an exception basis by seeing and managing only problem resources, without sorting through
resources that are active and operating properly.
• In large TCP/IP networks, you can limit the types of failures and resources that AON/TCP monitors. To
use definitions in the AON control file, you can change these definitions as your network requirements
change by using the AON/TCP operator interface.
With AON/TCP, you can:
• Manage IP connections across multiple TCP/IP stacks.
• Perform problem determination on hung sessions (such as TN3270 and FTP) and take corrective
actions. For example, you can drop the session.
• Issue SNMP requests such as GET and SET to manage your IP resources.
• Manage TCP/IP resources using IPMAN.
• Perform MIB polling and thresholding on selected IP resources.
• Correlate IP interface and host traps
• Monitor and recover failed IP sockets
• Support (concurrently) both UNIX and TSO environments
• Provide support for starting and stopping these IP traces:
– CTRACE
– PKTTRACE
– OSATRACE
• Use SNMP to manage:
– Your IP stack
Proactive Monitoring
Continuously monitoring and reporting on network devices is called proactive monitoring.
To actively monitor your resources, place a definition in the AON/TCP control file. AON/TCP issues a PING
command or SNMP GET request (z/OS only), which checks the status of these resources for availability at
AON/TCP initialization, and at the predefined time intervals.
If a resource is not available (the status you defined in the control file is not the current status), AON
tracks the outage, updates the operators, and manages recovery monitoring. Recovery monitoring is in
effect during an outage so proactive monitoring is not necessary. Therefore, AON suspends proactive
monitoring whenever it knows a resource is unavailable. When the resource is available again, the active
monitoring timer is reinstated. AON/TCP issues messages that tell you whether failures are being
detected by proactive or passive monitoring. This enables you to discontinue the overhead of proactive
monitoring when passive monitoring is sufficient.
Recovery Monitoring
Recovery monitoring consists of checking the status of an unavailable resource at the intervals you
defined in the AON control file.
AON/TCP starts recovery monitoring whenever it detects a failure for a resource. This monitoring
continues at intervals defined in the AON/TCP control file. You must define these intervals to be
irregularly spaced in order to monitor more frequently at the beginning of an outage, when recovery is
most likely to occur. The longer the outage continues, the less frequently you need to monitor the
resource for recovery. When a recovery is detected, AON recovery automation begins. AON updates
operators, stops recovery monitoring, and reinstates the proactive monitoring that is defined in the
control file.
Operator Awareness
Operators can choose from several AON/TCP interfaces to receive updates about network exception
conditions:
• Define operators as notification operators, so that they receive messages for each exception condition.
They can clear these messages by refreshing their screen or using the DM command.
You can run multiple NetView programs on a single system. When you install multiple NetView programs
on a single system to separate the functions:
• You can separate system support from network support. For example, one NetView program can handle
system operation and automation and another can handle network operation, automation, and problem
determination.
• You can separate problem determination from automation. In this case, the automated NetView
program includes system and network automation. If you do not want network management activities
to affect automation performance, run the automated NetView program at a higher priority than any of
the tasks it automates, and schedule the problem determination NetView program so that it does not
interfere with subsystems or network automation.
When two NetView programs are running on a single system, each NetView program can monitor and
recover the other. If a single NetView program is limited by constraints for a critical resource, such as the
command list data set or network log, a second NetView program can be beneficial. However, CPU
utilization is not decreased in this situation.
When migrating from one NetView release to another, you can use one NetView program as a production
system while using a second to test the new NetView release.
Running multiple NetView programs requires:
• Maintaining additional copies of libraries and logs
• Routing a message between NetView programs
• Ensuring a message is not automated more than once
• Using a different designator character for each NetView subsystem
Additional considerations are:
• Some NetView functions cannot be used on more than one NetView program per system or per VTAM
program.
– For a single VTAM, only one NetView program at a time can use the program operator interface (POI).
– Only one NetView program can use the CNMI to receive unsolicited network management data from
a given VTAM program, and only one can use the VTAM status monitor performance enhancement.
– Only one NetView program in a system can use the hardware monitor local device interface.
– Only one command revision table (CRT) can be active in an LPAR. Loading a CRT always deactivates
the previous table, even if the previous table was loaded by a different instance of the NetView
program.
• Because each NetView program maintains its databases separately, operators on the two NetView
programs do not, for example, browse the same network log.
See “NetView Interfaces and Functions” on page 392 for more information about NetView function
restrictions.
Running more than one NetView program requires additional processor storage. A small system might not
have the processor storage capacity required to run two NetView programs. Also, NetView CPU utilization
tends to be higher with more than one NetView program.
GENALERT
Generation of alerts using GENALERT does not require the VTAM CNMI. Therefore, two or more NetView
programs in a single system can generate alerts. A NetView program without the CNMI can still have its
own hardware monitor database for handling alerts. This can be useful if you are using alerts to display
information about problems that you do not yet handle automatically. See “Monitoring Alerts with the
Hardware Monitor” on page 320 for more information.
Any NetView program using the GENALERT interface requires:
• Unique hardware monitor databases
• Active BNJDSERV task
• Active DSICRTR task
• If this NetView program is using the CNMI:
– FUNCT=BOTH must be specified on the DSTINIT statement in BNJMBDST.
– FUNCT=CNMI must be specified on the DSTINIT statement in DSICRTTD.
– VTAM applications for DSICRTR and BNJHWMON must be activated.
• If this NetView program is not using the CNMI:
– FUNCT=VSAM must be specified on the DSTINIT statement in BNJMBDST.
– FUNCT=OTHER must be specified on the DSTINIT statement in DSICRTTD. Program temporary fix
(PTF) UY25868 is required for this.
– VTAM applications for DSICRTR and BNJHWMON must not be activated.
For a NetView program that does not use GENALERT or the hardware monitor, it is not necessary to
activate the BNJDSERV task or associate the VTAM APPL definitions and NetView databases with that
task. However, you can still require the DSICRTR task to be used by the session monitor.
Migration
When migrating from an earlier release of the NetView program to the current release, the NetView
program can run network-management or problem-determination functions while a test NetView
program can run automation functions. When this migration situation occurs, the production NetView
program uses the POI, the CNMI, and the hardware monitor local-device interface. The test NetView
program uses the subsystem interface and optionally the GENALERT interface.
LU 6.2 Transports
You can use the MS transport or the high-performance transport for communication between two
NetView programs, including two NetView programs on a single system. You can create LU 6.2
applications for both NetView programs and send MSUs between them. Or you can write an application
for one of the NetView programs and communicate with an application that is supplied with the NetView
program on the other. For example, the NetView program supplies an NVAUTO application that can
receive MSUs and pass them directly to the automation table.
Priorities
The dispatching priority of the NetView subsystem address space must be high.
The dispatching priority of a NetView application address space that performs system automation must
be below that of the subsystem address space but higher than that of any address space it automates,
except the resource management facility (RMF) and generalized trace facility (GTF) address spaces.
Set the dispatching priority of a NetView application address space that performs network automation
and network management functions below the priority of the VTAM program. Also, balance the priority of
the NetView application against application priorities.
These are methods that you can use to tune your automation and optimize performance:
• Log analysis program
• Multitasking and task priorities
• Automation table processing
• Hardware monitor alerts
For other methods, refer to the IBM Z NetView Tuning Guide.
You can generate an automation table usage report by using the AUTOCNT command. This report
provides information about compare items and the level of automation taking place in your system. See
“Automation-Table Usage Reports” on page 211 for more information.
You can also use the TASKMON and TASKUTIL commands to analyze automation workloads. Refer to the
IBM Z NetView Tuning Guide for more information.
The example in Figure 168 on page 400 shows only the first 10 messages that were found in the log in the
first time interval. As you can see, 27876 messages were found between 01:01:17 and 02:01:16 with 63
different message IDs. At that rate, the operator monitoring the extended multiple console support
(EMCS) console sees an average of 7.74 messages per second displayed on the console.
By looking at the cumulative percentage, you can see that the first 10 messages listed in the report
account for 93.32% of the messages written to the log in that period, which is not unusual. Generally, the
10 most frequently generated messages account for at least 80% of the messages in the log.
Upon analyzing the messages in the report, you can identify messages that are not really necessary for an
operator to see to manage the environment. As a result, you might choose to suppress those messages
from the operator's view. If you choose to suppress several of the messages, you might want to rerun the
program with filtering on. By listing the messages that you want to have filtered in the filter file, you can
simulate what happens if the messages are actually suppressed.
In Figure 169 on page 400, the filter file contains five messages to be filtered. You can use a message
processing facility (MPF) file as filtering input, because the format of the filter file can accommodate the
MPF file format.
$HAP250
$HAP530
$HAP540
$HAP100
$HAP373
The resulting report starts with a listing similar to the one in Figure 168 on page 400, but with filtering set
to ON. In addition, a second listing gives information about the messages in the log as if the filtered
messages did not exist. Figure 170 on page 401 shows the second listing.
With filtering, only 8985 messages were found between 01:01:17 and 02:01:16 with 58 unique message
IDs. By filtering five of the 63 unique message IDs in the file, you reduce the number of messages
displayed to the operator by 68%, making the average number of messages that an operator sees each
second drop from 7.74 to 2.50.
Analyzing messages that are being written to the log must be an ongoing process. Analyze different time
intervals. For example, if you have batch job streams running on second shift, a different set of messages
might be generated for that shift than are generated on first shift. Because your system and network are
constantly changing, so are the messages that you receive.
Resource Controls
NetView provides ways to measure automation resource usage and enables you to control the order of
processing, reduce backlogs, and optimize performance. Specific limits can be set for any task using the
DEFAULTS and OVERRIDE commands. The command parameters interact. Therefore, you might want to
change the parameters in the following order: CPU, storage, message queuing, and I/O. Monitor the
effects on all values after each change.
Attention: Excessively low values can degrade system performance.
CPU Usage
Use the MAXCPU parameter of the DEFAULTS and OVERRIDE commands to limit the CPU usage of a task.
The TASKMON command and SMF data can be used to analyze CPU usage on a task-by-task basis.
Limiting the CPU usage for a task might result in better performance than altering the dispatch priority
because limiting usage affects how tasks interleave work, instead of which task uses the CPU.
Message Queuing
The DEFAULTS and OVERRIDE commands have MAXMQIN and MAXMQOUT parameters that control the
rate of message flow between tasks. You adjust flow rates to avoid excessive storage use or queuing
delays caused by message traffic. Use the TASKMON command and SMF data to analyze message flow
rates on a task-by-task basis.
The MAXMQOUT parameter controls how fast (KB per minute) a task can send data using the NetView
message queuing service. Use the MAXMQOUT parameter for tasks that primarily send data (for example,
CNMCSSIR).
The MAXMQIN parameter controls how fast (KB per minute) all tasks can send data to another task. Use
the MAXMQIN setting for tasks that primarily receive data (for example, DSILOG).
Input/Output Usage
The DEFAULTS and OVERRIDE commands have a MAXIO parameter to control how fast (I/Os per minute)
a task can run. The TASKMON command and SMF data can be used to analyze I/O rates to determine
which tasks are heavy I/O users.
The use of LOADCL might help decrease the I/O rate.
Task Priority
Task priority in the NetView program is:
PPT
The primary program operator interface task (PPT) has the highest priority of all tasks (including data
services tasks (DSTs) initialized at priority 1).
OSTs and NNTs
Lower in priority than the PPT, but higher in priority than autotasks, operator station tasks (OSTs) and
NetView-NetView tasks (NNTs) have a relative priority of 4.
Autotasks
Lower in priority than PPT and OST/NNTs, autotasks have a relative priority of 5.
DSTs
Although DSTs are not a direct part of automation, they can influence automation performance,
depending on their level of priority. Priorities for DSTs are specified in the CNMSTYLE member or by
the START command. Information about the CNMSTYLE member can be found in IBM Z NetView
Installation: Getting Started.
If high-priority automation procedures do not contain commands that the PPT cannot run, you can run
these procedures under the PPT. However, you must run most automation procedures under an autotask.
When invoking a procedure from the automation table, you can use the ROUTE keyword on the EXEC
action to specify the executing task.
Automation-Table Processing
Careful design of your automation table can yield substantial savings of processing time, because the
NetView program periodically checks the table if you receive a large number of messages and MSUs.
“Design Guidelines for Automation Tables” on page 204 describes a number of principles for good design
of automation tables. This section summarizes the principles that directly affect processing efficiency:
• Use the message processing facility of your operating system to suppress as many messages as
possible before they reach the automation table.
• Use BEGIN-END sections to structure your table and reduce the number of comparisons required for
each message or MSU.
• Order the BEGIN-END sections according to frequency. Place the sections that handle frequently
received data at the beginning of the automation table.
• Order statements within each BEGIN-END section according to frequency. Place the statements that
handle frequently received data at the beginning of the section.
• For frequently received data that you do not automate, you can stop the NetView program from
processing the whole table by placing a statement at the beginning of the table that specifies no action.
For example, if you do not automate commands issued at a NetView terminal, you can add the
statement in Figure 171 on page 403 at the top of your table.
Test the automation table thoroughly before putting it into production to ensure that it functions properly.
To test an automation table, generate the messages and MSUs that you expect the table to handle and
determine that automation produces the correct response to each message and MSU.
To test the automation table:
• Use the AUTOTEST and AUTOCNT commands to test the effects of messages and MSUs on an
automation table.
• Set up automation procedures in a test environment that duplicates the production environment.
• Introduce automation incrementally, on a production system, and ensure that automation procedures
are running after each step.
Note:
1. The AUTOTEST and AUTOCNT commands can test only one automation table at a time. This
automation table can include additional members through the use of the %INCLUDE statement.
2. You can use the AUTOMAN command to manage multiple automation tables. It also provides
additional diagnostic capabilities. For more information, see “Managing Multiple Automation Tables”
on page 220.
The following topics describe these methods and diagnostic procedures for the automation table.
AUTOTEST MEMBER=TESTTBL,LISTING=TESTLST,SOURCE=PARALLEL,
REPORT=TESTRPT
This command starts the testing of automation table TESTTBL. An automation testing report
(TESTRPT) is generated. A new set of statistics for automation table TESTTBL is kept.
2. Reset the active table counters to match the table being tested:
AUTOCNT RESET
3. Allow the test to run for a period of time as messages and MSUs are processed by both automation
tables.
AUTOCNT REPORT=BOTH,FILE=PRODTBL,STATS=DETAIL
AUTOCNT REPORT=BOTH,FILE=TESTTBL,TEST,STATS=DETAIL
5. Examine the results at any time. To reset the counters and continue automation table testing, enter:
AUTOCNT RESET
AUTOCNT RESET,TEST
6. Compare the output generated by the AUTOCNT and AUTOTEST commands to determine whether
automation table processing was satisfactory.
Note: Some messages and alerts can be included in the test table count that are not included in the
active table count because of incoming traffic. This is because both tables not being closed at the
same instant.
7. Examine the automation table testing report to verify that the table logic is correct. Verify that key
messages and alerts that arrived during testing were processed correctly (matched on the correct
automation table statement). For an example of the testing report, see “Sample Report for the
AUTOTEST Command” on page 407.
8. If the test was satisfactory, activate the test automation table using the AUTOTBL command. If the
test was not satisfactory, change the test automation table and rerun the test against the recorded
AIFRs. This procedure is described in the following topic.
AUTOTEST RECORD=TESTRECS
AUTOTEST RECORD=OFF
You can modify the file containing the recorded AIFRs by deleting AIFRs that are not to be used for
testing. To delete an AIFR from the file, delete the line beginning !!------------ and subsequent lines
up to but not including the next !!------------ line.
1. Locate the AIFR to be deleted in the file. Below the AIFR in the file is a separator line beginning
!!------------
2. Delete the AIFR data lines and the separator line following the AIFR.
After saving the recorded AIFR file, you can change the security key on the first line of the recorded file
from S> to S<. This prevents subsequent AUTOTEST commands from overwriting the file. The AUTOTEST
command requires a security key of S> or S< to be present in the first record of a file to be used as a
source file for the command.
To start automation table testing using recorded AIFRs:
1. Reset the test automation table counters and begin gathering statistics:
AUTOCNT RESET,TEST
3. Discontinue gathering statistics for the test automation table when message BNH382I is displayed,
indicating end-of-file on the source data set:
AUTOCNT REPORT=BOTH,FILE=TESTTBL,TEST
AUTOCNT RESET,TEST
4. Analyze the reports and statistics to determine whether the automation table processing was
satisfactory. Also, examine the automation table testing report to verify that the table logic is correct.
If satisfactory, activate the new automation table using the AUTOTBL command. If not satisfactory,
change the automation table and repeat this process until the results are satisfactory.
Use recorded AIFRs to compare processing between two automation tables. For example, to compare
processing between TESTTBL1 and TESTTBL2:
1. Test automation table TESTTBL1 using the recorded AIFRs in the previous example:
AUTOTEST MEMBER=TESTTBL1,LISTING=LIST1,SOURCE=TESTRECS,
REPORT=TESTRPT1
2. Test automation table TESTTBL2 when message BNH382I is displayed, indicating that testing of
TESTTBL1 has completed, begin:
AUTOTEST MEMBER=TESTTBL2,LISTING=LIST2,SOURCE=TESTRECS,
REPORT=TESTRPT2
3. Compare the reports found in TESTRPT1 and TESTRPT2 when message BNH382I is displayed,
indicating that testing of TESTTBL2 has completed.
4. Examine the automation table testing report to verify that the table logic is correct.
The AUTOTEST command can be called via the NetView REST Server to record a message from Canzlog
and to test an automation table statement. To configure where the AUTOTEST command will save the
results of testing the automation table statement, see AUTOTEST.HLQ in the IBM Z NetView
Administration Reference book.
R> 1
>> Automation table test of member DSIPARM.TESTTBL1 Listing: LIST1
>> Time: 04/06/19 08:54:46 Requesting operator: OPER1 Source: TESTRECS
LIST ''
Matches: 0 Comparisons: 1
Matches: 0 Comparisons: 1
Matches: 0 Comparisons: 1
Matches: 0 Comparisons: 1
Matches: 0 Comparisons: 1
Matches: 0 Comparisons: 1
Matches: 0 Comparisons: 1
Matches: 0 Comparisons: 1
Matches: 0 Comparisons: 1
IP ADDRESS: N/A
Matches: 0 Comparisons: 1
Matches: 0 Comparisons: 1
DOMAIN LIST: NTVB4 (I) CNM02 (I) CNM99 (I) B01NV (I)
Matches: 0 Comparisons: 1
Matches: 0 Comparisons: 1
Matches: 0 Comparisons: 1
LIST KKK
Matches: 3 Comparisons: 7 2
Match Location Location Type Member
----- ---------------- ---------------- --------
01. 00120020 Sequence Number TESTTBL1
02. 2 Statement Number TESTTBL1
03. MYLABEL1 Label TESTTBL1
LIST ABND
Matches: 0 Comparisons: 1
Matches: 3 Comparisons: 7
Match Location Location Type Member
----- ---------------- ---------------- --------
01. 00120020 Sequence Number TESTTBL1
02. 2 Statement Number TESTTBL1
03. MYLABEL1 Label TESTTBL1
MSG ALL HI
Matches: 0 Comparisons: 1
Matches: 1 Comparisons: 7
Match Location Location Type Member
----- ---------------- ---------------- --------
01. 00120020 Sequence Number TESTTBL1
Matches: 2 Comparisons: 3
Match Location Location Type Member
----- ---------------- ---------------- --------
01. 00120020 Sequence Number TESTTBL1
02. 00160020 Sequence Number TESTTBL1
Matches: 2 Comparisons: 3
Match Location Location Type Member
----- ---------------- ---------------- --------
01. 00120020 Sequence Number TESTTBL1
02. 00160020 Sequence Number TESTTBL1
Matches: 2 Comparisons: 3
Match Location Location Type Member
----- ---------------- ---------------- --------
01. 00120020 Sequence Number TESTTBL1
02. 00160020 Sequence Number TESTTBL1
Matches: 2 Comparisons: 3
Match Location Location Type Member
DATE
Matches: 0 Comparisons: 1
Matches: 0 Comparisons: 1
AUTOTEST OFF
Matches: 0 Comparisons: 1
Matches: 0 Comparisons: 1
Matches: 0 Comparisons: 1
AUTOTEST RECORD=OFF
Matches: 0 Comparisons: 1
Using Applications
If, for example, you want to automate a payroll application, you can install a test version of the payroll
application and structure the input data to generate the messages and MSUs that you want to automate.
Then run the application to generate the messages and MSUs. Observe and verify the results. If you do
not get the expected results, make the necessary corrections and repeat the test.
An advantage of this method is that the messages and MSUs come from the actual application and, if you
choose your test cases carefully, are very similar to the messages you receive in production. However,
installing test versions of applications and creating test cases might be expensive because of the effort,
machine time, and other resources required. The expense can be lower if your application developers
already have test versions and test cases that you can use.
Using a Simulator
For simple automation, it might be easier to write a simulator program. A simulator can read a file of
required messages and issue them. A simulator can also create MSUs and pass them to the automation
table with the assembler DSIAUTO macro or the PL/I and C CNMAUTO service routine. You can then
compare the result with the expected result ( for example, was the proper command or reply given?) and,
if required, make corrections.
MSU Simulation
You can simulate MSUs by using the assembler, PL/I, and C interfaces to the automation table. In
assembler, the DSIAUTO macro passes an MSU through automation table processing. The CNMAUTO
service routine provides the equivalent function in PL/I and C.
One method of creating an MSU to pass to the automation table is to use an MSU that you have previously
captured and stored. You can have an automation table entry that selects MSUs and passes them to a
command procedure. The command procedure can save the buffer in a file for later use. You can write a
second command procedure to retrieve the saved buffer, reconstitute the MSU, and pass it to automation.
Another method of creating an MSU for test purposes is to manually compose an MSU data field. The
format of the MSU is available in System Network Architecture Formats, or by basing your MSU on one that
you have already received. You can then pass the MSU data field to the automation table. Use your MSU
to test MSUSEG-based statements in the automation table.
For this method to work correctly, it is important to know how many automated messages and MSUs
should have matched these statements during the time that usage statistics were being taken. When the
statements have been verified, you can uncomment the actions and reactivate the automation table.
The REXX command list $HASP098 is shown in Figure 173 on page 413. Note that, for test mode, a
message is sent to the operator (and to the system log) indicating the action that would have occurred if
the TEST common global variable were not set to YES. You can use a test-case analysis tool to extract the
message from the log and compare your actual results to your expected results.
Using Logs
The MVS system log is mapped by the IHAHCLOG macro in your SYS1.MACLIB data set. In the IHAHCLOG
macro, an 8-byte field called HCLREQFL contains installation exit and message processing facility (MPF)
request flags. Bit 10 of the suppression flag (bytes 7 and 8) indicates whether MVS requested automation
for the message. You normally set this bit by having the MPF entry for that message specify AUTO(YES) or
by having an MPF .DEFAULT or .NO_ENTRY statement that applies to that message specify AUTO(YES).
You define MPF entries in the MPFLSTxx member of SYS1.PARMLIB. The NetView program processes the
message only if the automation-requested flag is on.
If a message is not being automated, one of the first places to look is in the system log to ensure that the
automation-requested flag is on. Bit 1 indicates whether MPF suppressed a message from display. This
flag is of interest when you are trying to determine how effective your message suppression is.
Every time the automation table generates a command, the NetView program places a CNM493I message
in the network log, unless message logging has been prevented using the DEFAULTS command, the
CNM493I automation table action, or the OVERRIDE command. A key parameter in the message is the
sequence number, which is taken from positions 73–80 of the automation table statement. So that the
CNM493I message has value to you, ensure that your automation table entries have sequence numbers,
For each message that is processed without finding a match in the automation table, LOGSEQ writes a
record to the sequential log file indicating that the message was not automated. You can then analyze the
sequential log to see if messages that should be automated are not being automated. You can also use
this technique for MSUs. Note, however, that this technique assumes that you allow unautomated
messages and MSUs, and no others, to reach the bottom of your table. This situation is not suitable for all
tables.
You can also use the same technique in BEGIN-END sections to determine whether messages or MSUs
are being automated as intended. This technique can help you determine whether you need to add
additional statements to the BEGIN-END section.
You can use this technique with condition items other than MSGID to obtain other information about
unautomated messages and MSUs.
When message DSI002I is issued for a command that is not valid (SHORTCMD) and is processed by the
preceding automation table segment, the following messages are produced:
SHORTCMD 1
BNH370I PASS TRACE MAINTABL INCLTABL LABEL1 DSI002_IMMED_TRC 2
BNH370I PASS MSGID MAINTABL INCLTABL LABEL2 DSI002_IMMED_TRC 3
BNH370I PASS TOKEN MAINTABL INCLTABL LABEL2 DSI002_IMMED_TRC 4
BNH370I PASS AND MAINTABL INCLTABL LABEL2 DSI002_IMMED_TRC 5
BNH370I FAIL HDRMTYPE MAINTABL INCLTABL LABEL2 DSI002_IMMED_TRC 6
BNH370I FAIL AND MAINTABL INCLTABL LABEL2 DSI002_IMMED_TRC 7
BNH370I FAIL MSGID MAINTABL INCLTABL LABEL3 DSI002_IMMED_TRC 8
DSI002I INVALID COMMAND: 'SHORTCMD' 9
BNH370I messages indicate the tracing results for trace tag DSI002_IMMED_TRC, which was specified in
the TRACE action in the preceding automation table segment. The individual messages are explained as
follows:
Key
Explanation
1
The command SHORTCMD is entered.
2
The TRACE action in the LABEL1 statement ran successfully because the DSI002I message produced
matched the conditions for this statement. This means tracing for this message is now in effect as it
continues processing through the automation tables.
3
The MSGID conditional matches in the LABEL2 statement. This is indicated by PASS MSGID.
4
The TOKEN conditional (used to place the command name that is not valid into a variable) matches in
the LABEL2 statement. This is indicated by PASS TOKEN.
5
The logical AND that joins the MSGID and TOKEN conditionals is successful in the LABEL2 statement.
This is indicated by PASS AND. The logical AND operator is successful because its two operands
(MSGID and TOKEN) were successful.
This chapter describes logging, which you can do at the system, network, or user level. The topics are:
• Considerations for logging
• Different kinds of logs
• Logging capabilities provided by the NetView program
• Differences between data in the MVS system log and data in the network log
Logging Considerations
Data that is to be recorded is usually in message format. However, the data can be commands,
programmed data, or other information, depending on the purpose of the log in your particular
environment. Some common uses of logs are:
• To provide an audit trail of events that have occurred in the system. Audit trails can be useful for
tracking the automation process or when an operational problem occurs. In those circumstances, all
information must be relevant, readable, and stored in a usable format. An audit trail is not considered a
trace. For more information about using logs to help with problem determination, see “Using Logs” on
page 414.
• To report on the operational characteristics of the system. For example, management might want a
report on the effectiveness of automation in your system. Such data can be compared to data collected
when automation was not available.
In all cases, the log is only as good as the data put into it. You have considerable control over the data
that is kept and what logs it is written to. Therefore, you must decide on the logging strategy best suited
for your environment. Data that is not meaningful should not go into the log. Keeping only the data that is
useful ensures that the log is readable and also minimizes the performance overhead of logging.
The NetView program writes the CNM493I message to the network log each time a successful match in
the automation table results in a command or command procedure being scheduled. You can prevent
logging of this message with the DEFAULTS command, the CNM493I automation table action, or the
OVERRIDE command.
Refer to the IBM Z NetView Tuning Guide for guidelines on when to prevent the logging of message
CNM493I. Message CNM493I has the format shown in Figure 176 on page 419.
In Figure 176 on page 419, member is the automation table member for the statement that scheduled the
command or command procedure, seqnum is the sequence number of the statement (or (NO SEQ), if the
statement has no sequence number), and commandtext is the command or command procedure
scheduled, including any parameters. The labgrp value is one of the following:
1. The LABEL, ENDLABEL or GROUP name specified on the statement. If none was specified, then:
2. (AUTOMATED MSU) if an MSU was automated rather than a message with readable text, or:
3. The message ID of the automated message following MSGID= , or:
4. (NO MSGID) if none of the previous values apply.
You can use message CNM493I to analyze automation use and as an audit trail to determine if your
automation is processing as intended. Message CNM493I indicates only that the command or command
procedure was scheduled, not that it was processed. If the task to which the command or command
procedure was routed is not active, the command or command procedure is not processed and message
Network Log
NetView messages are written to the network log as a default. However, unsolicited messages received
from the MVS subsystem interface that are not given to a task with ASSIGN and have no automation table
entry are not written to the network log.
Use the VTAM start parameter PPOLOG=YES if you plan to record VTAM messages in the network log.
This technique ensures that all VTAM commands, except START and HALT, entered at an extended
multiple console support (EMCS) console and all VTAM responses are recorded in the network log,
regardless of the DEFAULTS and OVERRIDE specifications for the task that started the subsystem
interface router task.
The network log task (DSILOG) must be active before you can log messages to the network log. The
NetView subsystem address space must be active to receive system messages before system messages
can be recorded in the network log.
You can use the NetView BROWSE command to view the network log. The commands available through
the NetView BROWSE command are similar to those of the ISPF BROWSE command. BROWSE cannot be
used from an EMCS console associated with an autotask or by a NetView-NetView task (NNT).
The network log function buffers messages before actually writing them to the log. Using default
processing, the NetView program writes to the network log when the buffer is full. With an initialization
option, you can use deferred write (DFR) instead, but it makes no significant difference because network
log I/O is sequential and there is no insert or delete processing.
A job entry subsystem 3 (JES3) complex can consist of several channel-to-channel (CTC) connected
processors that appear to the operator as a single system. Operational control of the JES3 complex is
performed by one processor, the global processor. The global processor is a central point for entry of
jobs, control of resources needed by jobs, and distribution of work to processors in the complex. If the
complex consists of more than one processor, the other processors are called local processors.
Because of the number of processors in a complex, operational control can be a demanding task. The
complex is operated from consoles attached to the global processor, and the messages from all
processors appear on those consoles. System logging is also done at the global processor. Operator
commands that control the processors in the complex are issued from the consoles connected to the
global processor.
The global processor must be the focal point of automation. The NetView program must run on that
processor. Messages from all processors in the JES3 complex appear on the subsystem interface of the
global processor. Commands can be sent to all processors from the global processor. Therefore, it is
possible to automate the JES3 complex by installing the NetView program only on the global processor.
However, also consider installing the NetView program on local processors to automate a recovery
procedure.
If operational tasks are automated, it might not be necessary to maintain the same structure of console
usage. Several functions can be consolidated on the same console if the message traffic is reduced by
MPF and automated actions.
This chapter describes an architecture in which SNMP traps are turned into SNMP trap automation CP-
MSUs that are then passed to NetView automation.
Whenever a complete SNMP trap is received, whether over Transmission Control Protocol (TCP) or User
Datagram Protocol (UDP), an SNMP trap automation task builds a CP-MSU and passes it to NetView
automation. Within the CP-MSU are GDS variables containing data from the trap.
where
ipAddress
Specify the IP address of a source of SNMPv3 traps.
port
Specify a valid port number, in the range 1 - 65535. The port number is not currently used in the
decryption and authentication process.
protocol
Specify a valid protocol (transport method), either TCP or UDP, The protocol is not currently used in
the decryption and authentication process
snmpVer
Specify the SNMP version. You must specify a value of snmpv3 for this parameter.
userName
Security name (user name in the SNMPv3 user-based security model being supported). The name
may be from 1 to 32 characters, inclusive, in length.
passPhrase
A password used to generate authentication and decryption (privacy) keys for the username given
above. A hyphen (–) can be specified if the key(s) are provided in subsequent parameters.
Otherwise, the password can be from 8 to 64 characters, inclusive, in length. If a password is
specified, then any keys provided in subsequent parameters are ignored.
This would be an entry for SNMPv3 traps originating from IP address 10.42.44.25 (currently applicable
to both TCP and UDP and any origin port) and containing the user name adam in the message security
parameters. The phrase adampassword is the pass phrase that the SNMP trap automation task uses to
generate non-localized keys that are then used to authenticate and decrypt the trap.
• Example 2:
Note: Because of space limitations in this text, this example extends over more than a single line;
however, it should be construed as a single line.
This would be an entry for SNMPv3 traps originating from IP address 10.42.44.25 (currently applicable
to both TCP and UDP and any origin port) and containing the user name usermd5 in the message
security parameters. Here the keys required for authentication and decryption were provided, instead of
a pass phrase. Notice that the keys are character representations of hexadecimal data, 16 bytes long,
because HMAC-MD5 is chosen as the DES authentication algorithm.
This would be an entry for SNMPv3 traps originating from IP address 10.42.44.25 (currently applicable
to both TCP and UDP and any origin port) and containing the user name sha in the message security
parameters. Here the keys required for authentication and decryption were provided, instead of a pass
phrase. Notice that the keys are character representations of hexadecimal data, 16 bytes long, because
HMAC-SHA is chosen as the AES128 authentication algorithm.
There are additional GDS variables within this GDS variable that describe the origin:
The next GDS variable within the CP-MSU includes all other GDS variables with data extracted from the
trap. The GDS variable key depends on the type of SNMP trap:
Table 20. GDS variables that can be created within an SNMP trap automation CP-MSU
Applicable SNMP trap GDS
Key Description variables
FF00 SNMP version, integer data, always present All
FF01 Community name, octet string data FFA4, FFA7 only when an
SNMPv2c trap
FF02 Enterprise object ID, object ID data FFA4
FF03 Agent IP address FFA4
FF04 Generic trap, integer data FFA4
FF05 Specific trap, integer data FFA4
FF06 Timestamp, timeticks data FFA4
FF07 Request ID, integer data FFA7
FF08 Error status, integer data FFA7
FF09 Error index, integer data FFA7
FF0A Message ID, integer data FFA7 only when an SNMPv3 trap
FF0B Message maximum size, integer data FFA7 only when an SNMPv3 trap
FF0C Message flags, octet string data FFA7 only when an SNMPv3 trap
FF0D Message security model, integer data FFA7 only when an SNMPv3 trap
FF0E Message security parameters FFA7 only when an SNMPv3 trap
Note: See additional information about key FF0E in
GDS Variable Notes.
FF0F Context engine ID, octet string data FFA7 only when an SNMPv3 trap
GDS Variable :
1. The message security parameters GDS variable, key X'FF0E', contains 4 other GDS variables, as
follows:
FF1E
Authoritative engine ID, octet string data
FF2E
Authoritative engine boots, integer data
FF3E
Authoritative engine time, integer data
FF4E
User name, octet string data
2. The value GDS variable, key X'FF13', has a format that must communicate the type of data contained
within it. Its format is as follows:
....nnnnFF13tttttttthhhhhhhhhhhh...
where tttttttt is a 4-byte field at the beginning of the data in the GDS variable that communicates the
type of data that follows. The value of this field is essentially the tag data taken from the value within
the BER-encoded trap. The data is placed in the GDS variable subject to the guidelines described
following Table 19 on page 432.
Note:
1. The maximum size of an individual trap that the SNMP trap automation task accepts is 32500 bytes.
2. Because of the formatting conventions that are used and the origin information that is added, it is
possible for an SNMP trap smaller than 32500 bytes to yield a CP-MSU that exceeds the maximum
supported size (32600 bytes) of the CP-MSU. If the size is exceeded, the SNMP trap cannot be
automated.
3. If an SNMPv2c or SNMPv3 trap follows the SNMP architecture, there are two variable bindings
present, one for sysUpTime.0 and one for snmpTrapOID.0. The CP-MSU created by an SNMP trap
automation task for such a trap would have an X'FFA7' GDS variable and two x’FF11’ GDS variables,
each one containing one X'FF12' GDS variable followed by one X'FF13' GDS variable.
For each of the different versions of SNMP traps, here are typical beginnings of SNMP trap automation CP-
MSUs created from them. Note that each GDS variable within the SNMP trap automation CP-MSU begins
This is an example of an SNMPv2c trap. Both SNMP Version SNMPv2c and SNMP Version SNMPv3 use a
GDS variable value X'FFA7'; the last byte of the SNMP Version value (X'01') in this example indicates
SNMP Version SNMPv2c.
This is an example of an SNMPv3 trap. Both SNMP Version SNMPv2c and SNMP Version SNMPv3 use a
GDS variable value X'FFA7'; the last byte of the SNMP Version value (X'03') in this example indicates
SNMP Version SNMPv3.
Within the X'FFF0' GDS variable, note the trap origin information (IP address and port in character forms),
as well as the name of a transport protocol, which can be TCP or UDP, over which the SNMP trap came.
In the SNMP version GDS variable, the value that appears for each SNMP version has been highlighted.
Notice that the SNMP trap major GDS variable keys (X'FFA4' and X'FFA7') have the applicable SNMP trap
constructor tag (X'A4' for SNMPv1 and X'A7' for SNMPv2c and SNMPv3) in the key.
For all types of SNMP traps, if no variable bindings exist in a trap, then no X'FF11' GDS variables are
created in the SNMP trap automation CP-MSU. For each variable binding that does occur, an X'FF11' GDS
variable is built as follows.
With nnnn as the length of the name GDS variable (containing the character representation of the name;
that is, object ID) and mmmm as the length of the value GDS variable (containing a 4-byte value
representing the value’s data type, followed by the value itself), LLLL is the total length of the variable
container, and LLLL = nnnn + mmmm + 4.
*
* Outermost constructor for the trap (tag and length)
*
30820127
* SNMP version (00 = SNMPv1)
020100
* Community name (public)
04067075626C6963
* Trap PDU
A4820118
* Enterprise object ID (1.3.6.1.4.1.12270)
06072B06010401DF6E
* Agent address (10.71.225.20)
40040A47E114
* Generic trap code (6 = enterprise specific)
020106
* Specific trap code (32 in decimal)
020120
* Timeticks
430402A2D49D
* Variable bindings "container"
308200F9
* Variable binding 1
3015
* Variable 1 (1.3.6.1.4.1.12270.200.2.1.1.1)
060D2B06010401DF6E814802010101
* Value 1 (octet string "1493")
040431343933
* Variable binding 2
3019
* Variable 2 (1.3.6.1.4.1.12270.200.2.1.1.2)
060D2B06010401DF6E814802010102
* Value 2 (octet string "/L20/O50")
04082F4C32302F4F3530
* Variable binding 3
3024
* Variable 3 (1.3.6.1.4.1.12270.200.2.1.1.3)
060D2B06010401DF6E814802010103
* Value 3 (octet string "2005-01-10T16:13:00")
0413323030352D30312D31305431363A31333A3030
* Variable binding 4
3014
* Variable 4 (1.3.6.1.4.1.12270.200.2.1.1.4)
060D2B06010401DF6E814802010104
* Value 4 (octet string "I14")
0403493134
* Variable binding 5
3025
* Variable 5 (1.3.6.1.4.1.12270.200.2.1.1.5)
060D2B06010401DF6E814802010105
* Value 5 (octet string "DIGIN ON OCCURRED")
0414444947494E204F4E202020204F43435552524544
* Variable binding 6
3015
* Variable 6 (1.3.6.1.4.1.12270.200.2.1.1.6)
060D2B06010401DF6E814802010106
* Value 6 (octet string "DI=1")
040444493D31
* Variable binding 7
3025
* Variable 7 (1.3.6.1.4.1.12270.200.2.1.1.7)
060D2B06010401DF6E814802010107
* Value 7 (octet string "RC2 Gas Status Man. ")
04145243322047617320537461747573204D616E2E20
* Variable binding 8
3011
* Variable 8 (1.3.6.1.4.1.12270.200.2.1.1.8)
060D2B06010401DF6E814802010108
* Value 8 (NULL)
0500
* Variable binding 9
3011
* Variable 9 (1.3.6.1.4.1.12270.200.2.1.1.9)
Suppose that this trap was sent on behalf of an entity from a TCP client at IP address
3A20:ABCD:70:1AB:10:10:173:7 and port 1038. The SNMP trap automation task that received this trap
would produce an SNMP trap automation CP-MSU like this (GDS variables shown separately and
annotated to show the data from the original trap to which the GDS variables correspond).
*
* Outermost CP-MSU container
*
026D1212
* Trap origin GDS variable
0033FFF0
* Origin IP address GDS variable (“3A20:ABCD:70:1AB:10:10:173:7”)
0020FFF1F3C1F2F07AC1C2C3C47AF7F07AF1C1C27AF1F07AF1F07AF1F7F37AF7
* Origin port (“1038”, character representation of the port number in decimal)
0008FFF2F1F0F3F8
* Transport (“TCP”)
0007FFF3E3C3D7
* SNMP trap GDS variable (for the SNMPv1 trap)
0236FFA4
* SNMP version GDS variable (00 = SNMPv1)
0008FF0000000000
* Community GDS variable (“public”)
000AFF017075626C6963
* Enterprise object ID GDS variable (“1.3.6.1.4.1.12270”,
* notice EBCDIC character
representation)
0015FF02F14BF34BF64BF14BF44BF14BF1F2F2F7F0
* Agent address GDS variable ("10.71.225.20")
0010FF03F1F04BF7F14BF2F2F54BF2F0
* Generic trap GDS variable (enterprise specific trap)
0008FF0400000006
* Specific trap GDS variable (32 in decimal)
0008FF05000000020
* Timestamp GDS variable
0008FF0602A2D49D
* Variable binding GDS variable 1
0031FF11
* Variable name 1 (1.3.6.1.4.1.12270.200.2.1.1.1)
0021FF12F14BF34BF64BF14BF44BF14BF1F2F2F7F04BF2F0F04BF24BF14BF14BF1
* Variable value 1 (00000004 = octet string, data = “1493”,
* notice unchanged ASCII data)
000CFF130000000431343933
* Variable binding GDS variable 2
0035FF11
* Variable name 2 (1.3.6.1.4.1.12270.200.2.1.1.2)
0021FF12F14BF34BF64BF14BF44BF14BF1F2F2F7F04BF2F0F04BF24BF14BF14BF2
* Variable value 2 (00000004 = octet string, data = “/L20/O50”)
0010FF13000000042F4C32302F4F3530
* Variable binding GDS variable 3
0040FF11
* Variable name 3 (1.3.6.1.4.1.12270.200.2.1.1.3)
0021FF12F14BF34BF64BF14BF44BF14BF1F2F2F7F04BF2F0F04BF24BF14BF14BF3
* Variable value 3 (00000004 = octet string, data = “2005-01-10T16:13:00”)
001BFF1300000004323030352D30312D31305431363A31333A3030
* Variable binding GDS variable 4
0030FF11
* Variable name 4 (1.3.6.1.4.1.12270.200.2.1.1.4)
0021FF12F14BF34BF64BF14BF44BF14BF1F2F2F7F04BF2F0F04BF24BF14BF14BF4
* Variable value 4 (00000004 = octet string, data = “I14”)
000BFF1300000004493134
* Variable binding GDS variable 5
0041FF11
* Variable name 5 (1.3.6.1.4.1.12270.200.2.1.1.5)
0021FF12F14BF34BF64BF14BF44BF14BF1F2F2F7F04BF2F0F04BF24BF14BF14BF5
* Variable value 5 (00000004 = octet string, data = “DIGIN ON OCCURRED”)
001CFF1300000004444947494E204F4E202020204F43435552524544
* Variable binding GDS variable 6
0031FF11
* Variable name 6 (1.3.6.1.4.1.12270.200.2.1.1.6)
0021FF12F14BF34BF64BF14BF44BF14BF1F2F2F7F04BF2F0F04BF24BF14BF14BF6
* Variable value 6 (00000004 = octet string, data = “DI=1”)
000CFF130000000444493D31
* Variable binding GDS variable 7
0041FF11
* Variable name 7 (1.3.6.1.4.1.12270.200.2.1.1.7)
Notice that object IDs are presented as EBCDIC character representations of their ASN.1 formats
(decimal sub-identifiers separated by periods). This makes automation tests for them considerably
easier.
This appendix provides a sample of an automation project plan for you to use as a model when you
develop your own plan. The plan given here is only an example; it is not intended to apply to all
environments.
The automation plan follows the four-phase approach used elsewhere in this book. Table 21 on page 439
lists the phases and summarizes the activities involved in each phase. Although the phases are generally
sequential, you might need to start one phase before you complete all parts of the preceding phase. That
is, some tasks within a phase could depend on the completion of a task in a different phase. For example,
you might need to complete the resource-definition task of the design phase (task 2.03) before you can
perform the cost-justification task of the definition phase (task 1.13). Also, install automation on the test
system (task 3.04) before you track and compare performance on the test system (task 2.05).
If you implement automation in stages, rather than all at once, you can perform the tasks in your
automation plan repeatedly throughout the automation process. Experience and data gathered from one
stage can help you improve your plan for the next stage.
An operating environment is dynamic. As you work on your automation plan, your organization might add
new software and hardware to its systems and networks. Be prepared to accommodate the changes.
Allow time in your schedules to analyze changes, to evaluate automation with regard to new products,
and to incorporate new products into the automation process.
If your organization has a thorough set of operating procedures, policies, and reports, you can accomplish
many of the information-gathering tasks simply by collecting existing documentation.
1.02 Hold an orientation Conduct an orientation session with members of the project-definition team.
session.
Educate team members about automated operations.
Establish a reporting process for project status.
Investigate existing automation applications that can be purchased.
1.05 Establish goals for Define measurable long-range and short-range goals.
automation.
Quantify the benefits of automation to the organization.
Set objectives.
1.07 Interview users. Identify the number and operating requirements of users.
Identify operator tasks that users could perform for themselves.
Identify messages that could be distributed to users.
1.08 Establish a change- Establish a group to monitor change in the organization and in the operating
control group. environment.
Establish a reporting procedure for this group.
1.10 Identify the roles of Identify the roles of management in the automated environment.
management in
automation. Define the problem-resolution process for the automated environment.
1.11 Define the roles of Identify the roles of personnel in the automated environment.
personnel in
automation. Identify job descriptions and major tasks for each role.
1.12 Establish education Outline the education needs of personnel for the automated environment.
requirements for
personnel. Establish requirements for personnel training.
1.13 Justify automation. Perform a cost justification for automation, using information gathered by both the
planning team and the design team.
Design
Table 23 on page 442 lists some tasks and subtasks for designing an automation project. For general
information about the project-design phase, see Chapter 4, “Designing an Automation Project,” on page
43.
2.03 Define resources Define resources needed now and in the future:
for automation.
People
Hardware and software products
Facility support
2.04 Approve Review and approve automated procedures before they are placed on a test
procedures before system.
placing them on
the test system.
2.05 Track the Analyze measurements of automation on the test system.
performance of
automation on the Compare the results to measurements obtained in task 1.04.
test system.
2.06 Track the Analyze measurements of automation on production systems.
performance of
automation on Compare the results to measurements obtained before automation.
production
systems.
Implementation
Table 24 on page 442 lists some tasks and subtasks for implementing an automation project. For general
information about the implementation phase, see Chapter 5, “Implementing an Automation Project,” on
page 51.
3.03 Install necessary Install any products required to develop and test automation.
products.
3.04 Perform the Put the implementation plan created by the design team into use.
implementation
plan. Produce automation functions and procedures, following the guidelines
established by the design team.
3.09 Approve the Formally review and approve the automated procedures, based on testing and
procedures. system performance. The group that approves the procedures should contain
members from all of the automation teams.
Production
Table 25 on page 443 lists some tasks and subtasks for the production of an automation project. For
general information about the production phase, see Chapter 5, “Implementing an Automation Project,”
on page 51.
4.03 Migrate automation Migrate automation functions and procedures, such as command lists and
procedures. automation tables, to production systems.
4.04 Tailor the Tailor and test all procedures to meet the requirements of each system. Use the
procedures. AUTOCNT and AUTOTEST commands to generate an automation table usage
report. Use the TASKMON and TASKUTIL commands to monitor task performance
and CPU utilization.
4.05 Install program Install and test any program updates and enhancements to automation products.
updates and
enhancements.
4.06 Tailor the Tailor and test any software or hardware enhancements to meet the requirements
enhancements. of the systems.
4.07 Review the Periodically review automation and implement a plan for teaching operators about
procedures and the automated environment.
train operators.
Compare measurement results to measurements taken before automation.
Planning Charts
You can use the following charts to calculate the time required to complete tasks in each phase of the
plan.
This appendix contains examples of objectives and indicators that you can measure. You can use these
objectives and indicators to estimate the value of automation for comparison with the costs of
automation. You can also use these objectives and indicators to measure the progress of your project.
Table 30 on page 447 presents groups of indicators and measurements under several general objectives,
such as the general objectives of "Improved operator productivity" and "Decreased complexity of
operator tasks". The table includes columns for estimating costs, but you might not be able to assign
costs to some of the indicators and measurements. Also, some of the indicators and measurements
overlap; therefore, you should not try to total all of the costs that you might enter. You should choose
objectives and indicators that relate to your organization's goals.
Note that all listed items may not apply to your system.
Table 30. Indicators and Measurements for Estimating the Value of Automation
Indicator or Measurement Related to a Goal Before Cost After Cost
Automation Automation
This appendix documents information that is diagnostic, modification, and tuning information provided by
the NetView program.
Attention: Do not use this diagnosis, modification, and tuning information as a programming
interface.
Much of automated operations deals with the processing of messages issued by systems and their
applications and subsystems such as IMS, CICS, JES2, and JES3. Similar considerations apply to the way
that commands are issued, whether they are issued from MVS, the NetView program, or other
applications. This appendix describes how messages and commands are handled by the NetView
program using MVS.
Command Flow
Commands issued from a multiple console support console are also broadcast on the subsystem
interface. Commands are handled in a way that is similar to the way messages are handled. The
command is inspected by each of the active subsystems, with the job entry subsystem first, followed by
the others in the order they are specified in the SSNT.
Processing Determination
Each subsystem examines the command and determines whether to process it. For example, JES2
determines whether the first character is a dollar sign ($), assuming a typical use of JES2. If it is, JES2
accepts the command as one to be processed within its address space and passes it on to its command
processor. It also marks the command as having been processed by a subsystem, so that an error
message for an unidentifiable command is not issued.
In a similar way, JES3 looks for an asterisk (*) or an eight (8), and the NetView program, by default, looks
for a percent sign (%). The NetView program, like most subsystems, uses that identifying first character to
distinguish its commands. If you run with two JES subsystems, you can direct commands to each
individually by specifying a different character for each. If you specify the same character for each, both
JES subsystems accept and process the command. The same is true of the NetView program. The
NetView program also checks to see if an automation task (autotask) is in the NetView application
address space associated with the console from which the command is issued. If that association exists,
the command is copied and queued by the NetView subsystem address space. When it is subsequently
dequeued by the NetView application, it is routed to the associated automation task.
Finally, if none of the subsystems have marked the command as having been processed, it is treated as
an MVS command and the appropriate command processor is processed. If one does not exist, an error
message is issued.
NetView Commands Issued with MODIFY (F) Command from an MVS Console
To issue NetView commands from an MVS console using the MODIFY command, an autotask must be
running that was started with both a NetView operator ID and an associated MVS console name.
Interfaces
When the NetView primary program operator interface task (PPT) is active and defined as a VTAM
application with AUTH=PPO, unsolicited VTAM messages are directed to the NetView program across the
VTAM program operator interface (POI). If the POI is not active, unsolicited VTAM messages are issued by
using WTO and are available to the NetView program across the MVS subsystem interface. When NetView
submits commands to the VTAM program across the POI, the responses are correlated with the ID of the
NetView operator that issued the command.
Filters
When the NetView program receives alert data, the hardware monitor filters, set by NetView SRF
commands, determine how that data is to be processed. One filter option can be used to format data from
selected alerts into the text of the NetView BNJ146I message. That message is then subject to all the
usual NetView routing and automation processing.
// EXEC PGM=BNJLINTB
// EXEC PGM=DSIMNT
Console Operations
MVS operator consoles are locally attached, system-allocatable devices, directly allocated to the system
COMMTASK. They are usually 3270 display stations used to display WTO messages from operating
system components, the job entry subsystem, the application subsystems, and the application programs
that run in the system or local complex of systems.
Console operators enter system commands, subsystem commands, and program responses from those
consoles. When the VTAM program is running under MVS, interfaces with the system MODIFY, REPLY,
DISPLAY, VARY, and HALT commands allow system operators to issue those commands to VTAM from
system consoles. VTAM messages are issued as WTO messages when no NetView PPT is available to
receive them.
NetView consoles are 3270 display stations connected to NetView through VTAM logon processing. Using
a NetView console, a network operator can log on using an assigned ID and password or password
phrase. Through the NetView program's use of the VTAM POI, VTAM messages are displayed to network
operators and VTAM commands are received from them. Messages issued from within the NetView
program are displayed and NetView commands are received.
Using MVS Operator Consoles to Issue Commands and Command Lists as Subsystem
Commands
From a system console, the NetView program looks similar to an MVS subsystem. Any NetView command
or command list can be accepted by a NetView subsystem and passed to its associated NetView
application if all of the following conditions are met:
• The subsystem name is defined to MVS.
In SYS1.PARMLIB, a subsystem names table member IEFSSNxx that is referenced in the system
parameter SSN=(xx) contains a definition of valid subsystem names (refer to the MVS library).
• The NetView subsystem is active.
A START command to activate the NetView subsystem is added to SYS1.PARMLIB member COMMNDxx
when the NetView program is installed.
Using MVS Operator Consoles to Issue Commands and Command Lists as MODIFY (F)
Commands
From a system console, the NetView program appears as an MVS subsystem. Any NetView command or
command list can be accepted by a NetView subsystem and passed to its associated NetView application
if an AUTOTASK command has been entered to associate a multiple console support console with the
NetView program.
If a NetView command is issued from a console that has no autotask, an error message is returned from
the NetView subsystem, indicating that the console is not authorized to use the NetView subsystem. An
AUTOTASK statement in the CNMSTYLE member starts an autotask for AUTO2 and an MVS console. Add a
similar statement to the CNMSTYLE member to associate a valid OPID with each MVS console that you
want to issue NetView commands.
Refer to the NetView online help for more information about the AUTOTASK command. Refer to the IBM Z
NetView Installation: Getting Started for more information about the CNMSTYLE member.
M 350,VOL=(SL,VOL001),USE=STORAGE
M 351,VOL=(SL,VOL002)
⋮
With a large number of volumes to mount, the sequence could be very long. However, you can provide a
command list that issues all of the necessary MVS commands from the NetView program. The operator
can then bring the DASD online just by entering the NetView designator character and the name of the
command list.
This appendix documents information that is diagnostic, modification, and tuning information provided by
the NetView program.
Attention: Do not use this diagnosis, modification, and tuning information as a programming
interface.
VTAM messages provide information to the VTAM operator. But message volumes can be high, adversely
affecting system performance and possibly causing an operator to miss a vital piece of information. To
help you control message rates, VTAM offers several message suppression mechanisms. This appendix
describes the VTAM message and command flow, and the message suppression mechanisms.
This appendix documents information that is diagnostic, modification, and tuning information provided by
the NetView program.
Attention: Do not use this diagnosis, modification, and tuning information as a programming
interface.
This appendix contains diagrams and descriptions that show the flow of messages and commands
through the NetView program. The descriptions indicate where each numbered exit (DSIEX01, DSIEX02A,
and so on) occurs and how it is processed in relation to commands. Information on the sequence and
context of message processing is particularly useful when you automate messages using the automation
table, ASSIGN command, and other message processing facilities.
Flow Diagrams
The diagrams in this section illustrate the flow of messages and commands within the NetView product.
The numbered tags in the diagrams correspond to the numbered topics in “Flow Descriptions” on page
472.
Figure 180. Flow Diagram for NetView Command Entry (VTAM Terminal)
Figure 192. Flow Diagram for Solicited and Unsolicited System MVS Extended Console Messages for PPT
AUTOTASK OPID=operid,CONSOLE=name
18 Solicited and Unsolicited System MVS Extended Console Messages for an OST, NNT, or
Autotask
Cause: The NetView program is configured to use EMCS consoles for MVS/ESA system messages. The
OST, NNT, or autotask is configured to receive EMCS console messages.
Originating Task: OST, NNT, or autotask
Process Flow:
1. DSIEX17 is called for both messages and DOMs. If the message or DOM is deleted, no further
processing occurs.
2. DSIPSS is issued for the message or DOM. See “17. OST or NNT DSIPSS” on page 479.
MVS system messages that are received on EMCS consoles in use by NetView tasks (except the
CNMCSSIR task) are considered solicited by the NetView program. Therefore, these messages are not
subject to the ASSIGN command PRI and SEC processing.
If an MVS command is issued from a NetView console and the response is marked AUTO(YES) and
SUP(ALL), the message is automated under the CNMCSSIR task. For a z/OS command that is issued in a
NetView pipeline, the response is returned to the pipe, even if it is suppressed by MPF or z/OS flood
prevention tools. To suppress piped command responses, you can use only the NetView MRT. The
message is treated as an unsolicited MVS system message.
19 Solicited and Unsolicited System MVS Extended Console Messages for the PPT
Cause: The NetView program is configured to use EMCS consoles for MVS/ESA system messages. The
PPT is configured to receive EMCS console messages.
Originating Task: PPT
Process Flow:
1. DSIEX17 is called for both messages and DOMs.
If the message or DOM is deleted, no further processing occurs.
2. DSIPSS is issued for the message or DOM.
See “14. DSIPSS for PPT or NetView Authorized-Receiver Messages” on page 477.
MVS system messages that are received on an EMCS console in use by the PPT are considered solicited
by the NetView program. However, unlike other NetView tasks that receive solicited messages, the PPT
enables ASSIGN command PRI and SEC processing.
This appendix documents information that is diagnostic, modification, and tuning information provided by
the NetView program.
Attention: Do not use this diagnosis, modification, and tuning information as a programming
interface.
This appendix lists the NetView message types, which are arranged in alphabetical order. Message types
apply to commands, messages, and MSUs. To examine a message type in the automation table, use the
HDRMTYPE keyword. Message type is stored in the HDRMTYPE field of the BUFHDR control block.
HDRTYPAC (A)
Is not used in the NetView program for MVS V1R2 and later releases. This message type is replaced
by the automation IFR (HDRMTYPE=HDRTYPEI, IFRCODE=IFRCODAI). You can receive this message
type during a cross-domain session with an earlier release of the NetView program.
HDRTYPDT (D)
Indicates a non-message data type.
HDRTYPEA (T)
Is not used in the NetView program for MVS V1R2 and later releases. Indicates a solicited message
from TCAM in the network communications control facility (NCCF). You might receive this message
type on a cross-domain session with a TCAM NCCF.
HDRTYPEB (?)
Indicates a command or command list buffer that has display and logging suppressed. Used to
suppress display and logging of commands entered with a suppression character as defined in the
CNMSTYLE member. Information about the CNMSTYLE member can be found in IBM Z NetView
Installation: Getting Started. HDRTYPEB is also used to suppress display and logging of command list
statements that are preceded by this same suppression character.
HDRTYPEC (C)
Indicates a command or message from a command list. Becomes HDRTYPEB for suppressed
command list statements.
HDRTYPED (!)
Indicates a message from an immediate command processor. Usually sent to the screen using
DSIPSS TYPE=IMMED. When this type of message is displayed in the immediate message area on the
screen, the HDRMTYPE and DOMAIN name are not displayed. When received cross-domain, this type
of message is in the normal output area, along with its domain name and type prefix. DSIPSS
TYPE=IMMED does not enforce or set HDRTYPED.
HDRTYPEE (E)
Indicates a message from the operating system. This type is not used for title-line mode multiline
write-to-operator (MLWTO), system action, or WTOR messages. See also HDRTYPEK and HDRTYPEY
for other forms of operating system messages.
HDRTYPEF (F)
Indicates a VSAM record. Not displayed on the operator's screen. Used within the data services task
(DST).
HDRTYPEG (G)
Indicates a CNMI record. Not displayed on the operator's screen. Used within the DST.
HDRTYPEI (I)
Indicates an internal function request. This buffer is a formatted interface within and between tasks.
The IFR contains a function number (IFRCODE) that determines the format and function of the buffer.
For more information, refer to IBM Z NetView Programming: Assembler.
The MVS Command Management function is deprecated and is replaced by the MVS Command Revision
function. For additional information, see Chapter 14, “Command Revision Table,” on page 111. The MVS
Command Management function is only supported for migration purposes. For information on migrating
to the MVS Command Revision function, see the IBM Z NetView Installation: Migration Guide.
With MVS Command Management you can examine, modify, or reject most MVS commands. You can
specifically include or exclude commands from processing by command or by console names.
After MVS command management is activated, all MVS commands are passed to the NetView MVS
command exit. Most MVS commands are sent to the NetView program for processing unless they are not
included or specifically excluded. In the NetView program, the CNMEMCXY REXX command list is called
with the MVS command under the DSIMCAOP autotask. You can add logic to this command list to
examine, modify, or reject MVS commands. If an MVS command is not rejected, it is returned to MVS for
processing. RACF checking is performed after the command is processed by the NetView MVS command
exit.
Figure 194 on page 485 shows the logic flow of MVS command management. To enable this command
management requires changes to the MVS and NetView environments.
function.autotask.mvsCmdMgt=operid
If this statement is not included in the CNMSTYLE member, DSIMCAOP is the default operator ID.
2. Protect DSIMCAP, CNMEMCXX, and CNMEMCXY from unauthorized use.
Note: If you are using an SAF product such as RACF for operator definitions and command
authorization, make the equivalent updates to these definitions.
3. Verify that the tower statement in the CNMSTYLE member does not specify an asterisk (*) preceding
the MVScmdMgt tower.
F LLA,REFRESH
.CMD USEREXIT(DSIMCAEX)
SET MPF=xx
SET CNMCAUT=yy
where yy is the suffix of the CNMCAU member in PARMLIB. This also enables the inclusion/exclusion
list in normal mode. If no inclusion/exclusion list is to be used, specify a value of ON for yy.
You can then set the inclusion/exclusion list to test mode by issuing the following command:
SET CNMCAUT=TEST
When your test is successful, issue either of the following commands to reset the test mode:
SET CNMCAUT=yy
SET CNMCAUT=ON
TRACKING.ECHO = Y | N
TRACKING.ECHO = Y
ISSUE.IEE295I = Y | N
ISSUE.IEE295I = Y
These statements can be coded anywhere in the logical PARMLIB member CNMCAUaa.
• A specification of TRACKING.ECHO = Y indicates that additional command echoes are to be logged in
the system log.
• A specification of TRACKING.ECHO = N indicates that additional command echoes are not to be logged
to the system log. Note that if TRACKING.ECHO = N is coded, there is not be an indication in either the
system log or in the NetView log if the command is changed by CNMEMCXY. The command response
can be for an entirely different command than the one that is entered originally. If you want to know
when the command is changed by CNMEMCXY, specify TRACKING.ECHO = Y or else add code to
CNMEMCXY to log the command before and after it is changed.
• A specification of ISSUE.IEE295I = Y indicates that the IEE295I messages are to be logged in the
system log.
• A specification of TRACKING.ECHO = N indicates that the IEE295I messages are not to be logged to
the system log.
If multiple TRACKING.ECHO or ISSUE.IEE295I statements are specified in the CNMCAUaa member, the
last valid value is used. If no statement is coded or if a statement is not valid, the default is used.
Example: Assume that the MVS command D T is entered. Assume further that the command is not
excluded and neither TRACKING.ECHO or ISSUE.IEE295I is coded (or that these statements have been
specifically coded with a value of Y). These statements are logged in the system log:
1. D T
2. D T ' '
3. IEE295I COMMAND CHANGED BY EXIT 314
TRACKING.ECHO = N
ISSUE.IEE295I = Y
1. D T
2. IEE295I COMMAND CHANGED BY EXIT 423
3. ORIGINAL: D T ' '
4. MODIFIED: D T
5. IEE136I LOCAL: TIME=14.39.44 DATE=2009.193 UTC: TIME = 18.34.45 DATE=2009.103
TRACKING.ECHO = Y
ISSUE.IEE295I = N
1. D T
2. IEE295I COMMAND CHANGED BY EXIT 423
3. ORIGINAL: D T ' '
4. MODIFIED: D T
5. IEE136I LOCAL: TIME=14.39.44 DATE=2009.193 UTC: TIME = 18.34.45 DATE=2009.103
TRACKING.ECHO = N
ISSUE.IEE295I = N
1. D T
2. IEE136I LOCAL: TIME=14.39.44 DATE=2009.193 UTC: TIME = 18.34.45 DATE=2009.103
SET CNMCAUT=aa
TRACKING.ECHO = Y
ISSUE.IEE295I = Y
SET CNMCAUT=OFF
SET CNMCAUT=TEST
DSNAMSTR
DSNAIRLM
DSNADBM1
DSNADIST
DSNASPAS
• If you are using a COMMAND EXCLUSION LIST, add all internally issued MQ START commands to this
list. To see what these commands look like in your environment, look in your SYSLOG right after the
MQM1 START OMGF command has been issued. MQ internally issues a number of subsequent START
commands to start-up its subordinate address spaces. It is these commands that you want to add to
the command exclusion list. At the present time, an MQ subsystem consists of at least two address
spaces with names like:
MQM1MSTR
MQM1CHIN
• For additional information see “General Processing of CONSOLE and COMMAND Inclusion and
Exclusion Lists” on page 494.
Usage Notes for COMMAND INCLUSION LIST:
• If you are using a COMMAND INCLUSION LIST, do not add internally issued DB2 START commands to
this list.
• If you are using a COMMAND INCLUSION LIST, do not add internally issued MQ START commands to
this list.
• For additional information see “General Processing of CONSOLE and COMMAND Inclusion and
Exclusion Lists” on page 494.
START *
in which case the START command, regardless of additional keywords and values is included (or
excluded).
Order of matching
This is the sequence in which consoles and commands are matched to any of the lists described. Once a
match is found in any of these sequential steps, the matching process completes and further matching
steps end.
1. CONSOLE EXCLUSION LIST (or CONSOLE INCLUSION LIST)
2. COMMAND EXCLUSION LIST (or COMMAND INCLUSION LIST)
3. CMDTEXT EXCLUSION LIST (or CMDTEXT INCLUSION LIST)
However, within each logical grouping, follow these guidelines:
• Do not specify both a CONSOLE EXCLUSION LIST and a CONSOLE INCLUSION LIST.
• Do not specify both a COMMAND EXCLUSION LIST and a COMMAND INCLUSION LIST.
• Do not specify both a CMDTEXT EXCLUSION LIST and a CMDTEXT INCLUSION LIST.
SET MPF=xx
.CMD USEREXIT(DSIMCAEX)
DISPLAY CNMCAUT or
D CNMCAUT
D CNMCAUT=TABLE or
DISPLAY CNMCAUT=TABLE
SET CNMCAUT=OFF
This does not change the TRACKING.ECHO or the ISSUE.IEE295I setting. When the command
CNMCAUT=ON is issued, the CNMCAUxx PARMLIB member is active again.
SET CNMCAUT=DELETE
This stops MVS commands from being sent to the NetView program. NetView MVS Command Exit still
gets control for every MVS command. Deleting the CNMCAUaa member also changes the setting of
TRACKING.ECHO to Y and also changes the setting of ISSUE.IEE295I to Y. These are the default values.
SET MPF=yy
The yy is a MPFLSTyy member which does not have the .CMD USEREXIT(DSIMCAEX) statement. Or you
can enter a SET MPF=NO command to stop MPF processing.
Note: Use SET MPF=NO only as a last resort because it stops all MPF processing.
SET MPF=NO
SET MPF=yy
where yy is the suffix of a MPFLSTyy member that contains the same statements as MPFLSTxx, except the
CMD USEREXIT (DSIMCAEX) statement.
MVS Command Management is made unavailable whenever a SET MPF=xx is entered, even though the
MPFLISTxx member defines DSIMCAEX as an MVS command exit. In order to restart MVS Command
Management, enter SET=CNMCAUT=ON or SET CNMCAUT=xx.
COMMAND LIST
EXCLUSION INCLUSION
match no match match no match
Restrictions
• Using MVS Command Management to pass START commands to the NetView program for processing
might cause problems for some uses of the START command because the return codes (R15) and ASID
(R0) that are returned by MGCRE are not accurate as the result of using this function.
Note: This is known to cause a problem for START commands that are internally issued by DB2 and MQ
Series.
Exclude internally issued DB2 and MQ START commands from any command automation processing,
either by adding these commands to a command exclusion list or by specifically keeping them out of a
command inclusion list.
• Whenever a TSO end-user logs on, MVS Command Management specifically excludes LOGON
commands that are issued internally.
The LOGON command also returns an ASID and return code (like the START command).
• MVS Command Management specifically excludes MOUNT commands that are issued by operators to
manually request a tape mount.
The MOUNT command also returns an ASID and return code (like the START command).
• MVS Command Management specifically excludes various K (CONTROL) commands that are issued by
operators to control real extended multiple console support (EMCS) consoles.
The K command processor makes assumptions that are not compatible with the command automation
code.
• Strings to the right of an equal sign (=) in REXX cannot exceed 250 characters.
Command text is passed into the REXX exec CNMEMCXY in printable hexadecimal form (to prevent
REXX from parsing the command). Only commands of 123 characters or less can be processed (4
characters are used to convey the command length in printable hexadecimal form).
Note: Do not code wait processing in CNMEMCXY because that can delay the handling of MVS
commands, which remain queued until the wait ends.
Wait processing, in this case, includes REXX and PIPE waits, WTORs, and Parse Pull types of
commands.
• Because of the current mechanism that is used to "tag" commands so that they are processed only
once, the maximum command length that can be handled is further reduced to 122 characters.
The only commands that are known to approach these limits are internally issued SEND commands that
are used to notify TSO end users when jobs have complete or NJE file transmissions have occurred.
These commands are currently exempted from processing by use of a console exclusion list specifying
a console name of INTERNAL and INSTREAM.
Function.autotask.mvsAuto=opid
Ensure that this is the only task that can be permitted to issue DSIMCAP, CNMEMCXX, or CNMEMCXY.
DSIMCAOP or the defined autotask used by MVS Command Management Processing must be protected
so that other NetView operators cannot send commands to the autotask for execution if
AUTHCHK=TARGETID is used.
The NetView program includes a set of samples that you can use to get started with automated
operations. These samples are referred to as the sample set for automation. The sample set for
automation is designed to show examples of automation techniques; it is not intended to be a drop-in
solution to automation.
The sample set for automation consists of the following sample sets:
Message suppression
This set contains two MVS message-suppression lists (one conservative and one aggressive).
Basic automation
This set contains automation table entries, command lists, and start-up procedures that demonstrate
how routine operator actions can be automated.
Advanced automation
This set includes automation table entries and command lists that demonstrate how to initialize,
recover, and shut down subsystems and applications using automation techniques discussed in this
manual.
Log analysis program
This set contains a log analysis program for JES2 and JES3 that can be modified for use in analyzing
other logs. The analysis program helps you identify frequently issued messages that you might want
to suppress or automate.
Setup samples
This set contains samples that you can use to rename the samples in the other parts of the sample set
for automation.
You can identify the samples in the sample set for automation by their names. Samples with names
beginning in CNMS62, CNMS64, CNME62, or CNME64 belong to the sample set for automation.
Descriptions of all of the samples included in the sample set for automation are contained in “Cross-
Reference Listing of Command Lists and Samples” on page 528.
Table 31. Locations of the Sample Set for Automation on MVS Systems
Sample Set Sample Type Library Member Names
Message Suppression Sample MPFLSTxx SYS1.CNMSAMP CNMS6201-CNMS6202
Members
Basic Automation Miscellaneous NetView SYS1.CNMSAMP CNMS6205-CNMS6206
Samples
Sample Procedures SYS1.CNMSAMP CNMS6211-CNMS6214
Sample Parameters SYS1.CNMSAMP CNMS6221-CNMS6224
Sample Command Lists SYS1.CNMCLST CNME6201-CNME6205
Advanced Automation Miscellaneous NetView SYS1.CNMSAMP CNMS6401-CNMS6410
Samples
Sample Panels SYS1.CNMSAMP CNMS64P0-CNMS64P5
Sample Command Lists SYS1.CNMCLST CNME6400-CNME6440
Log Analysis Sample Analysis SYS1.CNMSAMP CNMS6207
Program
Sample JCL SYS1.CNMSAMP CNMS62J2
Setup Renaming JCL SYS1.CNMSAMP CNMS62J1
Use sample CNMS62J1 to rename the samples supplied in the sample set for automation. Rename the
samples before you can run them, because they refer to each other by the new names. Take the following
steps to rename the samples:
• Examine CNMS62J1 to ensure the symbolics set in the PROC statement are appropriate to your
environment and to ensure that the OUTDD DD statement for each step contains the data set where you
want to store the samples. The JCL supplied in CNMS62J1 copies the renamed samples into new data
sets. If you prefer to use existing data sets, update the sample JCL contained in CNMS62J1 accordingly.
• If you change the library where the PARMLIB members are stored, update samples CLRSMF
(CNMS6212) and LGPRNT (CNMS6213) to point to the new library.
• Because the data set that contains the PROCLIB samples must be a valid PROCLIB data set, include
that data set as one of the DD statements on the PROC00 DD in your JES procedure.
• Include the data sets containing the renamed DSIPARM and DSIPRF samples in the appropriate DD
statements in the NetView start procedure. You must stop and restart NetView for the changes made to
the NetView start procedure to take effect. If you are using the samples provided with the NetView
program, that NetView start procedure is CNMPROC (CNMSJ009).
• Submit CNMS62J1, which runs as a batch job, into the system input stream for processing using either
the TSO SUBMIT command or the NetView SUBMIT command.
• If desired, create a second copy of the renamed samples. Then, if you change some of the samples, you
have a backup copy already renamed.
Figure 196 on page 502 lists the messages automated by the Basic Automation Sample Set Automation
Table.
Figure 196. Messages Automated by the Basic Automation Sample Set Automation Table
Issuing Commands
Statement 1 in Figure 195 on page 502 issues a system command directly from the automation table.
The statement automates message A in Figure 196 on page 502.
When the NetView program receives message A , it issues the MVS START command for the sample
procedure CLRLOG, which clears the SYS1.LOGREC data set. CLRLOG goes to the autotask AUTO1 for
processing. MVS is a NetView command processor that enables the entry of the MVS system, subsystem,
and application commands from the NetView program. The command you issue can also be a NetView or
VTAM command, which you can issue directly from the automation table without any preceding command
processor.
In statement 1 , the command to be processed is routed to only one operator and goes to the autotask
AUTO1. Because no action is taken if AUTO1 is not active, you can specify the statement in Figure 197 on
page 502.
Figure 197. Specifying Multiple Autotasks and Operators on the ROUTE Command
AUTOTBL MEMBER=automem,TEST 1
CNM501I TEST OF MESSAGE AUTOMATION FILE "automem" WAS SUCCESSFUL. 2
AUTOTBL MEMBER=automem
The table you specify is the active automation table until you stop and restart the NetView program,
deactivate that automation table, or activate another automation table.
To activate the table automatically every time the NetView program comes up, specify the table in the
CNMSTYLE member.
If you want to use the JES2 spool utilization monitoring and recovery samples, schedule the $D SPOOL
command for processing at regular intervals. Do that by running the AUTO1IC command list under
AUTO1. You can run the AUTO1IC command list under AUTO1 by entering command 2 in Figure 200 on
page 506 from an authorized operator's console.
To automatically schedule the $D SPOOL command for repeated processing whenever AUTO1 logs on and
runs its initial command list, call the AUTO1IC command list from the initial command list for AUTO1. The
initial command list for AUTO1 is specified in member DSIPROFC (CNMS1026) of DSIPRF in the NetView
samples as being LOGPROF2 (CNME1032). Therefore, if you are using the NetView samples, add a line to
LOGPROF2 to call the AUTO1IC command list.
Table 32. Processes Automated by the Advanced Automation Sample Set for Each Product
Product Initialization Monitoring Recovery Shutdown
JES2 ● ● ● ●
JES3 ● ● ● ●
VTAM ● ● ●
TSO ● ● ●
IMS ● ● ● ●
CICS ● ● ● ●
Monitoring
The advanced automation sample set uses passive monitoring of messages for its product initialization,
shutdown, and recovery. The advanced automation sample set uses proactive monitoring to periodically
check the status of automated products and autotasks.
Passive Monitoring
The basic automation sample set contains examples of passive monitoring of system-related operations.
Entries are contained in the automation table for messages requiring simple, routine responses by the
operator. Once a message and its appropriate automation procedure are added to the table, the response
to the message becomes automatic, replacing the need for the operator to respond to the message.
In the advanced automation sample set, the samples provide automation of system-operations-related
passive monitoring in more complex situations. Instead of focusing on responding to a single event, the
samples focus on what is required to perform processes such as initialization, recovery, or shutdown of
subsystems and applications within a single system.
Unless you notice the message when it appears, you find out about the failure only if a user calls to
complain or if you browse the log and see the failure message.
With passive monitoring, it is not necessary to know about the problem, because it is corrected
automatically. The automation table contains an IF statement that watches for the DFH0606 termination
message, traps it, and invokes the command list DFH0606 to restart the application upon receipt of the
message. For example, the automation table supplied with the advanced automation sample set
automates the DFH0606 action with the statement in Figure 202 on page 508.
As soon as the failure message is received, this statement detects it and restarts the application. No
action on your part is required.
Proactive Monitoring
Proactive monitoring involves querying the system and network to monitor the status of the environment.
It is implemented in the advanced automation sample set by using timer commands to process command
lists at regular intervals. Proactive monitoring is controlled by autotask AUTOMGR, which is the central
automation autotask used in the advanced automation sample set. Two components in the proactive
monitoring samples are supplied with the advanced automation sample set:
• An active-monitor command list, AOPMACT (CNME6439), which ensures that automated products
remain active after initialization.
• An autotask-monitor command list, AOPMCHEK (CNME6440), which periodically checks all autotasks
supplied with the advanced automation sample set to ensure that they remain active.
AOPMACT issues query commands to the automated products that you have defined to automation,
actively soliciting information on the current status of those components. The status information returned
by the components is compared to the desired state of the components as defined in global variables.
Where the desired state and the current actual state do not match, messages are sent to notify personnel
of a potential problem.
AOPMCHEK periodically sends messages to all advanced automation sample set autotasks and waits for
a response. Global variables are used to keep track of the status of the autotasks. The PPT is used to
check autotask AUTOMGR, and AUTOMGR is used to check all other advanced automation sample set
autotasks. If an autotask does not respond, a message is sent to inform the system operator of a potential
problem.
Autotasks are a powerful tool in automation. However, the fact that autotasks generally run unattended
without an associated console means that a failed or unresponsive autotask can go unnoticed. The result
might be that all new work for an autotask either is queued and not processed or, if the autotask is logged
off, is never received.
The advanced automation sample set uses the following method to minimize the amount of time an
autotask failure goes unnoticed:
1. A timer command schedules processing of the autotask-monitor command list, AOPMCHEK
(CNME6440), for each autotask from the autotask's initial command list. In the advanced automation
sample set, AOPMCHEK is scheduled to be processed periodically. The time period for AOPMCHEK to
be called is set in AOPIVARS. To monitor autotask AUTOMGR, which controls the other autotasks,
AOPMCHEK is processed under the PPT. AOPMCHEK is processed under autotask AUTOMGR for all
other autotasks in the advanced automation sample set. The autotask operator ID and a status of
CHECK are passed as parameters to AOPMCHEK.
2. When AOPMCHEK is processed with the string of CHECK, the status of the autotask in question is
checked to see if it is already set to CHECK. If it is, an acknowledgment was never sent to AOPMCHEK
from the last autotask check, and an error message is sent to the system operator, indicating that the
autotask is unresponsive. If the status of the autotask is not already set to CHECK, the status is set to
CHECK, and a message is sent to the autotask requesting a response.
3. The message sent to an autotask requesting a response is intercepted by the automation table and
turned into a command to process command list AOPMCHEK to generate an acknowledgment.
4. If the autotask is responding, AOPMCHEK is processed to generate an acknowledgment. AOPMCHEK
then changes the status of the autotask from CHECK to ACTIVE.
Command 1 is a check to be performed by AUTOMGR on the status of AUTOJES every 5 minutes. When
command list AOPMCHEK is called, the autotask is identified (AUTOJES), and the type of processing to be
performed is identified (CHECK).
When AOPMCHEK is processed with a check requested and the current status of AUTOJES is ACTIVE, the
status is set to CHECK, and command 2 in Figure 203 on page 509 is issued.
As a result, message DSI039I, message 3 in Figure 203 on page 509, is generated and sent to AUTOJES.
The message is intercepted by the automation table statement in Figure 204 on page 509:
When message DSI039I is received and the ninth token is an autotask name, the command in Figure 205
on page 509 is sent to autotask AUTOJES.
The command in Figure 205 on page 509 calls command list AOPMCHEK under autotask AUTOMGR (to
acknowledge that AUTOJES is active).
• If AUTOJES is responding, the command is processed, causing command list AOPMCHEK to change the
status of AUTOJES from CHECK to ACTIVE.
• If AUTOJES is not responding, the command is not processed and the status of AUTOJES remains
CHECK.
When AOPMCHEK is processed with a check requested and the current status of AUTOJES is CHECK, the
autotask has not responded to the last check sent to it. That results in an error message being sent to the
system operator, indicating that AUTOJES is not responding.
Recovery
The advanced automation sample set demonstrates how to recover automated products upon receipt of a
message indicating an abnormal termination of the product. The function is equivalent to an operator's
attempting to restart a product after receiving a console message indicating an abnormal termination.
When certain messages are received by the automation table, a restart of the failing product is attempted
by processing a command list. The command list sets a timer command that, if processed after a certain
period of time, indicates that the recovery attempt has failed. The recovery command list then processes
the start command list for the failed product. If the recovery attempt is successful, the timer command
that issues the recovery-failure message is purged.
The recovery portion of the advanced automation sample set uses passive monitoring. Messages received
by the automation table that indicate either an abnormal failure or an unsuccessful restart attempt
initiate the recovery process. Increasing recovery function involves:
Shutdown
The advanced automation sample set demonstrates how to shut down automated products on a system.
The automatic shutdown of a system or a specific product follows the same process that an operator
attempting to shut down a system or product follows. To shut down a specific product, the shutdown
command is issued. Shutdown is complete once the message indicating the product has completed
shutdown successfully is received. To shut down all automated products, the shutdown must be ordered
so that certain products are not shut down until products that are dependent upon them have completed
their shutdown processes.
The main command list to shut down all automated products is AOPSMAIN (CNME6412). AOPSMAIN
shuts down products in an orderly manner by stopping them in the reverse of the order in which they
were initialized. AOPSMAIN also ensures that no product shuts down before any dependent products
have completed their shutdowns. When AOPSMAIN determines that nothing that depends on a product
remains active, the stop command list for the product is invoked. The stop command list issues the stop
command for that product and waits for the message indicating the shutdown is complete. To shut down
a specific product, process the stop command list for that product.
The shutdown portion of the advanced automation sample set uses passive monitoring. Messages
received indicating a product has completed its shutdown process are trapped by the automation table
and routed to the shutdown autotask for that product.
CNMS64P1 is a generic panel that is called when a product is selected, on panel CNMS64P0, for which
specific information is required. CNMS64P1 displays information contained in panel CNMS64P0, the
variable values of the commands used to initialize, shut down, and display the status of the product, and
CNMS64P2 displays the message-response-variable values for the product currently being examined on
panel CNMS64P1. The message-response variables are in command list AOPIVARS. CNMS64P5 is the
help panel for CNMS64P2. Note that CNMS64P2 only displays information; you cannot change a number
on the panel to change the value of a variable.
Miscellaneous Samples
Besides the six VIEW panels previously discussed, the following 10 samples are provided in the advanced
automation sample set:
CNMS6401
Command definition statements for MVS command verbs so they can be issued at NetView operator
stations. They are not required for the advanced automation sample set to function correctly.
CNMS6402
Command definition statements for JES2 command verbs so they can be issued at NetView operator
stations. They are not required for the advanced automation sample set to function correctly.
CNMS6403
Command definition statements for JES3 command verbs so they can be issued at NetView operator
stations. They are not required for the advanced automation sample set to function correctly.
CNMS6404
Command definition statements for the advanced automation sample set command lists. They must
be added to your existing CNMCMD.
CNMS6405
Automation-table entries for the advanced automation sample set. Add them to your existing
automation table before activating the samples. Command list AOPIVARS (CNME6400) activates
them in table DSITBL11. If you place them in a table with a different name, modify AOPIVARS to
reflect the name you use.
CNMS6406
TSO command list to make a copy of a command list written in the NetView command list language,
without comments. CNMS6406 removes lines that contain an asterisk in column one followed by a
space in column two or that consist of 20 asterisks in a row. Before running CNMS6406, check that
the file you wish to copy to ensure that it conforms to this format. Ensure that no lines other than
comments meet the criteria for removal.
S CNMPSSI,SUB=MSTR
S CNMPROC,SUB=MSTR
The first statement starts the NetView subsystem address space. The second statement starts the
NetView application. It does not matter which statement you put first.
• The NetView procedure must be stored in the SYS1.PROCLIB, not in a user library supported by JES.
• The NetView procedure must contain only a single job step.
Note: You can circumvent the single-job-step restriction if you:
– Write a user-written driver that invokes the programs from each step via the MVS LINK macro
interface.
– Combine the DD statements from each step into a single group.
– Specify your program on the EXEC statement for the job.
• All data sets must be referenced by VOL=SER or be cataloged in the master catalog.
• No SYSIN, SYSOUT or VIO data set can be referenced.
• The NOSTART parameter must be coded on the JES statement in the IEFSSNxx member of
SYS1.PARMLIB to delay the start of JES until the NetView program is active.
Defining Autotasks
The advanced automation sample set uses autotasks to run command lists in its automated environment.
Supplied with the advanced automation sample set are operator definitions (CNMS6408) that should be
added to your existing operator profile definitions located in DSIOPF. There are operator definition entries
for each autotask used in the advanced automation sample set: AUTOMGR, AUTOJES, AUTOVTAM,
AUTOTSO, AUTOIMS, and AUTOCICS. If your installation is not going to automate one or more of the
*****************************************************************
* (C) COPYRIGHT IBM CORP. 2019 *
* LAST CHANGE: 07/12/19 *
* DESCRIPTION: NETVIEW OPERATOR DEFINITIONS/PASSWORDS *
* FOR AUTOMATED OPERATORS *
* CNMS6408 CHANGED ACTIVITY: *
* CHANGE CODE DATE DESCRIPTION *
* ----------- -------- ------------------------------------*
*****************************************************************
* THESE OPERATOR DEFINITIONS SHOULD BE ADDED TO YOUR EXISTING *
* DSIOPF OPERATOR DEFINITIONS. *
*****************************************************************
⋮
AUTOMGR OPERATOR PASSWORD=AUTOMGR
PROFILEN DSIPROFM
⋮
Figure 209 on page 522 shows the operator profile for the AUTOMGR autotask that is part of the
advanced automation sample set.
*********************************************************************
* (C) COPYRIGHT IBM CORP. 2019 *
* ALL RIGHTS RESERVED. *
* US GOVERNMENT USERS RESTRICTED RIGHTS - USE, DUPLICATION *
* OR DISCLOSURE RESTRICTED BY GSA ADP SCHEDULE CONTRACT *
* WITH IBM CORPORATION. *
* IEBCOPY SELECT MEMBER=((CNMS6409,DSIPROFM,R)) *
* LAST CHANGE: 07/12/19 *
* DESCRIPTION: AUTOMATED OPERATOR (AUTOMGR) PROFILE DEFINITION *
* CNMS6409 CHANGED ACTIVITY: *
* CHANGE CODE DATE DESCRIPTION *
* ----------- -------- ------------------------------------------*
*********************************************************************
* MINIMAL AUTOMATED OPERATOR PROFILE STATEMENTS FOR AUTOMGR *
* STARTED WITH AUTOTASK COMMAND TO RUN AS AN UNATTENDED OPERATOR. *
* AUTOMGR IS THE AUTOMATED OPERATOR THAT MANAGES THE OTHER *
* AUTOMATED OPERATORS USED IN THE CONSOLE AUTOMATION SAMPLE SET. *
*********************************************************************
DSIPROFM PROFILE IC=AOPIMGIC
AUTH MSGRECVR=NO,CTL=GLOBAL
END
As long as AUTOMGR is defined in DSIOPF, it is a valid NetView operator ID. When AUTOMGR starts, the
AOPIMGIC command list runs, because it is the initial command list defined on the operator profile
associated with AUTOMGR.
The main automation initialization command list is AOPIVARS. AOPIVARS builds the global variables that
contain the information for each product. AOPIVARS builds its common global variables by invoking
command list AOPIGUPD, whose purpose is to build a global variable and set the value of it based on the
input to the command list. In AOPIVARS, the resource common prefix for the automated system and the
product identifiers for all automated products are set up in common global variables.
Now, you can build the start TSO variable and set the value, as shown in Figure 211 on page 525.
The NetView command list language &CONCAT function concatenates the values &RCP and CST&TSO The
value of variable &TSO is substituted and combined with CST. In the example, &START is given the value
CNM01CSTTSO, a value derived in the following way:
When the command list runs, the value of variable &START is CNM01CSTTSO. &START can now be
defined as a common global variable with the statement shown in Figure 212 on page 526.
Defining &START as a common global actually causes a substitution on the &START variable to be
performed before the variable is defined as a common global, because the &CGLOBAL function requires
no ampersand on the variable being defined. In the statement to define RCP as a common global variable,
no ampersand precedes the RCP. &CGLOBAL RCP defines the variable &RCP as a common global. So, in
the above example, CNM01CSTTSO is substituted for &START in the &CGLOBAL statement, so that
CNM01CSTTSO is defined as a common global variable.
You can now give a value to the variable by directly updating the value, as in &CNM01CSTTSO = 'S TSO',
but doing so is inconvenient, because each system identifier, function, and product must be remembered
for each variable. Instead, you can update the variable indirectly. &START is already defined as
CNM01CSTTSO. Use it to change the value of the variable, as shown in Figure 213 on page 526.
The value of &START is to be substituted into the statement when the command list is processed, forming
the actual assignment shown in Figure 214 on page 526.
AOPIGUPD is called to build the common global variables for the advanced automation sample set. The
process that AOPIGUPD goes through is similar to the method just described.
Using that method of sharing common variable values provides an easy way to share information between
automation command lists. If you want to add a new system identifier, function, or product to the
advanced automation sample set, use the same global variable convention to add the new item.
Adding a Product
Before adding a new product to be handled by automation, the scope of what needs to be handled must
first be identified. Do you want automation to handle only initialization of the new product, or do you want
automation to handle the new product as completely as possible (initialization, proactive monitoring,
recovery, shutdown)?
Once the scope is identified, the actual messages that are to be handled need to be identified.
• Try to keep the number of messages small.
For example, if a product has a number of failure messages but each is always followed by the same
message indicating that the product cannot continue, then automate only that message.
• Each message being added might require a change to the automation table.
Samples
Samples
Table 37. Command Lists in the Advanced Automation Sample Set by Shipped Name
Shipped Name Command Description
Synonym Name
CNME6400 AOPIVARS Automation initialization main command list
CNME6401 AOPIGUPD Sets value of a common global variable
CNME6402 AOPIMGIC AUTOMGR initial command list
CNME6403 AOPIGNIC Generic initial command list for autotasks
CNME6404 AOPIJES3 Starts JES3
CNME6405 AOPIJES2 Starts JES2
CNME6406 AOPIVTAM Starts VTAM
CNME6407 AOPIIMS Starts IMS
CNME6408 AOPICICS Starts CICS
CNME6409 AOPITSO Starts TSO
CNME6410 $HASP426 Responds to $HASP426 SPECIFY OPTIONS
CNME6412 AOPSMAIN Main shutdown command list
CNME6413 AOPSJES3 Shuts down JES3
CNME6414 AOPSJES2 Shuts down JES2
CNME6415 AOPSVTAM Stops VTAM
CNME6416 AOPSIMS Begins IMS shutdown
CNME6417 AOPSIMS2 Stops IMS components
CNME6418 AOPSCICS Stops CICS
CNME6419 AOPSTSO Begins TSO shutdown
CNME6420 AOPSTSO2 Stops TSO
CNME6421 AOPTJRC3 Resets reply count for IAT3714
CNME6422 $HASP098 Replies to message $HASP098
CNME6423 $HASP095 Stores JES2 abend code
CNME6424 AOPSPURG Drains all units
CNME6425 VTAMTMRZ Shuts down VTAM with cancel
CNME6426 DFS996I Stores IMS WTOR
CNME6428 DFS000IB Stores IMS region numbers for shutdown
CNME6429 IAT3714 Issues reply for JES3 start type
CNME6430 IAT3708 Updates JES3 status to active
CNME6431 $HASP085 Attempts to restart JES2 if it ended abnormally
CNME6432 JESTMRA Resets JES2 abend counter
CNME6433 DFS629I Restarts IMS
CNME6434 IMSTMR Updates IMS timer to blank
Table 38. Command Lists in the Advanced Automation Sample Set by Synonym
Shipped Name Command Description
Synonym Name
CNME6431 $HASP085 Attempts to restart JES2 if it abended abnormally
CNME6423 $HASP095 Stores JES2 abend code
CNME6422 $HASP098 Replies to message $HASP098
CNME6410 $HASP426 Responds to $HASP426 SPECIFY OPTIONS
CNME6408 AOPICICS Starts CICS
CNME6403 AOPIGNIC Generic initial command list for autotasks
CNME6401 AOPIGUPD Sets value of a common global variable
CNME6407 AOPIIMS Starts IMS
CNME6405 AOPIJES2 Starts JES2
CNME6404 AOPIJES3 Starts JES3
CNME6402 AOPIMGIC AUTOMGR initial command list
CNME6409 AOPITSO Starts TSO
CNME6400 AOPIVARS Automation initialization main command list
CNME6406 AOPIVTAM Starts VTAM
CNME6439 AOPMACT Actively monitors automated products
CNME6440 AOPMCHEK Monitors advanced automation sample set autotasks
CNME6418 AOPSCICS Stops CICS
CNME6416 AOPSIMS Begins IMS shutdown
CNME6417 AOPSIMS2 Stops IMS components
CNME6414 AOPSJES2 Shuts down JES2
CNME6413 AOPSJES3 Shuts down JES3
CNME6412 AOPSMAIN Main shutdown command list
CNME6424 AOPSPURG Drains all units
CNME6419 AOPSTSO Begins TSO shutdown
Setup Samples
Table 41. Setup Samples
Shipped Name Sample Name Description
CNMS62J1 Renaming JCL
The following paragraph does not apply to the United Kingdom or any other country where such
provisions are inconsistent with local law:
INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS"
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A
PARTICULAR PURPOSE.
Some states do not allow disclaimer of express or implied warranties in certain transactions, therefore,
this statement might not apply to you.
This information could include technical inaccuracies or typographical errors. Changes are periodically
made to the information herein; these changes will be incorporated in new editions of the publication.
IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this
publication at any time without notice.
Any references in this information to non-IBM Web sites are provided for convenience only and do not in
any manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of
the materials for this IBM product and use of those Web sites is at your own risk.
IBM may use or distribute any of the information you supply in any way it believes appropriate without
incurring any obligation to you.
Licensees of this program who wish to have information about it for the purpose of enabling: (i) the
exchange of information between independently created programs and other programs (including this
one) and (ii) the mutual use of the information which has been exchanged, should contact:
IBM Corporation
2Z4A/101
11400 Burnet Road
Such information may be available, subject to appropriate terms and conditions, including in some cases
payment of a fee.
The licensed program described in this document and all licensed material available for it are provided by
IBM under terms of the IBM Customer Agreement, IBM International Program License Agreement or any
equivalent agreement between us.
Information concerning non-IBM products was obtained from the suppliers of those products, their
published announcements or other publicly available sources. IBM has not tested those products and
cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM
products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of
those products.
Programming Interfaces
This publication primarily documents intended Programming Interfaces that allow the customer to write
programs to obtain the services of IBM Z NetView. This publication also documents information that is
NOT intended to be used as Programming Interfaces of IBM Z NetView. This information is identified
where it occurs, either by an introductory statement to a chapter or section or by the following marking:
Trademarks
IBM, the IBM logo, and ibm.com® are trademarks or registered trademarks of International Business
Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be
trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at
"Copyright and trademark information" at http://www.ibm.com/legal/copytrade.shtml .
Adobe is a trademark of Adobe Systems Incorporated in the United States, and/or other countries.
Java and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or
its affiliates.
Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both.
Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or
both.
UNIX is a registered trademark of The Open Group in the United States and other countries.
Other product and service names might be trademarks of IBM or other companies.
Notices 535
536 IBM Z NetView: Automation Guide
Index
Index 537
ALERTPCT 263 ASSIGN COPY processing 79
ALERTPCT attribute 59 ASSIGN PRI/SEC
alerts 353 routing flow for messages 77
ALL keyword, EXEC action, IF-THEN or ALWAYS statement assigning a value to a variable
190 basic automation sample set 503
all occurrences of a field assigning messages to operators 71
searching for 291 assigning operators to groups 71
allEvents mode 305 ASSISCMD command 357, 361
ALLOCATE command 93, 421 assist mode 357
Always statement AT command 21, 96
definition 123 ATF (automation-table function)
ALWAYS statement automation-table function (ATF)
types of 124 DSITGLOB 140
ALWAYS statement, automation table description 137
actions, table 185 DSICGLOB 139
ALWAYS statement, automation-table ATTENDED, IF-THEN statement 140
design guidelines 208 attributes
syntax 201 ALERTPCT 59
AMRF (action message retention facility) 452 QLIMIT 59
analyzing logs 38 state correlation 304
AND operator thresholdCount 305
conditions linked with timeInterval 305
Logical-AND operator 130 timeIntervalMode 305
AON control file 381 triggerMode 305
AON TIMER command 21 auditable automation 45
AON, function 381 authorized receiver
AON/SNA routing flow for messages 77
NCP recovery definitions 387 unsolicited messages 70
NetStat 386 unsolicited messages from a DST 70
SNAMAP 386 unsolicited messages from an MVS system 70
VTAM commands, issuing 387 AUTOCNT command 22, 211, 405
VTAM options, managing 386 AUTOMAN
X.25 switched virtual circuits 387 activating automation tables 220
AON/SNA automation using for actions to automation tables 124
overview 385 using to view INCLUDE structure 123
AON/SNA Help Desk 386 AUTOMAN command
AON/SNA options 385 activating automation tables 295
AON/SNA Tutorials 386 AUTOMATED
AON/SNA X.25 monitoring support 387 IF-THEN or ALWAYS statement
AON/TCP describing 186
MIB polling and thresholdiing TCP/IP for z/OS0 only 389 automated console operations 8
AON/TCP interface automated handling
choosing for receiving updates 389 messages and MSUs 279
APC (Automated Power Control) for 9370s 15 automated operations
API (application program interface) 23 assembling teams, departments 35
application address space 261, 454 benefits 3
application program interface (API) 23 business goals 37
AREAID, IF-THEN statement 137 choosing an approach 36
AREC classes 4
filter 268 close, source 46
keyword, SRF action, IF-THEN or ALWAYS statement command-procedure capabilities 20
196 commitments 42
ASID 136 coordinated 9
assembler language 19 defining 35
assembling teams, departments 35 definition for the NetView program 3
ASSIGN command designing 43
for dropping unsolicited messages 73 EMCS consoles, using MVS 55
for routing messages to autotasks 73 facilities 19
for routing solicited messages 73 implementing 51
for routing unsolicited messages 71 introduction 3
using for dynamic operator control 74 message and MSU responses 9
using to route messages 71 multiple-system
using to verify routing to destination 73 definition 6
versus automation table routing 74 stages 6
Index 539
Automation Table Statements 280 autotasks (continued)
automation tables using ASSIGN command to route messages to 73
block 221 AUTOTBL
disabled statements 221 activating automation tables 220, 294
enabling and disabling 220 using for actions to automation tables 124
end label 221 AUTOTBL command
group 221 security applications 521
label 221 AUTOTBLE 294
managing 220 AUTOTEST command 405
sequence number 220 AUTOTOKE, IF-THEN statement 142
automation tables, active availability
identifying 295 benefits 3
automation tracking designing for 45
automation log 383 financial value 40
understanding 382
automation-table
ASSIGN COPY processing 79
B
comments 126 backup focal point 49
discard or display messages 79 basic assembler language 19
listing basic automation
describing 207 sample set
example 211 functions performed by 501
examples 214 basic automation sample set
main member, examples 210, 213 activating
messages defining command list symptoms 504
DSIEX16 79 automation table used in sample set 502
processing 124 testing 506
processing messages 78 basic automation table
routing messages 78 sample set
searches 124 assigning a value to a variable 503
setting message attributes 79 invoking command lists and command processors
usage reports 211 503
Automation-table issuing commands 502
processing 82 BEEP
automation-table function (ATF) IF-THEN or ALWAYS statement 186
DSICGLOB 139 BEGIN keyword, IF-THEN or ALWAYS statement
automation-table statement ALWAYS statement 202
syntax BEGIN-END section
BEGIN-END section 126 definition 123
automation-table statements design guidelines 205
elements of syntax
%INCLUDE statement 123 automation-table statements 126
Always statement 123 type 125
BEGIN-END section 123 BEGIN, IF-THEN or ALWAYS statement
IF-THEN statement 123 describing 127
SYN statement 123 IF-THEN statement 129
grouping example 205 benefits of automating
storing statements in member DSIPARM 123 analyzing 40
autotask overview 3
activating 99 BIT
associating multiple console support consoles 100 ATF condition item, IF-THEN statement 137
associating multiple-support-console console 276 bit notation
automating 100 MSU actions 290
deactivating 100 bit string compare item
defining 99 IF-THEN statement 290
describing 99 bit string compare item, IF-THEN statement 181
multiple 403 blank lines
overview 21 at the beginning of an MLWTO message 131
passwords 99 BLI keyword, XHILITE action, IF-THEN or ALWAYS
timer commands 97 statement 198
AUTOTASK command 99, 505 block
AUTOTASK, IF-THEN statement 141 automation tables 221
autotasks BLOCK keyword, SRF action, IF-THEN or ALWAYS statement
defining and activating 264 196
Index 541
command revision table (continued) commands (continued)
coding statements (continued) procedures
WTO 118 automating 20
comments 112 consolidating commands 8
processing 112 overview 19
restriction 391 processors 19
searches 112 PURGE TIMER 21, 98
testing 122 RELCONID 264
using 111 RESTORE 97
command revision table statements revising 111
elements of RMTCMD
END statement 111 forwarding commands 343
EXIT statement 111 ROUTE 344
INCLUDE statement 111 routing facilities
NETVONLY statement 111 CNMSMSG service routine 84
OTHERWISE statement 111 DSIMQS Macro 84
REVISE statement 111 ROUTE keyword in automation-table 84
SELECT statement 111 routing to a task
UPON statement 111 EXCMD command 84
WHEN statement 111 RMTCMD command 84
commands scheduling commands 9
AFTER 21, 95 SETCONID 56, 263
ALLOCATE 93, 421 SRFILTER 7, 268
AON TIMER 21 SUBMIT 93
AT 21, 96 SVFILTER 270
AUTOCNT 211 system
AUTOMAN MVS 454
activating automation tables 220, 295 timer
AUTOTASK 99, 505 describing 95
AUTOTBL saving and restoring 97
activating automation tables 220, 294 verifying 412
security applications 521 TIMER 96
AUTOTEST 405 timer commands
CHRON overview 21
verifying 412 using z/OS processor to issue
compatibility with tasks 83 from the NetView program 264
DBCS strings 189 VIEW 12
DEFAULTS WTO 93, 451
logging 421 WTOR 93, 451
message attributes 199 comments
DELAY 96 automation table 126
DFILTER 270 command revision table 112
DOM 93 message revision table 104
DROPCL 94, 528 common global variable 91
EVERY 21, 96 communication
facility, displaying information 10 between NetView and a z/OS operating system 262
FOCALPT 348 between NetView and operating system 259
forwarding 343 ensuring system messages forwarded from the z/OS
FREE 421 system
GENALERT using the subsystem interface 262
multiple NetView programs 394 ensuring system messages forwarded from z/OS
sending alerts 321 using EMCS consoles 262
GETCONID 56, 263 communication management configuration (CMC) system as
HELP 12 a focal point 48
list language 19 communication network management
LIST TIMER 21, 98 interface 455
lists 19 communication network management-interface (CNMI)
LOADCL 94, 528 unsolicited network management data 392
MAPCL 94 compare item
network 6 definition 137
OVERRIDE compare item, IF-THEN statement
logging 421 bit strings 181
message attributes 199 parse templates 182
priority for queued 84 comparing text by using parse templates 283
Index 543
definitions (continued) discard or display
BEGIN-END section 123 messages 79
DoForeignFrom statement 103 dispatching priority 397
END statement 103, 111 DISPLAY
EXIT statement 103, 111 IF-THEN or ALWAYS statement 188
IF-THEN statement 123 display command
NetView automation 3 MVS command management setting 493
NETVONLY statement 103, 111 displaying
OTHERWISE statement 103, 104, 111 NCP recovery definitions 387
REVISE statement 103, 111 displaying information 12, 319
SELECT statement 104, 111 DISTAUTO, IF-THEN statement 135, 143
SYN statement 123 distributed networks 30
UPON statement 104, 111 distributed system, definition 14
WHEN statement 104, 111 DoForeignFrom statement
WTO statement 111 coding message revision table 105
DELAY command 96 definition 103
delete operator messages (DOM) command 29 DOM command 29, 93
deleting the CNMCAUaa PARMLIB member DOMACTION
to stop MVS command management 493 IF-THEN or ALWAYS statement 188
delimiters for synonym value domain ID
quotation marks 203 searching by 281
DELMSG 188 DOMAIN, IF-THEN statement 135, 144
department, automation DOMAINID keyword, IF-THEN statement
assembling 35 example 293
educating 47 DOMAINID, IF-THEN statement
roles 47 summary 135
DESC, IF-THEN statement 143 usage 144
descriptor code 3 messages 281 DROPCL command 94, 528
design guidelines dropping
anticipating changing staff roles 47 unsolicited messages 73
automating close to the source 46 DSI6DST 336
choosing focal points 48 DSIAUTO macro 411
choosing, multiple NetView programs 46 DSICGLOB
designing, auditability 45 automation table function
designing, availability 45 task global variables 90, 91
designing, expansion and propagation 44 DSICGLOB automation-table function 139
designing, security 45 DSIEX02A installation exit 23, 255
educating your staff 47 DSIEX02A processing
overview 44 routing flow for messages 77
providing operator interfaces 46 DSIEX16 79
providing testing 47 DSIEX16 installation exit 255
providing, problem management, change management DSIEX16B installation exit 255
48 DSIEX16B installation exit MSUs. 23
using focal point, backup 49 DSIEX16b processing 83
design tasks for automation projects DSIEX17
establish standards 43 routing flow for messages 76
identify procedures and functions to automate 43 DSIMQS Macro
prioritize procedures and functions 43 routing commands 84
schedule stages for implementation 43 DSINOR 356, 363
designator character 29 DSIOPF member 45
designing automation 43, 441 DSIPARM member
designing automation tables 204 storing automation-table statements in 123, 124
DEVLAN3 DSIQTSK task 355
resource hierarchy 292 DSIQTSKI member 356
DFILTER command 270 DSITGLOB automation-table function 140
DFSMS (Data Facility Storage Management Subsystem) DSIWLS 421
products 32 DUIFECMV command processor 396
direct access storage device (DASD) management 32 duplicates rules 304
directory names, notation xxxi dynamic operator control 74
disable statements 131 dynamically defining EMCS consoles 262
disabled statements dynamically defining extended MCS consoles
automation tables 221 commands
disabling GETCONID 263
automation tables 220 RELCONID 264
Index 545
extended multiple console support consoles (continued) forwarding (continued)
planning to use (continued) exceptions 329
security access 59 messages
EZLEQAPI 249 Event/Automation Service 353
EZLEQCAL 253 overview 343
EZLETAPI 241 options 346
state information 329
system messages from a z/OS system to NetView
F using the subsystem interface 262
facilities system messages from the z/OS system to the Netview
routing for commands program
CNMSMSG service routine 84 using EMCS consoles 262
ROUTE keyword in automation-table 84 system messages from the z/OS system to the NetView
routing to a task program
EXCMD command 84 using EMCS consoles 262
RMTCMD command 84 system messages from z/OS to the NetView program
field contents using the subsystem interface 262
selecting 287 forwarding exceptions 13
Field Existence FREE command 421
checking for 286 full-screen
field occurs more than once centralized operations 345
in an MSU 290 display panels 322
files TAF sessions 345, 375
tecsce.dtd 300 full-screen displays 12
filtering alerts 7 functions
filtering events advanced automation sample set 510
state correlation 300 functions performed by advanced automation sample set
filters 506
bypassing 271 functions performed by basic automation sample set 501
describing 267
recording 268 G
viewing 270
financial analysis 40 GDS variable
financial-benefit worksheet 41 R&TI 292
firstEvent mode 305 GENALERT command
flash message 279 multiple NetView programs 394
flow sending alerts 321
message routing GETCONID command 56, 263
ASSIGN PRI/SEC processing 77 GETCONID parameters
authorized receiver processing 77 ALERTPCT 263
DSIEX02A processing 77 QLIMIT 263
DSIEX17 Processing 76 QRESUME 263
PIPE CORRWAIT 77 STORAGE 263
flows global variables
message common 91
MVS 451 task 90
VTAM 459 global variables and command procedures 20
FLSCN (full-screen) TAF sessions 345, 375 GMFHS (Graphic Monitor Facility host subsystem) data
focal point model 65
backup 49 GMFHSDOM parameter on DUIFECMV 396
centralized operations 14 goals
changing, dropping, and listing 348 automation 40
choosing 48 business 37
forwarding exceptions to 13 data-processing 37
intermediate 345 measuring progress toward 40
overview 329 sample measurements 447
using more than one 348 Graphic Monitor Facility host subsystem (GMFHS) data
FOCALPT command 348 model 65
forwardEvents mode 305 Graphic Monitor Facility, NetView 11
forwarding GRE
alert 268, 343, 353 COLOR action
between two NetView programs 396 IF-THEN or ALWAYS statement 187
choosing methods 346 group
commands 343 automation tables 221
Index 547
information ISSUE.IEE295I statement (continued)
extracting messages and MSUs 283 coding command revision table 113
Information Management System (IMS) 378 issuing commands
initialization basic automation sample set 502
advanced automation 507
command lists
advanced automation sample set 512
J
initialization of distributed systems 15 JES, starting after NetView 520
initializing 317 JES3 automation 423
input/output management 31 JOBNAME, IF-THEN statement 161
installation exit
DSIEX02A 255
DSIEX16 79, 255 K
DSIEX16B 255
KEY, IF-THEN statement 161
DSIEX17 256
keywords
overview 255
%INCLUDE 202
XITCI 255
ACQUIRE, IF-THEN statement 136
installation exits 23
ACTIONDL, IF-THEN statement 136
interface
ACTIONMG, IF-THEN statement 137
CNM
ALL, EXEC action, IF-THEN or ALWAYS statement 190
unsolicited network management data 392
ALWAYS 126
communication network management 455
ALWAYS, ALWAYS statement 201
for receiving updates about network exception
AREAID, IF-THEN statement 137
conditions 389
AREC, SRF action, IF-THEN or ALWAYS statement 196
LU 6.2 transports 321
ATF, IF-THEN statement 137
MVS subsystem 393
ATTENDED, IF-THEN statement 135, 140
operator 319
AUTOMAN 220, 295
program-to-program
AUTOMATED
sending alerts 321
IF-THEN or ALWAYS statement 186
service point 353
IF-THEN statement 141
TAF 375
AUTOMATED, IF-THEN statement 135
interfaces
AUTOTASK
using 395
IF-THEN statement 141
Interfaces
AUTOTASK, IF-THEN statement 135
NetView
AUTOTBL 220, 294
Operating System 68, 80
AUTOTOKE, IF-THEN statement 142
NetView program
BEEP
POI (program operator interface) 69
IF-THEN or ALWAYS statement 186
to other NetView programs 69
BEGIN, IF-THEN or ALWAYS statement 127, 129, 202
Interfaces, NetView
BIT
message routing facilities 71
ATF condition item, IF-THEN statement 137
Interfaces, NetView program
BLI, XHILITE action, IF-THEN or ALWAYS statement
automation-table
198
ASSIGN COPY processing 79
BLOCK, SRF action, IF-THEN or ALWAYS statement 196
discard or display messages 79
BLU
DSIEX16 79
COLOR action, IF-THEN or ALWAYS statement 187
processing messages 78
BOTH, SRF action, IF-THEN or ALWAYS statement 197
routing messages 78
CART, IF-THEN statement 142
setting message attributes 79
CMD, EXEC action, IF-THEN or ALWAYS statement 189
hardware-monitor data and MSUs 69
COLOR
message routing facilities
IF-THEN or ALWAYS statement 187
routing to EMCS consoles 75
CONTINUE
routing with the ASSIGN command 71
IF-THEN or ALWAYS statement 187
routing with the MSGROUTE command 75
CORRELATED
unsolicited messages from MVS 70
IF-THEN statement 142
wait processing 78
CORRFAIL
interfaces, operators 10
IF-THEN statement 142
intermediate focal point 345
CURRDATE, IF-THEN statement 135, 142
INTERVAL, IF-THEN statement 135, 160
CURRTIME, IF-THEN statement 135, 143
introduction to automation 3
CURSYS, IF-THEN statement 135, 143
invoking command lists and command processors
DESC, IF-THEN statement 143
basic automation sample set 503
DISPLAY
IP network 30
IF-THEN or ALWAYS statement 188
ISSUE.IEE295I statement
Index 549
keywords (continued) logs (continued)
YEL (continued) designing automation 45
COLOR action, IF-THEN or ALWAYS statement 187 help-desk 39
obtaining information from 38
using, automation table 22
L LU 6.2 transports
label sending alerts 321
automation tables 221 LUC sessions
LABEL 128 alert forwarding 343
label, command prefix 84
language choices 89 M
languages
assembler 19 major vector
C 19 1044 287
choosing 20 1045 287
CLIST (command list) 19 alert 200, 286, 289
PL/I 19 automatable 292
REXX 19 management services 284, 285
LANMGR routing and targeting instruction GDS variable 292
resource hierarchy 292 major vectors
lastEvent mode 305 resolution 292
limiting management reporting 32
number of system messages processed by the NetView management services (MS) and high-performance
program 204 transports
limiting automation of command responses 208 sending alerts 321
LINEPRES, IF-THEN statement 162 management services capabilities
LINETFLG, IF-THEN statement 164 (MS-Caps) application 50
list of AON/SNA resources management services major vector 285
NetStat 386 management services transport 11
LIST TIMER command 21, 98 management services unit (MSU)
listing of an automation table actions 289
AUTOTBL command 207 defaults 200
debugging 415 filtering 7
example 211 handling close, source 46
literal, compare item highlighting 22
IF-THEN statement MSU-type automation-table statement 124
characters 182 MVS system 28
description 182 network 5
hexadecimal 182 processing, automation table 21
IF-THEN statement, character notation 290 responding, automatically 9
IF-THEN statement, hexadecimal notation 290 simulating 411
LOADCL command 94, 528 system 5
loading command lists, storage 93, 528 writing automated table statements to automate 284
locating the sample set for automation 500 managing
log automation tables 220
debugging 414 manuals
MVS system 420, 421 see publications xxvii
network MAPCL command 94
describing 420 matching rules 304
log browse 394 MCS consoles, extended
MVS system log 421 dynamically defining
user-provided 421 GETCONID 263
log analysis program RELCONID 264
filtering 401 SETCONID 263
output 400 MCSFLAG
sample set 501, 532 comparing programming languages 165
tuning 399 MCSFLAG, IF-THEN statement 164
LOG destination, messages 421 MDS-MU (multiple domain support message unit)
logging automating 284
NETLOG keyword, IF-THEN or ALWAYS statement 195 MDS-MUs, automating 291
overview 419 measurements, progress 447
SYSLOG keyword, IF-THEN or ALWAYS statement 198 measuring progress 40, 447
logs message
analyzing, program 38 automating 280
Index 551
modifying command procedures 278 MSU (management services unit) (continued)
monitoring management services unit (MSU) (continued)
combining active and passive 318 detailed reports 217
components summary reports 219
graphic 11 MSU-type automation-table statement 124
hardware 11 simulating 411
status 11 MSU actions
passive BEEP 289
advanced automation 507 bit notation 290
proactive character notation 290
advanced automation 508 COLOR 289
proactive, for Tivoli NetView (AIX) 389 hexadecimal notation 290
recovery, for Tivoli NetView (AIX) 389 HIGHINT 289
resource states 9 SRF 289
types XHILITE 289
active 9 XLO 289
passive 9 MSU routing 80
monitoring Advanced Peer-to-Peer Networking resources MSU subvector
387 selecting field contents 287
monitoring X.25 switched virtual circuits 387 MSUs
MPF (message processing facility) automated handling 279
extended multiple console support consoles 57 condition item in IF-THEN statement 132
setting options, message processing 25 correlating 295
MPF exit for MVS command management 485 MSUSEG
MRT (message revision table) examples 286
overview 22 MSUSEG, IF-THEN statement 172, 173
using 103 multiline messages
MS (management services) and high-performance using a parse template 284
transports multiple
sending alerts 321 autotasks, NetView 403
MS transport 11 NetView system 403
MS-Caps application 50 NetView, system 391
MS-CAPS applications 331 multiple console support
MSG detail reports 217 associating, autotask 276
MSGAUTH, IF-THEN statement 165 differences, NetView console 273
MSGCATTR, IF-THEN statement 166 issuing NetView commands and command lists as
MSGCMISC, IF-THEN statement 166 MODIFY commands 457
MSGCMLVL, IF-THEN statement 167 issuing NetView commands and command lists as
MSGCMSGT, IF-THEN statement 167 subsystem commands 456
MSGCOJBN, IF-THEN statement 168 multiple console support consoles
MSGCPROD, IF-THEN statement 168 associating, autotask 100
MSGDOMFL, IF-THEN statement 168 multiple domain support message unit (MDS-MU)
MSGGBGPA, IF-THEN statement 169 NMVT (network management vector transport) 284
MSGGDATE, IF-THEN statement 169 multiple occurrences of a field
MSGGFGPA, IF-THEN statement 170 searching for in an MSU 290
MSGGMFLG, IF-THEN statement 170 multiple resources
MSGGMID, IF-THEN statement 170 resource hierarchy 293
MSGGTIME, IF-THEN statement 171 Multiple Virtual Storage operating system
MSGID keyword, IF-THEN statement 280 role in automation 24
MSGID, IF-THEN statement 171 multiple-NetView-program design 46
MSGROUTE command multisite configuration, example 49
using to route messages 75 multisystem automation
MSGSRCNM, IF-THEN statement 171 definition 6
MSU design guidelines 46
correlation 297 MVS
selecting 286 command flow 453
MSU (management services unit) command prefix character 455
actions 289 exclusion or inclusion list
alert changing 494
actions 289 starting 494
automating non-MSU problem records 293 message flow 451
automating 284 message ID 280
defaults 200 operator console 93
management services unit (MSU) system log 420, 421
Index 553
NetView program Interfaces (continued) null ('')
other NetView programs (continued) bit-string IF-THEN compare item 181
hardware-monitor data and MSUs 69 parse-template
unsolicited messages from MVS 70 IF-THEN compare item 184
wait processing 78 NUMERIC
NetView Program Interfaces MSUSEG, IF-THEN statement 173
Operating System 68 NVCLOSE, IF-THEN statement 135, 174
other NetView programs NVDELID, IF-THEN statement 174
POI (program operator interface) 69
NetView program message routing
authorized receiver 70
O
unsolicited messages 70 objectives
NETVIEW program, IF-THEN statement 173 automation 40
NETVIEW, IF-THEN statement 135 business 37
NETVIEW, program, IF-THEN statement 135 data-processing 37
NETVONLY statement measuring progress toward 40
coding command revision table 118 sample measurements 447
coding message revision table 106 obtaining environment information 20
definition 103, 111 occurrence number
network MSUSEG-returned value 172
automation 5 using to check MSUSEG 290
availability OEM systems and devices
benefits 3 automating 16
designing for 45 interfaces to 30
financial value 41 OIV 321
commands 6 ONE keyword, EXEC action, IF-THEN or ALWAYS statement
logs 38 190
management vector transport (NMVT) 28 online help panels 322
messages 5 online publications
MSUs 5 accessing xxix
performance management 31 OPC/ESA (Operations Planning and Control/ESA) program
network log 394, 420 workload management using 31
Network management console views OPCTL (operator-control) TAF sessions 375
defining time schedules OPER
based on NMCSTATUS policy definitions 231 filter 268
network messages, suppressing 267 keyword, SRF action, IF-THEN or ALWAYS statement
NMC 196
defining time schedules operating procedures
based on NMCSTATUS policy definitions 231 centralizing operations 13
operator interface 321 consistency 4
NMC views operating system
applications that use 231 establishing communication with NetView 259
NMCSTATUS policy definitions z/OS
defining time schedules establishing communication with the NetView
for resources in NMC views 231 program 264
NMVT z/OS operating system
conceptual view 285 establishing communication with NetView 259
structure 284 Operating System
NMVT (network management vector transport) 28 NetView Program Interfaces 68
NODELMSG 188 operating-system automation facilities
non-IBM networks 30 message types 5
non-NetView systems overview 24
interfaces to 30 using to automate close to the source 46
NONE keyword, XHILITE action, IF-THEN or ALWAYS operations groups and automation teams 36
statement 198 operator
nonpersistent sessions 347 definition file (DSIOPF) 45
notation definitions 522
environment variables xxxi interfaces
path names xxxi designing 46
typeface xxxi options 10
notifications productivity 4
understanding 382 profile 522
notifying operators of problems 10 roles 47
NPM (NetView Performance Monitor) program 31 operator awareness 389
Index 555
PRI RECFMS (record formatted maintenance statistic) 287
keyword, SRF action, IF-THEN or ALWAYS statement RECMS (record maintenance statistic)
197 encapsulated 288, 289
printer management 32 RECMSs
priority selecting 289
dispatching 397 RECMSs 82 287
queued commands 84 RECMSs and RECFMSs
tasks 402 selecting 287
proactive monitoring recording AIFRs 406
advanced automation sample set 508 recording filters 268
Advanced Peer-to-Peer Networking resources 387 recording-filter attributes, setting 289
basic automation sample set 504 recovery
describing 317 advanced automation
for Tivoli NetView (AIX) 389 sample set 509
problem command lists
forwarding 13 advanced automation sample set 515
management 48 NetView 397
notification 10 overview 318
reports 39 recovery monitoring
procedure books 39 for Tivoli NetView (AIX) 389
processing RED
automation tables 124 COLOR action
command revision tables 112 IF-THEN or ALWAYS statement 187
message revision tables 104 REFRESH command
production phase 51, 443 using for dynamic operator control 74
productivity, operator 4 related products, automation 30
products, automation 19 RELCONID command 264
program operator interface (POI) 69 remote
program-to-program interface establishing 15
MVS system 28 initialization 15
sending alerts 321 operations 6, 329
Programming Language/I (PL/I) 19 Remote Operator Facility (ROF) for 9370s 15
programs, automation 19 renaming the sample set for automation 500
project-definition phase 35, 440 Report Management and Distribution System (RMDS)
project, production 51 program 32
propagating requirements
designing for 44 automation 40
single-system automation 12 business 37
propagating automation 325 data-processing 37
publications measuring progress toward 40
accessing online xxix sample measurements 447
IBM Z NetView xxvii system oriented 37
ordering xxx user oriented 37
PURGE TIMER command 21, 98 reset on match rule 310
resolution major vectors 292
resource hierarchy
Q DEVLAN3 292
QLIMIT 263 LANMGR 292
QLIMIT attribute 59 testing 293
QRESUME 263 resource list
queued commands NetStat 386
priority 84 Resource Object Data Manager (RODM)
quotation marks advantages 66
as delimiter for synonym value 203 automation with 65
consolidating automation 10
data model for 65
R events, automation 66
interactions 65, 66
R&TI GDS variable 292
introducing 22, 65
rack-mounted ES/9000, initializing 16
method procedures (methods) 23, 65
rate of information 4
planning automation 66
reasons to automate 3
resource recovery 383
receiving updates
resources
choosing AON/TCP interface 389
monitoring Advanced Peer-to-Peer Networking 387
Index 557
sample set (continued) Searching for a message (continued)
log analysis program 501 by placeholder 282
message suppression 501 SEC keyword, SRF action, IF-THEN or ALWAYS statement
miscellaneous 197
advanced automation 519 security
MVS samples location 500 designing for 45
preparing for NetView initialization extended multiple console support consoles 59
advanced automation 520 SELECT statement
preparing to use coding command revision table 116
advanced automation 520 coding message revision table 107
processes automated 506 definition 104, 111
starting NetView before JES selecting
advanced automation 520 Alert Major Vectors in an MDS-MU 291
starting NetView before VTAM encapsulated RECMSs 288
advanced automation 521 Field Existence 286
sample set for automation message IDs 280
using 499 RECMSs and RECFMSs 287
sample set, automation RECMSs with a Recording Mode of X'82' 289
advanced command lists 530, 531 subvectors 286
advanced samples 529 selecting and MSU
basic command lists 529 example 286
basic samples 528 selecting field contents 287
log analysis samples 532 selecting subfields 287
message suppression samples 532 semicolon
product IDs 525 none in synonym
setup samples 532 names 203
samples variables 203
automation 10 sender token 368
IHSAACDS 354 sending
IHSABCDS 354 messages, MVS operator console 93
IHSALCDS 354 sequence number
IHSAMFMT 354 automation tables 220
IHSANFMT 354 sequence, automation stages
progress measurements 447 example 16
project plan 439 overview 6
SAVECMD command 357 Service Level Reporter (SLR) program 32
saving Service Management Unite 279
information 90 service point 353
timer commands 97 service-level agreements
scenario (outline of events), RODM automation 66 identifying requirements 37
scheduled commands, verifying 412 understanding environment 39
scheduling SESSID, IF-THEN statement 175
automation stage 9 sessions
command execution full-screen TAF 375
using timer commands (overview) 21 LU 6.2, sending alerts 321
projects 43 LUC, alert forwarding 343
searching nonpersistent 347
automation tables 124 OST-NNT 344
command revision tables 112 persistent 347
message revision tables 104 PPI and TCP/IP, alert and message forwarding 353
searching for SETCONID command 56, 263
all occurrences of a field 291 sets of automation tables
multiple occurrences of a field in an MSU 290 processing 124
searching for a group of messages setting message attributes 79
by using placeholders 283 setting up communication between NetView and MVS 501
Searching for a group of messages shutdown
by Logical-AND Logic 282 advanced automation
by Logical-OR logic 282 sample set 510
searching for a message command lists
by Domain ID 281 advanced automation sample set 516
by Message ID 280 simulating
by position 282 messages 410
by token 281 MSUs 411
Searching for a message single-system automation
Index 559
subsystem (continued) system-oriented requirements 37
interface 393 systems that are not running the NetView program
names table (SSNT) 452 automating 16
subsystem interface
sending messages through 26
subvectors
T
selecting 286 TAF (terminal access facility)
summary actions 303 centralized operations 345
suppressing messages 7, 267, 501 describing 375
SVFILTER command 270 options 376
SYN VTAM interface 455
synonym TAF sessions 375
statements, example 209 tape management 31
SYN statement target system
definition 123 definition 14
design guidelines 207 Target System Control Facility (TSCF) 15
synchronizing automation across systems 325 task
synonym for timer command 97
names priority 402
no % 203 task global variable 90
no percentage symbols 203 TASK, IF-THEN statement 136, 176
variables tasks
no ; 203 compatibility with commands 83
syntax TCB 137
automation-table statements TCP/IP
BEGIN-END section 126 Automation 388
SYSCONID, IF-THEN statement 175 MIB polling and thresholdiing TCP/IP for z/OS only 389
SYSID, IF-THEN statement 176 team
SYSLOG assembling 35
MVS system 420 educating 47
SYSLOG keyword, IF-THEN or ALWAYS statement 198 roles 47
SYSOP destination for messages 201, 421 TECROUTE
sysplex 325 filter 268, 270
sysplex, MVS SRF action, IF-THEN or ALWAYS statement 196
advantages, automation 61 tecsce.dtd file 300
cross-system coupling facility (XCF) 61 terminal access facility (TAF)
introducing 61 centralized operations 345
planning automation describing 375
centralized NetView program automation 62 options 376
message routing 28, 62 VTAM interface 455
MPF actions 62 testing
system automation statements 294
automation 4 basic automation sample set 506
availability resource hierarchy 293
benefits 3 testing automation 405
designing for 45 testing command revision 122
financial value 41 testing message revision 109
commands 5 testing syntax of
logs 38, 420 sample automation table 505
messages 5 text comparisons
MSUs 5 using parse templates 283
system commands text position
using z/O processor to issue searching by 282
from the NetView program 264 TEXT, IF-THEN statement 177
system messages THEN, IF-THEN statement 126, 129
ensuring forwarding from the z/OS system to the THRESHOLD
NetView program valid specifications, table 177
using the subsystem interface 262 threshold rules 305
ensuring forwarding from z/OS to NetView THRESHOLD, IF-THEN statement 136, 177
using EMCS consoles 262 thresholdCount attribute 305
limiting the number processed by the NetView program thresholding and MIB polling
204 TCP/IP for z/OS only 389
system messages, suppressing 267 thresholds 383
system symbolic substitution 126 timeInterval attribute 305
Index 561
VTAM, starting after NetView 521
VTCOMPID, IF-THEN statement 180
W
wait processing 78, 91
WEEKDAYN, IF-THEN statement 180
WHEN statement
coding command revision table 116
coding message revision table 108
definition 104, 111
WHI keyword, COLOR action, IF-THEN or ALWAYS statement
187
workload management 31
write-to-operator and write-to-operator-with-reply
messages 24
Writing Automation Table Statements (to Automate
Messages) 280
WTO command 93, 451
WTO statement
coding command revision table 118
definition 111
WTOR command 93, 451
WTOs and WTORs 24
X
X.25 switched virtual circuits
monitoring 387
XCF (cross-system coupling facility), sysplex 61
XHILITE 289
XHILITE keyword, IF-THEN or ALWAYS statement 198
XITCI installation exit 23, 255
XITCI processing 82
XLO 289
XLO keyword, IF-THEN or ALWAYS statement 198, 271
XML files 300
Y
YEL
COLOR action
IF-THEN or ALWAYS statement 187
Z
z/OS
command processor 264
ensuring system messages forwarded from z/OS
using EMCS consoles 262
using the subsystem interface 262
z/OS operating system
defining NetView as subsystem 262
preparing for system automation 259
SC27-2846-05