Application Programmer's Guide
Application Programmer's Guide
Version 6 Release 3
IBM
SC27-2870-03
Note
Before using this information and the product it supports, read the information in “Notices” on page
153.
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-2870-02.
© 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................................................................................................................ vii
About this publication...........................................................................................ix
Intended audience...................................................................................................................................... ix
Publications................................................................................................................................................. ix
IBM Z NetView library............................................................................................................................ ix
Related publications ............................................................................................................................. xi
Terminology in this Library.................................................................................................................... xi
Using IBM Z NetView online help......................................................................................................... xii
Accessing publications online.............................................................................................................. xii
Ordering publications ...........................................................................................................................xii
Accessibility ............................................................................................................................................... xii
Tivoli user groups....................................................................................................................................... xii
Support information................................................................................................................................... xii
Conventions used in this publication........................................................................................................ xiii
Typeface conventions ......................................................................................................................... xiii
Operating system-dependent variables and paths.............................................................................xiii
Syntax diagrams...................................................................................................................................xiv
iii
Request Type 24: Wait for the Receive or Connect ECB..................................................................... 29
iv
NetView System Programmer..............................................................................................................57
Other System Programmer.................................................................................................................. 58
Operations Management Routing Considerations.................................................................................... 58
v
MDS Routing Information (X'1311') GDS Variable.............................................................................. 92
Agent Unit of Work Correlator (X'1549') GDS Variable....................................................................... 93
Accepting an MDS-MU..........................................................................................................................95
MDS-MU Example.................................................................................................................................95
MDS Data Types......................................................................................................................................... 95
CP-MSU Format.................................................................................................................................... 95
Routing Report Format.........................................................................................................................96
NMVT Format........................................................................................................................................97
R&TI Format......................................................................................................................................... 97
MDS Error Message Format....................................................................................................................... 97
MDS Error Message Example............................................................................................................... 99
Application Program-Level Error Reporting...................................................................................... 100
Notices..............................................................................................................153
Programming Interfaces..........................................................................................................................154
Trademarks..............................................................................................................................................154
Privacy policy considerations.................................................................................................................. 155
Index................................................................................................................ 157
vi
Figures
7. Interlock Condition......................................................................................................................................47
vii
viii
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 Application Programmer's Guide, is written for
programmers working with the NetView product and other related products. Use it to perform the
following tasks:
• Use the NetView LU 6.2 transport application programming interfaces (APIs).
• Write programs that send network management vector transport (NMVT) and control point
management service unit (CP-MSU) formatted alerts to the hardware monitor for processing; write
programs that send data buffers to, or receive data buffers from, other application programs.
• Use common operations services (COS) commands and COS command lists.
Intended audience
This publication is for system programmers. Readers should be familiar with the Systems Network
Architecture (SNA) requirements described in Systems Network Architecture Formats and in the SNA/
Management Services Alert Implementation Guide.
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.
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:
Typeface conventions
This publication uses the following typeface conventions:
Bold
• Lowercase commands and mixed case commands that are otherwise difficult to distinguish from
surrounding text
• Interface controls (check boxes, push buttons, radio buttons, spin buttons, fields, folders, icons, list
boxes, items inside list boxes, multicolumn lists, containers, menu choices, menu names, tabs,
property sheets), labels (such as Tip:, and Operating system considerations:)
• Keywords and parameters in text
Italic
• Citations (examples: titles of publications, diskettes, and CDs
• Words defined in text (example: a nonswitched line is called a point-to-point line)
• Emphasis of words and letters (words as words example: "Use the word that to introduce a
restrictive clause."; letters as letters example: "The LUN address must start with the letter L.")
• New terms in text (except in a definition list): a view is a frame in a workspace that contains data.
• Variables and values you must provide: ... where myname represents...
Monospace
• Examples and code examples
• File names, programming keywords, and other elements that are difficult to distinguish from
surrounding text
• Message text and prompts addressed to the user
• Text that the user must type
• Values for arguments or command options
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 xiv
• “Parameters” on page xiv
• “Punctuation and parentheses” on page xv
• “Abbreviations” on page xv
For examples of syntax, see “Syntax examples” on page xv.
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.
Abbreviations
Command and keyword abbreviations are listed in synonym tables after each command description.
Syntax examples
The following examples show the different uses of syntax elements:
• “Required syntax elements” on page xv
• “Optional syntax elements” on page xv
• “Default keywords and values” on page xvi
• “Multiple operands or values” on page xvi
• “Syntax that is longer than one line” on page xvi
• “Syntax fragments” on page xvi
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_2
KEYWORD1 OPTION=*
COMMAND_NAME
KEYWORD1 OPTION= *
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.
Fragment2
Fragment1
KEYWORD_A= valueA KEYWORD_B KEYWORD_C
Fragment2
KEYWORD_D KEYWORD_E= valueE KEYWORD_F
The program-to-program interface (PPI) runs as part of the IBM Z NetView (NetView) subsystem address
space. When an application calls the program-to-program interface in MVS, the request is performed
synchronously.
This chapter describes the following information:
• The functions of the program-to-program interface
• How applications pass requests to the program-to-program interface
This chapter does not describe how to build network management vector transport (NMVT) or control
point management service unit (CP-MSU) vectors.
Reference: Application programmers need to be familiar with the SNA requirements in the following
publications:
• Systems Network Architecture Formats
• SNA/Management Services Alert Implementation Guide
Note: Before you use the program-to-program interface, see Chapter 10, “Programming Techniques,” on
page 69.
Processing Requests
The PPI performs basic tasks called requests. Each program you write can contain a series of requests.
The PPI processes each request and generates a return code to indicate the status of the request.
Your program uses a request parameter buffer (RPB) to send a request to the PPI which uses the same
RPB to send data back to your program. See “Building the Request Buffer” on page 13 for more
information about buffer creation.
The request types available for use with the PPI for MVS are listed in Table 1 on page 2.
The NetView distribution tape provides examples of programs that send an NMVT or CP-MSU formatted
alert. See sample CNMS4287 for assembler, sample CNMS4257 for C, and sample CNMS4227 for PL/I.
The NetView distribution tape provides examples of programs that send a data buffer. See sample
CNMS4288 for assembler and sample CNMS4228 for PL/I.
The NetView distribution tape provides examples of programs, other than REXX, that receive a data
buffer. See sample CNMS4289 for assembler and sample CNMS4229 for PL/I. For a REXX example, see
“REXX Programming Examples” on page 78.
For high-level language programs, you can link-edit the CNMCNETV module during the link-edit step.
For assembler programs, you can use the LOAD macro to load the CNMCNETV module into memory and
then branch and link to the module. You can also link-edit the CNMCNETV module. For more information
about coding the CALL statement in assembler, refer to the z/OS library.
Register Conventions
Programs written in high-level programming languages, such as C and PL/I, and programs written in
assembler can use the CALL interface if they support the following register conventions expected by the
CNMCNETV module:
Register 1
Points to a memory location that contains the address of the request parameter buffer.
Register 13
Contains the address for the calling program's 72-byte save area.
Register 14
Contains the return address for the calling program.
Register 15
Contains the entry address for the CNMCNETV module.
Program Placement
NetView application programs and other user programs running in any address space can pass NMVT or
CP-MSU formatted alerts to the NetView hardware monitor for processing.
Additionally, a user program can send data buffers to (or receive data buffers from) another user program
running in any address space.
Note: Programs sending NMVT or CP-MSU formatted alerts to the NetView program and sending and
receiving data buffers need to reside in the host system that is processing the NetView program.
command_delimiter
NetView_command
timeout
command_delimiter
NetView_command
timeout
command_delimiter
Specifies the delimiter used to separate NetView commands when more than one NetView command
is entered, for example:
Or the entire NETVCMD parameter list can be enclosed in quotation marks as shown in the following
example:
NetView_command
Indicates the NetView command to be issued.
server_name
Indicates the name of the server. If specified, this value must be the same name used, or the default
value, on the name parameter of the CMDSERV command issued under the NetView program. If the
server name is not specified, the default value is DSICMDSV.
MVS any_command
␠-FORLOG data_to_log
Note:
1. Non-printable characters (00x - 3Fx) cannot be used with the APSERV interface.
2. If REXX is used, the authorized program can use the DSIPHONE subroutine to transmit the data across
the PPI. See Chapter 3, “Using REXX to Send Requests,” on page 31.
user_name
The user_name variable can be one of the following names.
• A NetView function name beginning with the question mark character (?).
• A NetView Tivoli Enterprise Portal user ID as defined with the NACMD.OPID.TEPLogonid statement
in the CNMSTYLE member. A NetView Tivoli Enterprise Portal user ID can be 1 - 10 characters in
length and can contain alphanumeric and the @, #, and $ characters.
Under certain conditions when user_name is a NetView Tivoli Enterprise Portal user ID, the APSERV
interface inserts records into NetView Tivoli Enterprise Portal workspaces; see “Usage Notes” on
page 9.
Usage Notes
• For each NetView or MVS command received, the APSERV interface logs a BNH806I message. The
message origin (domain field) for this message contains the SAF user name of the client sending the
command. For the command echo, the message origin lists the PPI name for the client.
• Messages generated by the APSERV interface are logged as usual for the NetView task where they
occur. Use the OVERRIDE NETLOG, SYSLOG, or HCYLOG options as needed for each task. Command
echoes and command responses are logged at the target task specified by the client. Command
response messages are submitted to the automation table before being logged. The BNH806I and error
messages are logged at the autotask or VOST where APSERV is running. See the OVERRIDE command
for more information about the options.
• The APSERV command is a long-running command. To end the command and close the PPI receive,
issue STOP FORCE=taskname specifying the task name of the autotask. Stop a VOST with the DETACH
command.
• If the APSERV command runs on an autotask (not a VOST), then ensure no other function is assigned to
that autotask. The APSERV command continuously waits for input records.
• If the following conditions are met, the APSERV interface inserts records into the NetView Tivoli
Enterprise Portal workspaces:
– The TEMA tower is enabled.
– The Z NetView enterprise management agent is active.
This chapter contains instructions for enabling the PPI. This chapter also describes the request parameter
buffer fields and return codes associated with each request type.
b. Add the storage requirements for all the receivers to get an estimate of the total storage required,
in bytes.
Some of the NetView functions using the PPI can require larger buffer queue lengths for the NetView
and VTAM PPI receivers. Refer to the storage estimating information in the IBM Z NetView Tuning
Guide to determine storage requirements.
3. If the NetView program is to start the NetView subsystem address space, make sure that the SSI.PPI
statement is set to YES in your CNMSTYLE definitions. If you start the subsystem address space
directly, make sure that the PPIOPT statement is set to PPI (this is the default value) in your
CNMSTYLE definitions. Note that if you start multiple subsystem address spaces in the same LPAR,
only one needs to support the PPI.
4. Review the NetView startup procedure before you start the PPI to determine how the NetView
subsystem address space is used. For more information about the startup procedure, refer to the IBM
Z NetView Installation: Getting Started. See the CNMSJ010 sample on the NetView distribution tape for
an example of a NetView subsystem address space procedure.
5. Ensure that the PPI module resides in an MVS authorized program facility (APF) authorized library if
the PPI module is to be processed as an APF-authorized program.
6. Enter the TRACEPPI command, if you want to enable the PPI trace facility. For more information about
the PPI trace facility, see Chapter 12, “Using the Trace Facility,” on page 89. Refer to the NetView
online help for information about the TRACEPPI command.
7. Activate and enable the generalized trace facility (GTF) for PPI. For more information, see Chapter 12,
“Using the Trace Facility,” on page 89.
Note: Unpredictable results can occur, including system abends and lost data if you stop the NetView
subsystem address space before you stop all applications that are using the address space.
Receiving Alerts
If the alert receiver task is started and the NetView subsystem or the DSICRTR task is inactive, the alert
receiver task issues messages CNM563I and DSI295I, and waits until both the NetView subsystem and
LIST DSICRTR
START TASK=DSICRTR
Note: If multiple NetView programs are active, start the DSICRTR task only in the NetView program
that performs problem determination (the network management NetView program).
3. Ensure that the NetView alert receiver task (CNMCALRT) is defined to the NetView program and is
started when the NetView program is started. If you are not using the PPI to send NMVT or CP-MSU
formatted alerts, defining or starting the CNMCALRT task is not necessary.
a. Issue the following command from the NetView command line to find the status of the CNMCALRT
task:
LIST CNMCALRT
b. If the status is ACTIVE, the NetView program can receive NMVT or CP-MSU formatted alerts and no
further action is needed.
c. Issue the following command if the status is INACTIVE and you are using the PPI to send NMVT or
CP-MSU formatted alerts to the NetView program:
START TASK=CNMCALRT
8–11 RETCODE DTRRETC 4-byte processing return code returned by the PPI on
every request type.
12–15 WORK-ADR DTRWKPTR Work storage address required by the NetView service
module, CNMCNETV. The work storage must be 128
bytes for MVS.
16–23 SENDER-ID DTRSDID Sender identification; 8-character identifier of the
sender program. The ID can contain alphabetic
characters A - Z, numeric characters 0 - 9, and the
following special characters: dollar sign ($), percent sign
(%), ampersand (&), at sign (@), and number sign (#). If
the ID is not 8 characters long, it must be left-justified
and padded with blanks on the right side.
20–23 ECB-ADR DTRECB Event control block address. The PPI returns this value
on request types 4 and 22 when the buffer queue of the
receiver has no buffers.
The PPI posts the receiver ECB when a data buffer is
received in the receiver buffer queue. Your program can
use a WAIT macro or a request type 24 to wait for the
PPI to post this ECB. The post code is the lower 3 bytes
of the ECB.
When the NetView subsystem ends, the ECB is posted
with a post code of 99.
20–23 BUFFQ-L DTRBQL Buffer queue limit; the maximum number of outstanding
data buffers that can be accepted for a receiver. This
limit is defined in a request type 4 when the receiver is
activated. The limit can be changed by a request type 9
when the receiver is deactivated, or by another request
type 4 for that receiver.
A sender can send data buffers to an active or inactive
receiver as long as the receiver buffer queue is not full.
When the receiver buffer queue is full, a sender program
receives a return code of 35 and the data buffer is not
accepted.
36–39 BUFF-ADR DTRUBPTR Buffer address; data buffers are copied to (or from) this
address. Both sender and receiver programs use this
field.
36–39 TCB-ADR DTRTCB Task control block address; the PPI returns this value on
a request type 3.
Some programming languages do not provide the
mapping facilities for a receiver program to determine
what to specify in the TCB-ADR field. Therefore, the
receiver program uses request type 3 to determine this
field.
If the TCB with specified TCB-ADR ends, the receiver
status is set to inactive.
The remainder of this section is a description of each request type for MVS, including the:
• RPB fields you specify in your program
• RPB fields that are returned by the PPI
• Return codes from the PPI
Request type 1 is used in both sender and receiver programs. Make the first request in any program you
write a request type 1 to query the PPI status. If the PPI is not active, no requests are processed.
Request type 2 is used in both sender and receiver programs. A request type 2 determines the status of
the receiver you specify in the RPB. A receiver's status can be active, inactive, or undefined. You can send
data buffers to an active or inactive receiver, as long as the receiver buffer queue is not full, but you
cannot send data buffers to an undefined receiver.
Return codes
Request type 3 is used in receiver programs. When the request type 3 completes successfully, the
NetView program returns the addresses of the ASCB and the TCB into the fields ASCB-ADR and TCB-ADR
respectively.
The NetView program uses the ASCB-ADR like a password. When you define a receiver (request type 4),
you must specify the ASCB-ADR. Any subsequent request to receive a data buffer (request type 22), to
deactivate the receiver (request type 9), or to reset the buffer queue limit (request type 4) must include
this ASCB-ADR. If the ASCB-ADR is not correct in a subsequent request, the NetView program does not
process that request.
Return codes
Usage Notes
Use request type 3 if your programming language does not provide the mapping facilities to determine the
ASCB and TCB addresses.
Request type 4 defines your program as a receiver and sets its status to active. Use this request type to
reset the buffer queue limit.
Return codes
Usage Notes
• The BUFFQ-L field specifies the maximum number of outstanding buffers that a receiver buffer queue
can have in storage. You can also change the BUFFQ-L when the receiver is deactivated (request type
9).
• A change in buffer queue limit does not affect buffers already in the queue. That is, if the limit is
decreased, buffers already in the queues are not lost. However, any new buffers that arrive for the
receiver are rejected if any existing buffers have reached or exceeded the buffer queue limit.
Request type 9 sets the receiver status to inactive. You can also reset the buffer queue limit when you
deactivate the receiver.
Return codes
Usage Notes
• Ensure that your program issues a request type 9 before it ends.
• If you do not set the buffer queue limit, it is automatically set to an unpredictable limit.
• The ASCB-ADR for this request must be the same as that specified for request type 4 for this receiver.
Request type 10 deletes an active receiver from the program-to-program interface and deletes the
receiver's buffers from the buffer queue.
Return codes
Usage Notes
The ASCB-ADR for this request must be the same as that specified in request type 4 for this receiver.
Request Type 12: Send an NMVT or CP-MSU Formatted Alert to the NetView Program
Request type 12 is used in sender programs. Request type 12 tells the program-to-program interface that
the data buffer you are sending is an NMVT or CP-MSU formatted alert and that the receiver is the
NetView alert receiver (NETVALRT). You do not need to specify a RECEIVER-ID in this RPB.
Return codes
Usage Notes
• An NMVT or CP-MSU formatted alert has no length restriction. An alert must include an NMVT or CP-
MSU header.
• Control is returned to your program immediately after the NMVT or CP-MSU buffer is copied into the
PPI.
• The PPI does not release the storage for the buffer. Your program must release this storage.
• The buffer queue limit for the NetView alert receiver is 1000 NMVT or CP-MSU formatted alerts. If this
limit is exceeded, your buffer is not accepted. If you receive a return code of 22 or greater for the
request type 12, the buffer has not been sent to the PPI.
• The SENDER-ID is used as the resource name on the hardware monitor Alerts-Dynamic panel. If the
hardware monitor hierarchy/resource list subvector (X'05') exists in the NMVT or CP-MSU formatted
alert buffer, the resource name specified in this subvector is used instead of the SENDER-ID as the
resource name on the Alerts-Dynamic panel.
Request type 14 is used in sender programs. With a request type 14, you can send a data buffer to the
program you specify in the RECEIVER-ID field.
Return codes
Usage Notes
• Your program must be APF-authorized to send a data buffer to an authorized receiver. A receiver is
defined as authorized by the AUTH-IND field for the request type 4 that initialized the receiver.
• Following the CALL, control is returned to your program immediately after the data buffer has been
copied into the receiver buffer queue in the PPI.
• The NetView program does not release the storage for the user data buffer. Your program must release
this storage.
Request type 22 is used in receiver programs. A request type 22 receives one data buffer from the
receiver buffer queue.
Note: One or the other of these fields can be returned, but not both.
Return codes
Usage Notes
• A receiver can receive one data buffer at a time from the receiver buffer queue in the order of first in,
first out (FIFO).
• If the request type 22 is successful, the PPI returns the identifier of the sending program in the
SENDER-ID field.
• If the return code is 30, the receiver program can use a request type 24 or a WAIT function to wait until
more data buffers are received in the receiver buffer queue. The PPI posts the receiver ECB when the
next buffer is received into the receiver buffer queue.
• Ensure that the ASCB-ADR is the same as that specified in the request type 4 that defined this receiver.
• The PPI returns the length of the incoming buffer in the BUFF-LEN field. If the return code is 31, the
receiver program needs to allocate a larger buffer and issue request type 22 again.
• Because the receive ECB is cleared whenever a request type 22 returns return code 30, you do not
usually need to clear it.
• The settings of CKBTS (byte 46 bit 4, bit 5, and bit 6) determine how buffers are to be received. PPI
receives can be done in FIFO order or they can be done by the sender name, sender address space
token, sender task token, or any combination of the three. The DTRSDNAM, DTRSDASR, and DTRSDTT
fields are filled in on each receive independent of the DTRCKBTS settings. If you set byte 46 bit 4, bit 5,
or bit 6, store a value in the corresponding token field prior to a receive unless you want to use the
values from a previous operation. If one or more of Byte 46 bits 4, 5, or 6 is set on a subsequent receive,
the receive returns data only from senders whose tokens match those indicated by the flags and
corresponding fields in the DTR.
Note: If the sender is running in SRB mode (as VTAM sometimes does), the DTRSDTT field is set to binary
zeros.
Request type 23 is used in receiver programs. With a request type 23, you can purge a data buffer from
the buffer queue.
Return codes
Usage Notes
• The ASCB-ADR for this request must be the same as that specified in the request type 4 that defined
this receiver.
• The settings of CKBTS (byte 46 bit 4, bit 5, and bit 6) determine how buffers are to be purged. PPI
purges can be done in FIFO order or they can be done by the sender's name, sender's address space
token, sender's task token, or any combination of the three. The DTRSDNAM, DTRSDASR, and DTRSDTT
fields are filled in on each purge independent of the DTRCKBTS settings. If you set byte 46 bit 4, bit 5,
or bit 6, then you must store a value in the corresponding token field prior to a purge unless you want to
use the values from a previous operation. If one or more of byte 46 bits 4, 5, or 6 is set on a subsequent
purge, the purge purges data only from senders whose tokens match those indicated by the flags and
corresponding fields in the DTR.
Request type 24 is used in receiver programs returning from the program-to-program interface. A request
type 24 functions as a wait macro. Use this request if your programming language does not provide a
WAIT function and you want your receiver program to wait for the NetView program to post the receiver
ECB.
Return codes
Usage Notes
• Use this request type only if your programming language does not have the ability to wait on an ECB.
• The NetView program returns the ECB-ADR on the request type 4 that initializes the receiver.
• You can use request type 24 after you receive a return code 30 in response to a request type 22,
indicating that your receiver program has received all available data buffers. At that point, your receiver
can end or wait for the PPI to post the receiver ECB. The PPI posts the receiver ECB when the next data
buffer is received into the receiver buffer queue. You can receive the data buffer using a request type
22.
• Results are unpredictable if the NetView subsystem address space ends while your program is using a
request type 24. The post might not occur.
• For applications using this request type running as a NetView application, run them under a NetView
optional task. If the application is run under a NetView OST, AOST, or PPT task, DOM buffers might
accumulate causing an out-of-storage condition before the PPI wait is satisfied.
DSIPHONE is a REXX external subroutine that you can use to send and receive data across the NetView
PPI.
DSIPHONE is used to return data back to the NetView program when commands are issued to TSO using
the PIPE TSO stage.
This function enables any z/OS application (capable of running REXX) to open, close, send data to, or
receive data from a PPI receiver. For a coding example that defines a server and client application, see
“REXX Programming Examples” on page 78.
DSIPHONE is called as a subroutine or function, and requires parameters. It cannot be used in the
NetView program (use the PPI pipe stage instead).
The format for DSIPHONE follows.
DSIPHONE
DSIPHONE
CALL 'DSIPHONE' 'VERSION' , 'version'
'OPENRECV' , 'receiver_name'
'AUTHRECV' , 'receiver_name'
SEND
RECEIVE
'CLOSE' , 'receiver_name'
SEND
'SEND' , 'receiver_name' , 'data_var [.]'
, 'sender_name'
RECEIVE
'RECEIVE' , 'receiver_name' , 'data_var [.]'
, 'sender_var'
, 'from_only'
Note:
1. Quotation marks are optional around the routine name, DSIPHONE, although they are recommended.
The absence of quotation marks means that REXX attempts to resolve the routine call internally first.
2. If you do not specify a positional parameter, you must indicate its absence by specifying a comma in
its place.
REXX resolves values of variables passed as parameters and passes those values to DSIPHONE. If the
variable has not been defined, the name of the variable is passed as the value. If the parameter is
enclosed in quotation marks, the literal value of that parameter is passed.
For more information about MLWTO attributes, refer to IBM Z NetView Programming: Pipes and IBM Z
NetView Programming: Assembler.
DSIPHONE Results
Because DSIPHONE is a REXX external routine, the result of a REXX call to DSIPHONE is contained in the
REXX-defined variable, result. If the DSIPHONE external function has a non-zero completion code, the
REXX language processor indicates an 'incorrect call to routine' return string.
DSIPHONE generates a return string in the REXX variable result, which can be parsed in the following
way:
In this case, the REXX variable phoneCode is a 4-byte positive integer that is left-padded with blanks. If
applicable, the REXX variable reasonCode is the return code from an unsuccessful internal program call
by DSIPHONE. The REXX variable diagnostic describes the error or the unsuccessful function call or
both.
A REXX coding example for handling the DSIPHONE result string follows.
The following table lists the return codes generated by DSIPHONE requests.
This chapter describes the NetView management services (MS) transport application program interface
(API). It also describes the use of the NetView high performance transport API and the differences
between it and the NetView MS transport API.
MDS Function
MDS sends and receives management services data, such as alerts or data pertaining to remote operator
control, from other devices, including System/390® (S/390®) and non-S/390 hosts. MDS supports high
data integrity across the transport and provides guaranteed error notifications for each message.
MS Transport Restrictions
To avoid performance problems, do not use the NetView MS transport for the following functions:
• Forwarding NetView system management facilities (SMF) records between communication
management configurations
• Sending the entire contents of databases between two different S/390 systems
• Running performance-critical applications (unless the architecture requires the use of MDS for the
application)
Send-Receive Interface
NetView programs that send and receive MS data can be written in assembler, C, or PL/I. You can also
split the send and receive functions and use different interfaces for each.
NetView send interfaces choices:
• You can provide the NetView program a prebuilt MDS-MU or have the NetView program build the MDS-
MU. This is determined by the input parameters that you specify.
Using a prebuilt MDS-MU simplifies the application, but can require more setup work to use the
interface.
• You can choose to wait for responses to requests and decide to buffer the responses or forward them
immediately.
For programs using PL/I and C, you can choose whether the NetView program suspends the program
while waiting for a response to a data request. If the program is to remain active, you can specify that
replies to a data request are buffered or are immediately forwarded to the program.
For programs using assembler, you can specify whether replies to a data request are buffered or are
immediately forwarded to the program. See “Receiving Synchronous and Asynchronous Replies” on
page 40 for more information.
Tasking Structure
As part of designing the application, consider the tasking structure of the application. The task under
which the registration macro or command is issued becomes the task to which unsolicited data intended
for the application is sent.
A program running under other NetView tasks, however, can pass the application name to the NetView
program as the origin application when issuing send requests. In such cases, replies and error messages
pertaining to the send request are sent to the task issuing the send request. If send requests are being
issued from tasks other than the registering task, ensure that the task is authorized to run the command
specified on the registration.
Chaining Replies
Applications can send multipart, chained replies to a request. When sending chained replies, the
application must specify the same MDS-MU agent unit of work correlator for each chained reply. The last
reply must be identified as last, either by using the appropriate parameter on the send service or by
setting the flag bits in a user-built MDS-MU.
An alternative to sending separate replies is to block multiple replies together as one data transmission
and use only one NetView send request. The NetView program supports data transmissions of up to 31K.
In the case of blocked replies, the receiving application must unblock the replies before processing them.
When one or more programs using a serially reusable resource modify the resource, they should not use
the resource simultaneously with other programs or other instances of the same program running in
different tasks. Consider, for example, a global variable, global KEEP, or data set (that will hereafter be
referred to as the resource) that contains data that needs to be updated by multiple programs running at
the same time. In order to maintain the integrity of the data, the updating of the resource needs to be
serialized. Some of these programs might only need to read the data; because they are not updating the
data, they can access it simultaneously with other programs. Other programs using the data, however,
might read, update, and replace the data in the resource. Each of these programs must be able to update
and replace the data without other programs accessing it. In addition, none of the programs that are only
reading the data should retrieve the data that another program is updating until after the data has been
replaced.
If your program uses a serially reusable resource, you must prevent incorrect use of the resource. You
must ensure that the logic of your program does not allow a second use of the resource before
completion of the first use. An Assembler program running in the NetView address space could use the
ENQ and DEQ macros to serialize uses of resources. However, command procedure environments do not
have access to ENQ/DEQ, unless they invoke an assembler program to do so. Using this method, however.
would not be a viable solution, because while waiting for the resource to become available, the entire task
does not run. Because of this, NetView processing such as giving control to high priority commands and
automating messages does not take place during the wait. The longer the wait for a resource using ENQ,
the more backed up a NetView task could become. The solution to these issues is to use the SEQUENT
command when running in a command procedure environment (REXX, HLL, or CLIST language). This
command allows for suspension of only the roll group that invokes it while waiting for a resource to
become available.
Use the SEQUENT command with the OBTAINEX (for exclusive use) or OBTAINSH (for shared use)
keyword to assign control of a resource to the current roll group. The NetView program determines the
status of the resource and takes one of the following actions:
• If the resource is available, the NetView program grants the request by returning control to the
requesting program.
• If the resource has been assigned to another task exclusively, the NetView program suspends the
requesting roll group until the resource becomes available.
• If the resource has been assigned to another roll group running in the same task, the NetView program
fails the request if either program requested the resource as exclusive. Otherwise (another roll group
running under the same task has shared use of the resource and the current request is for shared), the
NetView program grants the request.
A program that has obtained a resource makes it available to other requests by using the RELEASE
keyword on the SEQUENT command. When all shared uses or the single exclusive use of the resource has
been released, other waiting programs are given a chance to obtain control of the resource.
When an obtain request fails or the resource becomes available, the program resumes processing, with
the return code set to indicate the completion condition, as long as the roll group has not been
interrupted by a high priority command. In such a case, if the requesting roll group is not able to
immediately resume, other requesting programs are given a chance to obtain the resource. See
Processing the Requests in this chapter for more information.
Be especially careful when using a serially reusable resource in an exit routine or a program running as
high priority that gets control in the same task as one which performs processing related to that resource.
Because these programs can interrupt other programs running under the same task, they can cause a
lockout condition. See Avoiding Interlock in this chapter for more information.
The SEQUENT command identifies the resource by a character string, sometimes referred to as the
"SEQUENT name". This name needs not have any relation to any actual name of the resource whose
usage is being serialized. The NetView program does not associate a name with an actual resource; it
merely processes requests having the same name (matching exactly, including case) on a first-in, first-out
basis (as long as the requesting roll group is available to obtain the resource when it becomes available).
It is up to you to associate the name with the resource by ensuring that all users of the resource use the
same name to represent the same resource. The NetView program treats request having different
SEQUENT names as requests for different resources.
Choose SEQUENT names carefully. Because the NetView program itself might use the SEQUENT
command internally, any names that are used would begin with one of its 3-character prefixes in
uppercase, which includes the following prefixes:
• AAU, AQN, BNJ, CNM, DSI, DUI, DWO, EJN, EKG, EZL, FKV, FKX, FLB, FLC, and IHS.
Therefore, you should avoid using SEQUENT names that begin with one of these prefixes or any other that
is owned by an IBM program that can run in the NetView address space.
To obtain a SEQUENT resource, you specify either OBTAINEX (for exclusive control) or OBTAINSH (for
shared control).
When your program has exclusive control of a resource, it is the only one that can use that resource; all
other programs that issue the SEQUENT command with the OBTAINEX or OBTAINSH keyword for the
same SEQUENT name must wait until your program issues the SEQUENT command with the RELEASE
keyword, specifying that name. If your program is written to change the contents of the resource, it
should request exclusive control.
When your program has shared control of a resource, other programs can have concurrent access to the
same resource, if they also use the OBTAINSH keyword and there is not a request for exclusive use
before their request. If another program requests exclusive control over the resource during the time your
program has shared use of the resource, that program will have to wait until all the current users (with
shared access) have issued the SEQUENT command with the RELEASE keyword to release the resource.
If your program is written to read but not change the contents of the resource, it should request shared
control.
For an example of how the NetView program processes requests for exclusive and shared control of a
resource, see Processing the Requests in this chapter.
The NetView program performs periodic cleanup of unused SEQUENT names. The more names that are
currently known, the more often this cleanup occurs, and the less time since a name was last referenced
needs to have passed before a name is eligible to be deleted. Normally, SEQUENT names are kept around
for some time so that displays can be done (using the LIST keyword) to show the latest usage of the
names, and also to reduce the overhead of recreating control blocks when a new name is defined.
However, when a name has not been referenced for some time, the NetView program might determine
that it can be deleted, to recover some storage. If just a few names are known, names will stay around
much longer (up to a week after having been used last). When many names are known, unused names will
be deleted after a much shorter time (as little as 2 minutes). This allows for the possibility of a program
The NetView program constructs a unique list for each SEQUENT name that is requested to be obtained.
When a program (REXX, HLL, or CLIST language directly or indirectly called on behalf of a command
processor) makes an obtain request using the SEQUENT command, the NetView program searches the
existing lists for a matching name. If it finds a match, the NetView program adds the request to the end of
the existing list, unless another roll group under the same task is already waiting to obtain or owns the
same resource (and both requests are for shared access), in which case the request is added just before
that request (as it is most likely interrupting the other roll group and would need to be satisfied first). If
the NetView program does not find a matching name, it creates a new list, and adds the roll group's
request as the first (and only) element. The roll group gets control of the resource based on the following
conditions:
• The position of the roll group's request on the list.
• Whether the request was for exclusive or shared control.
• Whether the roll group is able to be resumed when the resource becomes available.
The best way to describe how the NetView program processes the list of requests for a resource is
through an example. The following figure shows the status of a list built for a particular SEQUENT name.
The S or E next to the entry indicates that the request was for either shared or exclusive control. The roll
group added as the first entry on the list always gets control of the resource, so the roll group represented
by GROUP1 in Step 1 is assigned the resource. The request that established GROUP2 in step 1 was for
exclusive control, so the corresponding roll group is suspended, as well as the roll groups represented by
all the rest of the entries in the list.
+---------------+
| GROUP 1 (S) |
+---------------+ +---------------+
| GROUP 2 (E) | | GROUP 2 (E) |
+---------------+ +---------------+ +---------------+
| GROUP 3 (S) | | GROUP 3 (S) | | GROUP 3 (S) |
+---------------+ +---------------+ +---------------+
| GROUP 4 (S) | | GROUP 4 (S) | | GROUP 4 (S) |
+---------------+ +---------------+ +---------------+
| GROUP 5 (E) | | GROUP 5 (E) | | GROUP 5 (E) |
+---------------+ +---------------+ +---------------+
| GROUP 6 (S) | | GROUP 6 (S) | | GROUP 6 (S) |
+---------------+ +---------------+ +---------------+
Step 1 Step 2 Step 3
Eventually, the roll group represented by GROUP1 issues the SEQUENT command with the RELEASE
keyword for the SEQUENT name to release control of the resource, and the entry for GROUP1 is removed
from the list. As shown in the Figure 6 on page 45, Step 2, GROUP2 is now first on the list, and, as long as
the roll group is able to be resumed (i.e. it has not been interrupted by a high priority command or other
processing is not taking place under the task), the corresponding roll group is assigned control of the
resource. The roll group is given a very short amount of time to take control of the resource; if that time
has elapsed without taking control, the next request is offered control. (Note that the issuing program is
not running, so there is nothing that code can do to affect this situation.) Because the request that
established GROUP2 was for exclusive control, the roll groups represented by all the other entries in the
list remain suspended.
In the Figure 6 on page 45, Step 3 shows the status of the list after the task represented by GROUP 2
releases the resource. Because GROUP3 is now at the top of the list, the roll group represented by
Use the SEQUENT command with the RELEASE keyword to release a serially reusable resource that you
obtained by using the SEQUENT command with the OBTAINEX or OBTAINSH keyword. If a program
running in a roll group tries to release a resource which it does not control, the NetView program returns a
non-zero return code. The NetView program might suspend many roll groups in many tasks while one roll
group maintains ownership of a resource. Having many tasks in this state might reduce the amount of
work being done by the system; therefore, you should issue a SEQUENT command with RELEASE as soon
as possible to release the resource, so that other programs can use it.
The NetView program automatically releases a resource, and issues message BNH417I when a SEQUENT
resource is held and one of the following conditions occurs:
• The roll group terminates before issuing a RELEASE of the resource. This might be as a result of the
program neglecting to issue a RELEASE request before terminating or because a RESET command was
issued on the task.
• The task is normally terminated (i.e. LOGOFF).
• The task is abnormally terminated (i.e. ABEND).
Avoiding Interlock
An interlock condition happens when two tasks are waiting for each other's completion, but neither task
can get the resource that it needs to complete. The Figure 7 on page 47 shows an example of an
interlock. Task A has exclusive access to resource Seq1, and task B has exclusive access to resource
Task A Task B
SEQUENT OBTAINEX=Seq1
SEQUENT OBTAINEX=Seq2
SEQUENT OBTAINEX=Seq1
SEQUENT OBTAINEX=Seq2
The example in the Figure 7 on page 47 involving two tasks and two resources is a simple example of an
interlock. The example could be expanded to cover many tasks and many resources. It is important that
you avoid interlock. The following procedures indicate some ways of avoiding interlocks:
• Do not request resources that you do not need immediately. If you can use the serially reusable
resources one at a time, request them one at a time and release one before requesting the next.
• Share resources as much as possible. If the requests in the lists shown in the above figure had been for
shared control, there would have been no interlock. This does not mean that you should share a
resource that you will modify. It does mean that you should analyze your requirements for the
resources carefully, and not request exclusive control when shared control is enough.
• If there are many users of a group of resources and some of the users require control of a second
resource while retaining control of the first resource, it is still possible to avoid interlocks. In this case,
each user should request control of the resources in the same order. For instance, if resources A, B, and
C are required by many tasks, the requests should always be made in the order of A, B, and then C. An
interlock situation will not develop, since requests for resource A will always preceded requests for
resource B.
• Keep in mind that commands running at high priority (possibly invoked with CMD HIGH) that interrupt
other commands can be of as an extension of the interrupted command, with respect to SEQUENT
resources. When writing a program, consider the effects of obtaining SEQUENT resources with respect
to other commands it might interrupt if running as high priority.
• Because NetView operators have the ability to issue the ROLL command to change the order of roll
groups, try to avoid holding a SEQUENT resource while ROLL can be issued. Changing the order of when
roll groups get control can result in an interlock condition.
• Be aware that scenarios involving multiple SEQUENT resources are not the only things that might be
involved in interlocks. If, for example, a program running under task B holds SEQUENT resource Seq1,
but is also written to continue only when a program running under task A has completed a certain
function. However, if the program running under task A is requesting exclusive use of Seq1 before
beginning the function (which it can't get because task B owns the resource), and interlock would occur.
Therefore, consider dependent functions in addition to SEQUENT resources when choosing the order in
which to perform functions.
REXX Example
Programs (most often commands) running in the NetView address space are oftentimes executed on
different tasks. This means that the same code can run in several places, possibly at the same time. Since
different operator IDs are also MVS tasks, there might be a need to serialize usage of a common resource.
Consider, for example, the need for a program to keep track of which operator IDs are executing that
program. A PIPE using global KEEP could be written to keep a list of those operator IDs that are executing
the code. Here is some REXX code that would perform such a function:
This PIPE first reads the contents of global KEEP named SEENOPS, removes the ID of the current
operator if it's in the KEEP, and re-writes the global KEEP with the ID of the current operator at the end of
the list. Although this is a single command, it contains two global KEEP stages: one to read the contents
and one to write the contents. If this piece of code were to run on multiple tasks at the same time, the
contents of the KEEP might not be reliable. Two or more tasks could be reading the contents of the KEEP
at the same time, and then update the KEEP with the new contents, eliminating the operator ID from the
list for one or more of the tasks. Or, one task could be reading the KEEP while another is writing to it, so it
might end up with only part of the contents, or even a duplicate of some of the operator IDs.
So, you see that this piece of code needs to be serialized. Here is the same piece of code protected by the
SEQUENT command:
myOP = LEFT(OPID(),8)
'SEQUENT OBTAINEX=KEEPOPERLIST'
'PIPE (NAME TRACKOPS END ;)' ,
' KEEP GLOBAL /SEENOPS/' ,
'| NLOC /'myOP'/' ,
'| GATHER: FANIN' ,
'| KEEP GLOBAL /SEENOPS/ *' ,
'; VAR myOP' ,
'| GATHER:'
'SEQUENT RELEASE=KEEPOPERLIST'
Note that the OBTAINEX and RELEASE are issued as close to the function needing serializing as possible,
to minimize the amount of time that the resource is held. Having the SEQUENT command invocations
present allows for the integrity of the global KEEP to be maintained. Note also that the name of the
SEQUENT (KEEPOPERLIST) doesn't match any name referenced in the PIPE.
To see the list of operators in the KEEP while other operators might be updating it, the following piece of
REXX code could be written:
'SEQUENT OBTAINSH=KEEPOPERLIST'
ADDRESS NETVASIS ,
'PIPE (NAME LISTOPS)' ,
' KEEP GLOBAL /SEENOPS/' ,
'| LIT /This is the list of operators:/' ,
'| CONS'
'SEQUENT RELEASE=KEEPOPERLIST'
Note that as the global KEEP is only being read, shared access is sufficient to provide data integrity. The
SEQUENT OBTAINSH invocation will prevent the updating of the list by the first piece of code, as
OBTAINEX requires exclusive access. However, multiple operators can see the list at the same time,
since the access is shared.
The NetView MS transport makes it possible for management services applications that are supplied with
the NetView product or written by users to communicate with management services applications in other
logical units (LUs) over LU 6.2 sessions. The transport acts as an interface between the application and
VTAM, establishing LU 6.2 conversations and keeping track of outstanding requests and time outs.
The NetView MS transport has the following three interfaces:
• Registration services
• Send macro
• Receive macro
For additional information about the PL/I, C, and assembler interfaces, see these books:
• IBM Z NetView Programming: PL/I and C
• IBM Z NetView Programming: Assembler
Registration Services
An application uses the CNMRGS (CNMREGIST) service routine in PL/I and C, or the DSI6REGS macro in
assembler, to inform the MS transport that it is ready to send and receive data.
The application can specify:
• Its application name (required).
• A command to run when unsolicited data is received for that application (required).
• A focal point category about which it wants to receive focal point information.
• Whether the application is a focal point application.
• Whether the application is to receive special notification of session outages at other management
services nodes.
• Whether the application is suspended after it issues a send request (CNMREGIST service routine only).
• Whether replies to a send request are buffered or immediately forwarded to the application (for the
CNMREGIST service routine, only if the application is not suspended).
Send Macro
An application uses the CNMSMU (CNMSENDMU) service routine in PL/I and C, or the DSI6SNDS macro in
assembler, to send data to another registered application in its own node or another node.
When using the CNMSMU (CNMSENDMU) service routine, an application can specify whether it is
suspended after it issues a send request, or, if it remains active, whether replies to the send request are
buffered or immediately forwarded to the application. When using the DSI6SNDS macro, an application
can specify whether replies to a send request are buffered or immediately forwarded to the application.
Destination Name
Your application can specify either a NetView LU name or a VTAM CP name as the destination name of an
MDS send request.
Use the VTAM CP name instead of the NetView LU name when issuing an MDS send request to a NetView
program running under VTAM. This procedure affects the following NetView services:
• DSI6SNDS macro
• CNMSMU (CNMSENDMU) HLL interface
• FOCALPT command
• DEFFOCPT statement
Note: Current® applications that use the NetView LU names do not need to be changed.
When several NetView programs run under VTAM, only one of them can receive multiple domain support
message units (MDS-MUs) addressed to the VTAM CP name. Specify which NetView program can receive
MDS-MUs addressed to the VTAM CP name specified with the VTAMCP.USE statement in the CNMSTYLE
member. See the IBM Z NetView Administration Reference for information about the VTAMCP statement.
The receiving NetView program must have VTAMCP.USE=YES specified in the CNMSTYLE member (if
Version 5 or later), or it must have VTAMCP USE=YES specified in the DSIDMNK member (for releases
prior to Version 5).
When replying to an MDS send request using NetView services, you must ensure that the reply destination
matches the origin of the request. A request originating from another NetView program with the VTAM CP
name as its origin must be replied to using the origin CP name (in place of the NetView LU name) as the
destination.
Note: For send requests within the same NetView program, the send service enters the NetView LU name
as the origin LU.
Restrictions
The send macro has several restrictions:
• VTAM must be active for data to be sent, even to an application within the same node.
• When data is sent within the same node, the origin and destination application names must be different.
• If one of the applications is an operations management served application, the other application
communicating with it must use the routing and targeting instruction general data stream (R&TI GDS)
variable in the data that it sends to the operations management application. For an application-reported
problem, use an MS request or reply containing a routing report, as defined in MS architecture, to report
the problem.
Receive Macro
A receive service, CNMGETD (CNMGETDATA) in PL/I and C and DSIGETDS in assembler, allows an
application to receive data from another application, including a focal point notification from operations
management.
NetView Operator
The NetView MS transport support is transparent to the NetView operator. However, the system
programmer can instruct the operator to issue the registration command (REGISTER) to define the
NetView program status as a focal point or entry point for a certain category of management services. An
operator can also use the REGISTER command with the QUERY option to display a list of registered
applications. Refer to NetView online help for more information about the REGISTER command.
The NetView operator sees messages related to the transport functions. Several other messages are
logged only to the network log to assist in problem determination. Most of the messages have prefixes of
DWO45 and DWO46. LU 6.2 problems might generate VTAM error messages or DSI769I messages. Refer
to NetView online help for a complete description of these messages.
Syntax errors in data received from other nodes cause an alert to be passed to the hardware monitor.
BIND Setting
The NetView program uses VTAM LU 6.2 support. The following information describes how the VTAM
program handles the bytes in the BIND. The information uses zero-origin indexing. The first byte of the
BIND is zero (0), the second is 1, and so on.
On initial contact with a previously unknown LU, the VTAM program assumes that the LU supports parallel
sessions (byte 24 of the VTAM BIND settings set to X'23') and attempts to establish a SNASVCMG session
to negotiate session limits.
You can change the byte-24 setting to X'2C' if your LU supports only single sessions and you want to
negotiate the BIND.
You can reject the BIND with a sense code of X'0835xxxx', where xxxx is one of the following values:
• The value of X'0018', the offset of the byte for parallel session support (byte-24 in Table 4 on page 53)
• The offset of the first character of the SNASVCMG name in the mode name structure subfield
8, 9 Controls secondary logical unit (SLU) pacing. VTAM indicates one-stage pacing, and the exact
pacing window values can vary. VTAM supports adaptive session-level pacing.
10 Controls the SLU's maximum send RU size. VTAM accepts values from X'80' to X'FF'. The
default is X'85' (256 bytes). See Systems Network Architecture Formats for the hexadecimal
format of this byte.
11 Controls the primary logical unit's (PLU's) maximum send RU size. VTAM supports X'80' to
X'FF' with a default of X'85'.
12, 13 Controls PLU pacing. VTAM supports adaptive session pacing. VTAM's default pacing window
sizes are X'3F'.
14–22 Always set to X'060200000000000000'.
23 Indicates security support. The NetView program does not use security features that are
available in LU 6.2 architecture. Therefore, the default value of this byte is X'00'.
24 Contains LU 6.2 flags. The VTAM program sets the byte to X'23' for parallel session capable
partners or X'2C' for single-session capable partners.
25, 26 Always set to zero. This indicates that limited-resource sessions and cryptography are not
supported.
FMH-5 Restrictions
The NetView program does not use the full range of LU 6.2 options on its conversations. The following list
shows restrictions on the function management header-5 (FMH-5) that can be sent to start a
conversation:
• The transaction program (TP) name you specify in the FMH-5 must be X'23F0F0F1', which is the
architected name for MDS-RECEIVE.
• The NetView program supports only basic conversations.
• The synchronization level must be CONFIRM.
• Security subfields are not used and are not accepted.
Send Process
The NetView program uses the following process to send the data that has been passed to it:
1. The NetView program determines whether session limits have been established with your LU. If not,
the NetView program issues a change number of sessions (CNOS) verb request.
Note: If your LU has established a session with the NetView program using an INIT-SELF or has set
session limits as part of its initialization, the NetView program does not issue the CNOS request.
2. When session limits are set, the NetView program issues an ALLOCATE request.
3. The NetView program issues SEND-DATA and CONFIRM messages until nothing is left to send. In
some error recovery cases, the NetView program can issue a CONFIRM message with no data
preceding it.
4. When no data remains to be sent, the NetView program issues a DEALLOCATE request.
Registration Service
A registration service macro CNMRGS (CNMREGIST) service routine in PL/I and C or the DSI6REGS macro
in assembler specifies the following information to operations management:
• Service application name
• Command processor name
• Task name for receiving unsolicited data
• Whether to be informed of focal point information
Buffering Replies
When using the CNMRGS (CNMREGIST) service routine, an application can specify whether it is
suspended after it issues a send request, or, if it remains active, whether replies to the send request are
buffered or immediately forwarded to the application. When using the DSI6REGS macro, an application
can specify whether replies to a send request are buffered or immediately forwarded to the application.
REGISTER Command
Use the REGISTER command to access the functions provided by the CNMRGS (CNMREGIST) service
routine in PL/I and C, or the DSI6REGS macro in assembler. Refer to NetView online help for more
information about the REGISTER command.
Send Macro
A send service macro (CNMSENDMU service routine in PL/I and C or the DSI6SNDS macro in assembler)
allows the served application to send data to another registered application in the same node or a remote
node.
When using the CNMSMU (CNMSENDMU) service routine, an application can specify whether it is
suspended after it issues a send request or, if it remains active, whether replies to the send request are
buffered or immediately forwarded to the application. When using the DSI6SNDS macro, an application
can specify whether replies to a send request are buffered or immediately forwarded to the application.
Destination Name
Your application can specify either a NetView LU name or a VTAM CP name as the destination name of an
MDS send request.
Use the VTAM CP name instead of the NetView LU name when issuing an MDS send request to a NetView
program running under VTAM. This procedure affects the following NetView services:
• DSI6SNDS macro
• CNMSMU (CNMSENDMU) HLL interface
• FOCALPT command
• DEFFOCPT statement
Note: Current applications that use the NetView LU names do not need to be changed.
When multiple NetView programs run under VTAM, only one of the NetView programs can receive
multiple domain support message units (MDS-MUs) addressed to the VTAM CP name. Determine which
one of several NetView programs can receive MDS-MUs addressed to the VTAM CP name with the
VTAMCP.USE statement by using the CNMSTUSR or CxxSTGEN member. For information about the
VTAMCP statement, see IBM Z NetView Administration Reference; for information about changing
CNMSTYLE statements, see IBM Z NetView Installation: Getting Started.
Both the sending and receiving NetView programs must have VTAMCP.USE=YES specified in the
CNMSTYLE member (if Version 5 or later), or it must have VTAMCP USE=YES specified in DSIDMNK (for
releases prior to Version 5).
When replying to an MDS send request using NetView services, ensure that the reply destination matches
the origin of the request. A request originating from another NetView program with the VTAM CP name as
its origin must be replied to using the origin CP name (in place of the NetView LU name) as the
destination.
Note: For sends within the same NetView program, the send service enters the NetView LU name as the
origin LU.
Receive Macro
A receive service routine, CNMGETD (CNMGETDATA) in PL/I and C and DSIGETDS in assembler, enables
the served application to receive data from another application, including a focal point notification from
operations management.
NetView Operator
The NetView MS transport support is transparent to the NetView operator. However, the system
programmer can instruct the operator to issue the registration command (REGISTER). This might be
necessary for the operator to send and receive data from other management services applications using
operations management. The operator can also use the REGISTER QUERY command to display a list of
registered applications.
NetView Web Services Gateway provides you with an industry-standard open interface into the NetView
program. The following functions are provided:
• Synchronous NetView commands and responses are text based. The command input and the output is
in XML format. A timeout value is used to wait for the command response. If a command fails to return
data in time, an error is returned in the form of a SOAP fault.
• The transport mechanism is SOAP over HTTP/HTTPS. This provides a data encryption facility using the
SSL V3 protocol. Encryption can be provided by the Application Transparent Transport Layer Security
(AT-TLS) function.
• User ID and password or password phrase authentication and command authorization is done using
existing NetView security functions.
• Certificate authentication is supported.
• A Web Services Definition Language (WSDL) file is provided for automatic generation of a proxy-client or
to use with a Dynamic Invocation Interface (DII) client.
• NetView Web services are IPv6 enabled.
You can use one of the following URLs depending on the output format (see Table 5 on page 60) that you
use:
• http or https://yournvhost:port/znvwsdl.wsdl
• http or https://yournvhost:port/znvwsdl1.wsdl
• http or https://yournvhost:port/znvwsdl2.wsdl
The output generates bindings that are necessary for the client. You can also use Rational Rose®
Technical Developer V7.0 to generate the proxy-client connection.
Table 5 on page 60 lists the supported output formats for the NetView WSDL files.
<Name> <Name>
The NetView operator ID under which the request is to be run. NetView User ID
The operator ID is defined in the DSIOPF member. The </Name>
<Password>
command is sent to this task to be run under the authority of this NetView Password
operator. </Password>
<Password>
The NetView operator password or password phrase that is
defined in the DSIOPF member or using a SAF product such as
RACF. Either the NetView program or RACF is used to
authenticate this password or password phrase.
The IBM-037 and UTF-8 code pages are used for conversion
between the host and distributed environment. Verify that
passwords or password phrases are printable in both code
pages. Enclose the password or password phrase in a CDATA tag
if it has special characters. If you are using the HTTPS protocol,
the password or password phrase is encrypted.
The SOAP envelope body contains the SOAP request and its tags as shown in Table 7 on page 61.
Figure 9 on page 62 shows the response received. The response is sent in a SOAP element enclosed by
the <xmlout> tag.
Output Format
The NetView Web Services server supports different XML output formats depending on the URL value
supplied when connecting to the SOAP server. Including HTML in XML documents might result in parsing
problems because HTML coding does not follow XML and XSL rules for well-formed documents. The XML
output method uses escape characters for the ampersand (&), quotation mark ("), greater-than symbol
(>), and less-than symbol (<) when outputting text nodes. For example, if output escaping is disabled,
<abc>&</abc> remains intact. With output escaping enabled, the output include single quotation marks:
‘<abc>&</abc>’. This ensures that the output is well-formed XML. This is needed when output is not
well-formed XML, for example, when the output includes ill-formed sections that are to be transformed
into well-formed XML by a subsequent non-XML process.
The NetView high performance transport API provides a better-performing alternative to the NetView MS
transport for user-written applications that need an LU 6.2 API. The NetView high performance transport
API makes it possible for applications that are supplied with the NetView product or written by users to
communicate with applications in other LUs (that do or do not use the NetView program) over LU 6.2
sessions.
Communication between applications using this transport is in the form of MDS-MUs. See Appendix A,
“Data Formats for LU 6.2 Conversations,” on page 91 for information about the format of MDS-MUs.
NetView functions that are not performing architected management services functions also use the
NetView high performance transport API.
The NetView high performance transport API acts as an interface between the application and VTAM. It
establishes LU 6.2 conversations and monitors outstanding requests and timeouts. The NetView high
performance transport API has the following three interfaces:
• Registration service
• Send service
• Get data facility
For additional information about the PL/I, C, and assembler interfaces refer to IBM Z NetView
Programming: PL/I and C and IBM Z NetView Programming: Assembler.
Registration Service
An application uses the CNMHRGS (CNMHREGIST) service routine in PL/I and C or the DSIHREGS macro
in assembler to inform the NetView high performance transport API that it is ready to send and receive
data. The application specifies the following information:
• Its application name
• A command to run when data is received for that application
• The logmode the application uses
No validity checking of the specified logmode is done, except to ensure that if it is specified on a
REPLACE=YES registration, it matches the existing logmode. To change the logmode used to send data,
an application deregisters and then reregisters.
If the logmode does not exist in the VTAM logmode table, the first entry in the table is used for the
default. Because VTAM overrides many of the BIND parameters, the first logmode works in setting up
an LU 6.2 session. The session parameters, however, might or might not be wanted in such a case.
When using the CNMHRGS (CNMHREGIST) service routine, an application can specify whether it is
suspended after it issues a send request, or, if it remains active, whether replies to the send request are
buffered or immediately forwarded to the application. When using the DSI6HREGS macro, an application
can specify whether replies to a send request are buffered or immediately forwarded to the application.
The application can also specify whether it wants to receive special notification of session outages at
other high performance nodes.
When registering an application, the type of session outage notification it receives can be specified:
ALL
Session outage notifications are received even if the NetView program cannot determine that the
outage is caused by a problem.
Send Service
An application uses the CNMHSMU (CNMHSENDMU) service routine (in PL/I and C) or the DSIHSNDS
macro (in assembler) to send data to another registered application in its own node or another node. In
PL/I and C, the service is provided by the CNMHSMU (CNMHSENDMU) service routine.
When using the CNMHSMU (CNMHSENDMU) service routine, an application can specify whether it is
suspended after it issues a send request, or, if it remains active, whether replies to the send request are
buffered or immediately forwarded to the application. When using the DSI6SNDS macro, an application
can specify whether replies to a send request are buffered or immediately forwarded to the application.
The send macro has several restrictions:
• VTAM must be active for data to be sent, even to an application within the same node.
• When data is sent within the same node, the origin and destination application names must be different.
• If you have interconnected networks, destination LU names must be unique to ensure reliable routing.
If a blank NETID is supplied (or the default value is used), the NetView program fills in the correct
NETID prior to sending data through the network.
6. Deregister the application using the macro interface in a command list when you no longer want to
send or receive data with this application or when the default receiving task ends.
When an application is deregistered, any outstanding send requests expecting a reply are canceled,
and MDS error messages are sent to the other applications involved in the transaction. This occurs
even for send requests originating under a task other than the registered task. Deregistration prevents
applications from sending data using the deregistered application name as the origin application.
This chapter describes programming techniques and provides pseudocode examples explaining how to
use the program-to-program interface (PPI). You can transport these pseudocode examples to other
operating systems.
A regular expression is a pattern that abstractly describes the desired format of a string. In this way,
regular expressions are more powerful than a substring, and can describe many different elements that
resemble character data. You might use a regular expression to filter data from a file, or validate user
inputs to a program.
The basic elements of a regular expression are its tokens and quantifiers. A token describes what
character, or type of character, should appear in the string. A quantifier describes how many of that token
there should be. Quantifiers can be exact numbers or ranges of numbers.
By default, a string matches a regular expression if the match occurs anywhere in the string. However,
you can confine the match to the beginning, end, or entirety of the string, if desired.
The maximum length of a regular expression, including its delimiters and options, is 255 characters.
The following tables appear at the end of this section, and describe different types of characters:
• Table 1: Invalid delimiters
• Table 2: Word characters
• Table 3: Whitespace characters
• Table 4: Reserved characters
Token
Quantifier
\b
\B
delimiter
Options
Token
symbol
.
\d
\D
\p
\P
\s
\S
\w
\W
\xNN
\special_char
Quantifier
*
+
{ number }
min ,
, max
min , max
Options
i
Operand Descriptions
delimiter
Specifies the regular expression delimiter. A regular expression must start and end with the same
delimiter character. SeeTable 1 for a list of invalid delimiters.
^
The caret (x’B0’) is a positional anchor that confines the regular expression to the beginning of the
string. If specified, the string is only considered a match if the match occurs at the beginning of the
string. Otherwise, the match fails, even if it occurs elsewhere.
$
The dollar sign (x’5B’) is a positional anchor that confines the regular expression to the end of the
string. If specified, the string is only considered a match if the match occurs at the end of the string.
Otherwise, the match fails, even if it occurs elsewhere.
\b
An escape sequence that represents a word boundary. See the Word Boundaries section for more
information about this escape sequence.
\B
An escape sequence that represents a non-word boundary. See the Word Boundaries section for more
information about this escape sequence.
Token
.
The period (x'4B') is a wildcard that represents any character, including unprintable characters.
\d
An escape sequence that represents a digit from 0 to 9 (x'F0' to x'F9'), inclusive.
\D
An escape sequence that represents a non-digit: any character other than 0 to 9 (x'F0' to x'F9'),
inclusive.
\p
An escape sequence that represents a lowercase letter from a to z (x'81' to x'A9'), inclusive.
\P
An escape sequence that represents an uppercase letter from A to Z (x'C1' to x'E9'), inclusive.
\s
An escape sequence that represents a whitespace character. See Table 3 for a list of whitespace
characters.
\S
An escape sequence that represents a non-whitespace character. See Table 3 for a list of whitespace
characters.
Usage Notes
• A regular expression is nothing more than a string that is processed in a special way by the NetView
program. As such, regular expressions must always appear in the form of strings. Inside the string, the
regular expression must be enclosed within its own set of delimiters, as matching options may appear
after the ending delimiter.
• The simplest regular expression is 2 delimiters together, such as, //. This regular expression matches
only the empty string.
• The backslash (x'E0') is always the escape character. In addition to coding the built-in escape
sequences, you can use the backslash to specify escaped character literals for reserved characters,
including the backslash itself. See Table 4 for a list of reserved characters.
– If your regular expression contains the delimiter character as part of the expression, you can also
escape it with the backslash, or choose a different character as the delimiter.
Word Boundaries
A word boundary is a zero-width test between two characters. To pass the test, there must be a word
character on one side, and a non-word character on the other side. It does not matter which side each
character appears on, but there must be one of each.
Table 2 defines word characters. For the word boundary test only, which must always have two
characters to consider, the beginning and end of the string are considered non-word characters.
To better understand the concept of a word boundary, consider the string:
HELLO WORLD!
Now, place an imaginary line between any two characters. These two characters, on either side of the
line, are now the candidates for the test. In this example, the imaginary line is represented by a vertical
bar between the letters W and O. Both characters are underlined for emphasis.
HELLO W|ORLD!
Because the characters W and O are both word characters, the imaginary line is not on a word boundary,
and the test fails.
Now, place the imaginary line at the very beginning of the string:
|HELLO WORLD!
For this test, there is only one real character, H, so the beginning of the string counts as the second
character. Since H is a word character, and the beginning of the string is considered a non-word character
(for the word boundary test only), the imaginary line is on a word boundary, and the test passes.
Character Tables
All ranges in the following tables are inclusive. If N/A appears in the Symbol column, it corresponds to a
non-displayable character.
Examples
/* EMAILVFY EXEC */
ARG theEmail
/*--------------------------------------------------------------------*/
/* This is a very simple regular expression for an email address. */
/* Email addresses can of course be more complex than this, but we */
/* use this one for the purposes of this example. */
/*--------------------------------------------------------------------*/
IF MATCH('/^\w+\.?\w+@\w+\.\w+$/', theEmail) THEN
SAY "The email address is valid."
ELSE
SAY "Invalid email address!"
Initializing a Receiver
The following pseudocode example shows initializing a receiver:
IF RETCODE = 0 THEN
save the ASCB returned from PPI ( )
ELSE ( )
EXIT with error
ENDIF
( Fill in all required fields in the Request Parameter Block for request)
( request type 4. )
SELECT on RETCODE
( Take appropriate action for the return code. )
( NOTE, it is no longer necessary to save the ECB returned from the )
( connect. PPI always returns the ECB to wait on whenever a wait )
( is necessary. )
ENDSELECT.
Receiving a Buffer
The following pseudocode example shows receiving a buffer:
SELECT on RETCODE
CASE 0
( A buffer was successfully received, take appropriate action )
CASE 31
( The buffer length was too small, DTRUBL will be filled in with )
( the length of the incoming buffer. If DTRUBL was set to zero, )
( this will be the return code sent back. )
CASE 30
( No buffer to receive. Issue a wait yourself or issue a request )
( type 24 to do the wait for you. )
OTHERWISE
( An error occurred, take appropriate action. )
ENDSELECT
ENDWHILE
SELECT on RETCODE
CASE 0
( Send successfully completed, take appropriate action. )
OTHERWISE
( An error occurred, take appropriate action. )
ENDSELECT
Disconnecting a Receiver
The following pseudocode example shows disconnecting a receiver:
SELECT on RETCODE
CASE 0
( Disconnect successfully completed, take appropriate action. )
OTHERWISE
( An error occurred, take appropriate action. )
ENDSELECT
Usage Scenario
Two application programs running anywhere that TSO REXX runtime environments are available, within
the same MVS image, can send data to and receive data from each other using a PPI receiver name known
to both applications.
The following example shows a server/client application:
Client application
/* REXX */
/* Define a new PPI receiver and name it CLIENT */
Call DSIPHONE 'OPENRECV', 'CLIENT'
command = 'Some commmand to be processed.....'
/* Send command to PPI receiver, SERVER, */
Server application
/* REXX */
/* Define a new PPI receiver and name it SERVER */
call DSIPHONE 'OPENRECV', 'SERVER'
do forever
/* Wait (forever) for data to arrive on receiver SERVER. Receive */
/* each buffer into REXX variable, cmd. Put the sender's receiver */
/* name into REXX variable, clientReceiver */
call DSIPHONE 'RECEIVE', 'SERVER', 'CMD', 'CLIENT_RECEIVER'
/* process command and put the result into the REXX stem, output. */
Message to Operator
The message to operator (MTO) sends unsolicited messages to a NetView operator console. MTO is
serviced by the DSIGDS task. You can use automation to trap the messages.
The NetView program uses the X'50' subfield of the X'06' subvector of the X'006F' major vector to route
the MTO to the NetView operator console. All MTOs are sent to automation in the native MSU format. Note
that some MTOs arrive enveloped in a MDS-MU across LU 6.2 sessions, whereas other MTOs arrive
enveloped in NMVTs across SSCP-PU sessions. Regardless of the envelope, all MTOs are first sent to
automation as an MSU (MDS-MU or NMVT). If a match for the MSU MTO exists in the automation table,
the MTO is not displayed to the NetView operator's console. If no a match for the MSU MTO exists in the
automation table, the MTO is sent to automation as a series of single line messages. After the message
automation process, the single line messages are sent to the NetView operator console.
, RD , NET
SPLOOKUP
Eables you to issue COS commands for a given line. SPLOOKUP determines the parameters needed to
issue a COS command for a line using the global variables set up by INITCNFG.
If SPLOOKUP is called with the LINE option, it returns the SP name, the APPL name, using-node, and
remote device for the specified line in task global variables SP, APPL, UN, RD, and NET. If called with
the SP option, SPLOOKUP returns a list of lines defined to the specified SP name in the task global
variables LINECNT, LINE1, LINE2, and so on. The syntax is:
SPLOOKUP
SPLOOKUP LINE linename
SP spname
FINDNCP
Displays events that the NetView program receives from the using-node for a given service point. This
command list is useful if you are having problems getting data back from a service point.
FINDNCP looks up the using-nodes for a given SP. If multiple using-nodes are defined, they are listed.
If only one using-node is defined, FINDNCP calls the Most Recent Events panel of the hardware
monitor to show any events for the using-node. Usually, the using-node is the NCP linked to the SP.
The syntax is:
FINDNCP
FINDNCP spname
TESTSP
Is used to issue COS commands for a given line. TESTSP calls SPLOOKUP, issues the COS commands,
and displays the results. You can use TESTSP as a base for command lists that run COS commands
automatically. The syntax is:
TESTSP
TESTSP linename
TESTRCMD
Tests the use of RUNCMD with the CLISTVAR keyword. This command list issues RUNCMD to run a
command at the service point. Results are stored in command list variables, and the data is displayed
when control is returned. The syntax is:
command '
Where:
command
Is the command to run at the service point.
If you do not specify the net variable, the system defaults to the local network name. The command
must be in single quotation marks.
The NetView REST Server makes it possible for users to send requests to, and receive data back from the
NetView program by using a set of Application Programming Interfaces, or APIs. These APIs are each
assigned a specific task or set of tasks with the exception of the General NetView Command API.
After following Configuring and Running NetView REST Server in the IBM Z NetView Installation:
Configuring Additional Components to enable the server, the APIs are available for use. If you have Zowe™
installed, the sample Zowe application that NetView provides makes use of the APIs. For more
information, see Installing Zowe™ Sample Application in Configuring and Running NetView REST Server in
the IBM Z NetView Installation: Configuring Additional Components. The sample introduces use of the
APIs and the kind of applications are possible. In addition to the sample, the NetView information center
and NetView-supplied Swagger documentation for the APIs is available. The Swagger documentation can
be reached at:
From there, you can view the APIs that have been provided, test them, and review the documentation
that shows how and when to use them. Some specific features on that page that can be helpful:
• Near the top of the Swagger page is a hyperlink to a JSON copy of the API documentation that contains
more detailed information than the Swagger page. The hyper link will be in the following format:
• Each group of APIs will have its own drop-down menu. You can open these drop-downs to see the
individual APIs belonging to that group. The APIs are sorted by their URIs.
• For each individual API, you can click to open them, which will show you with the API description, the
parameters it expects, links to drive the API for test purposes, descriptions of the response codes you
can expect, and the structure of the payload being sent back.
• Near the bottom of the page there is a drop-down menu called NetView that contains all of the APIs in
one menu.
• There is a Models drop-down menu at the bottom of the Swagger page. If you click the Models box to
expand it, you can find all of the objects that have been created as models for the NetView REST APIs.
This shows the kind of data sent for a request and the contents of the response.
• Before trying the APIs, you must run the login request API with valid credentials.
When logged in, you are able to begin building NetView APIs into your own standalone applications as
well as Zowe™ applications.
Following are the provided APIs. Each API shows the a brief description plus any required parameters
needed. Further information can be found in the Swagger Documentation. In particular, information
regarding the format of the JSON objects being sent and received by the server is documented there.
Canzlog
• Retrieve a Canzlog Message
– Retrieve a message or set of messages from Canzlog. With this URI, only certain parameters should
be used based on the information that the request is supplying.
Automation
• Create the Automation Table Statement
– Create Automation Table statement based on input JSON. This request will be accompanied by a
JSON object that will contain information to build the automation table statement. The format of this
JSON must match the format presented in the Swagger Documentation.
• Syntax Check the Statement
– After an automation table statement has been created, the Validation API allows users to ensure that
it has been created 100% correctly. Under the hood, the server will create an INSTORE member in
NetView and run an AUTOTBL TEST command on that member. All messages related to this action
will be returned so that a user will know exactly what is wrong with their statement if the validation
fails.
• Test the statement
– This function replays the recorded Canzlog message with the same message and its attributes. The
API required inputs are as follows:
- Member name to which the messages was recorded
- Automation Table Statement
– The command being driven is AUTOTEST. Please note that no actions are taken on the system, it is all
simulated through AUTOTEST command.
• Save the Statement
– Once a user has created a statement which is valid and passes testing, they are able to save the
statement in a member. You will need to provide the API with a fully-qualified data set name as well
as the statement you wish to save. The API will also allow you to specify whether you’d like to
append your statements to the member or replace it entirely with your new statement.
Network
• Retrieve DDVIPA Data
– This APIs show the percentage of distributed DVIPA connections sent to a specific TCP/IP stack on
an LPAR within the sysplex. The Workload Manager recommended percentage is also displayed. The
command has six optional parameters that allow filtering for the command. This would allow a user
to limit the amount of data being returned because the amount of data available can be very large.
The parameters are as follows:
DVIPA
An IP Address for the DVIPA the user is wanting to use data from.
Port
DVIPA port number.
System
z/OS system name. Wildcard (*) supported at the end of the string.
TCP Name
TCP/IP stack name. Wildcard (*) supported at the end of the string.
Begin Time
Beginning of a time range, format should be mm/dd/yy hh:mm:ss. STCK values are also
acceptable.
End Time
End of a time range, format should be mm/dd/yy hh:mm:ss. STCK values are also acceptable.
Number of records
Number of DDVIPA records to return
Number of Intervals
Indicates the number of polling intervals to return, starting from the most recent data available.
This keyword can not be specified with the keyword TIME. The specified value can not be 0 or
negative. If the specified value is greater than the total number of polling intervals that are
available, only the available intervals will be returned.
This command should be run at a NetView sysplex master.
Note: Over time, there can be a large amount of data here.
Task
• Retrieve TASKUTIL Information
– Provide the CPU utilization, storage utilization, message queue, and command running (if available)
for active NetView tasks.
Enterprise
• Retrieve XCF Groups Data
Command
• Run a General NetView Command
– Get the response from a command you send to NetView. There is not a tailored API for every NetView
command, so this API is provided as a way for customers to experiment with running NetView
commands and retrieving the result of that command. There are limitations to which commands are
able to run with this API, including but not limited to: Any command that provides output in a
window, any command that drives output to a panel, and commands that run on a VOST. Output for
commands will not be formatted in a user-friendly format, it will be provided as a JSON containing a
list of strings where each string corresponds to a line of NetView output.
Table 12. NetView REST Server APIs that Service Management Unite is using
Service Comments API in Use NetView Command
Management
Unite
Dashboard
Explore NetView Configuration APIs: LIST STATUS=XCFGRPS
NetView
/ibm/netview/v1/enterprise/
Domains
members
Use the PPI trace facility to set up a trace in the PPI for either an individual receiver or for all current and
future receivers. The PPI trace facility writes a trace record each time a user defines, deactivates, or
deletes a receiver to the PPI and each time a buffer is sent or received.
You can use the PPI trace facility to debug problems or analyze performance. For example, if applications
that use the PPI are not communicating correctly, you can enable the PPI trace facility to gather
information to help determine the problem in the dialog. The trace facility creates a log of all the buffers
that are sent to and received by the applications. You can use the log to verify that the correct dialog
occurred between the applications or that the applications correctly received all the buffers.
As another example, you can use the log created by the PPI trace facility to analyze the performance of
applications that use the PPI. If congestion occurs at the interface, the PPI trace records show how long
buffers are on the PPI buffer queue before being received by the application. Using this trace information,
applications can be modified to optimize the flow of information buffers.
This chapter describes the formats of the following principal data types used by the management services
(MS) transport and its NetView applications, including the hardware monitor:
• Multiple-domain support message unit (MDS-MU) header structure
• MDS data types
• MDS error message format
Figure 11 on page 91 is a conceptual view of the format used by the MDS-MU (X'1310') general data
stream (GDS) variable. The MDS-MU contains an MDS header and an application program GDS variable.
The entire MDS-MU (MDS header and application program GDS variable) must be less than 32767
(X'7FFF') bytes in length. The MDS header must be 1024 (X'400') bytes in length. The maximum size
permitted for the application program GDS variable in the MDS-MU is 31743 (X'7BFF') bytes.
The application program GDS variable contains MS application program data supplied by the MS
application program. It can be a control point management services unit (CP-MSU) (X'1212') GDS
variable, an SNA condition report (SNACR) (X'1532') GDS variable, or some other GDS variable.
Location Names
Two location names are contained in the MDS routing information GDS variable: the name of the
originating location and the name of the destination location. Each location name MS subvector consists
of the network ID (NETID) of the LU, the unqualified LU name, and an MS application program name.
Create the NETID and LU names with the following characteristics:
• Use characters from the set A - Z, 0 - 9, $, #, and @.
• Alphabetic characters must be uppercase and the first character must be non-numeric.
• The characters $, #, and @ are supported for migration purposes only. Do not use them in LU or
network names.
• You can include trailing blanks, but they are ignored for comparison purposes.
Table 16. Settings of MDS Message Type First and Last MDS Message Flags
First MDS Message Last MDS Message
Application MDS
Flag Flag
Program-Level Flow Message Type
MDS-MUs contain a correlator field (described under “Agent Unit of Work Correlator (X'1549') GDS
Variable” on page 93) that links requests and replies together. Error messages also contain a correlator
that identifies failing MDS send requests. If replies are sent with the last indicator off, multiple MDS-MUs
can be sent as replies to the same request. When this occurs, the NetView program buffers the replies
until the last one is received and then sends all data to the application at the same time. If a timeout
occurs before the last reply is received, all previous replies are discarded.
Correlator Contents
The contents of the correlator are described in Table 17 on page 94. The structures are broken down by
subvector (SV) and subfield (SF).
Table 18. Contents of Sequence Number Date and Time (SEQNO DTM) Structure
Field Name Byte Description of Contents Example Values
Offset
Length 0 Length of SEQNO DTM structure X'11'
Key 1 Key (always X'02') X'02'
SEQNO 2-5 Unique binary sequence value X'00000001'
Date Date of unit of work origination: X'07DC0B11'
6, 7 4-digit year, in hexadecimal
8 2-digit month, in hexadecimal
9 2-digit day of month, in hexadecimal
Time Time of unit of work origination: X'173B3B63'
10 2-digit hour, in hexadecimal
11 2-digit minute, in hexadecimal
12 2-digit second, in hexadecimal
13 2-digit hundredth of second, in hexadecimal
Time flag 14 Indication of whether date/time is local or Greenwich X'60'
Mean Time (GMT):
X'E9': Date/time is GMT (no offset).
X'4E': Date/time is local (ahead of GMT).
X'60': Date/time is local (trails GMT).
The Example Values in Table 18 on page 94 describe a sequence number date and time structure of
X'11020000000107DC0B11173B3B3B600400'. This hexadecimal string indicates the following
information:
• Structure length is 17 (X'11').
Accepting an MDS-MU
Hardware and software products in nodes that are not NetView nodes can send a CP-MSU within an MDS-
MU to a hardware monitor MS application (ALERT_NETOP X'23F0F3F1') using the NetView MS transport.
An MDS-MU has a key of X'1310' for its header.
MDS-MU Example
Figure 13 on page 95 shows an example of an MDS-MU message. The MDS message type is request
without reply. It is being sent from a network known as NETA from an LU known as CNM01 and an
application known as USERAPPL. It is going to an LU called CNM02 in the same network and to an
application named ALERT_NETOP (X'23F0F3F1'). The data content is a CP-MSU containing an alert. See
Figure 12 on page 91 for the format of an MDS header.
CP-MSU Format
Figure 14 on page 96 shows the format of a CP-MSU. For operations management served applications
the CP-MSU (X'1212') consists of data that includes the R&TI information. The CP-MSU can also contain
an SNA condition report (SNACR).
The maximum length allowed for the CP-MSU is 31743 (X'7BFF') bytes.
Accepting a CP-MSU
Programs in the same node as the NetView program (regardless of address space) can use the PPI with
function code 12 to send an NMVT or CP-MSU with a valid hardware monitor major vector to the hardware
monitor.
The following major vectors are valid:
• X'0000' Alert
• X'0001' Link event
• X'0002' Resolve
• X'0025' PD statistics
• X'000F' ISDN/CMIP statistics
• X'132E' RECFMS envelope
CP-MSU has a key of X'1212'.
These major vectors are the expected major vectors. However, the ALERT_NETOP function does not limit
the major vectors to those listed. If an unacceptable major vector is presented to the hardware monitor, it
can later cause an error.
An exception is made for the first occurrence of the parameter major vector R&TI (X'154D'). This
parameter major vector is not processed and does not cause an error. That R&TI is attached behind the
next major vector, if one exists, when that next major vector is copied in a CP-MSU.
NMVT Format
Figure 16 on page 97 shows the format of a network management vector transport (NMVT). An NMVT
contains a header and B bytes of data. The length of B plus 8 is a parameter outside the NMVT.
Refer to Systems Network Architecture Formats for more information about data type formats.
R&TI Format
Figure 17 on page 97 shows the format of an R&TI. The R&TI format includes the following structures:
R&TI header
4 bytes; 2-byte length field of entire variable (X'154D')
Name list header
2 bytes; 1-byte length field (2-bytes and subfield lengths) (X'06')
Destination application
2-byte header plus destination application name (length + X'50')
Origin application
2-byte header plus destination application name (length + X'60')
Destination instance identifier
2-byte header plus destination instance used for task name (length + X'70')
Origin instance identifier
2-byte header plus origin instance used for task name (length + X'80')
This appendix describes the return codes generated by the program-to-program interface (PPI) and the
hexadecimal equivalents for each request type. See “Building the Request Buffer” on page 13 for more
information on the request parameter buffers.
Use this appendix to write NetView command lists. It contains general-use programming interface and
associated guidance information.
This appendix provides information about the following items:
• Vital product data (VPD) returned from the VPDCMD command
• The sample network asset management command lists
• The record formats used by the sample network asset management command lists
Use the information provided in this appendix as a reference when interpreting messages returned from
the VPDCMD command, when modifying the sample network asset management command lists, or when
writing your own network asset management command lists.
DCE Data
Beginning with NetView for z/OS V5R4, the DCE Data for Modems (Subvector X'50') and DCE Data for
DSUs/CSUs (Subvector X'50') functions are deprecated.
Start Subrecords
Start subrecords (subtype S) contain information about the start of data collection. Start subrecords are
written by VPDLOGC, which is called by the VPDALL command at the start of data collection.
End Subrecords
End subrecords (subtype E) contain information about the end of data collection. End subrecords are
written by VPDLOGC, which is called by the VPDALL command at the end of data collection.
Notes:
1. This field contains the number of records, generated since the START subrecord, that can be written
to an external logging facility. This field does not represent the number of records that were
successfully written to the external logging facility.
2. This field contains the total number of calls made to the VPDPU or VPDDCE command list. It does not
represent the number of successful completions of the command list.
PU Hardware Subrecords
PU hardware subrecords (subtype P) contain information about the hardware characteristics of a PU. PU
hardware subrecords are written by the VPDPU command list.
PU Software Subrecords
PU software subrecords (subtype F) contain information about the software characteristics of a PU. PU
software subrecords are written by the VPDPU command list.
Notes:
1. This field contains a character that identifies the sequence in which the DCEs are connected. The
possible values are 1, 2, 3, and 4, with 1 being the DCE closest to the NCP that solicited the VPD.
2. These fields can be defined by the user.
Time-Out Subrecords
Timeout subrecords (subtype T) contain information about a VPD request that timed out before it was
completed. Timeout subrecords are written by the VPDPU or VPDDCE command lists when the you
specify the ERROR option.
Error Subrecords
Error subrecords (subtype W) contain information about a VPD request that failed. Error subrecords are
written by the VPDPU or VPDDCE command lists when you specify the ERROR option.
Use this appendix to write NetView application programs. It contains general-use programming interface
and associated reference information. It also provides the various log record formats written to external
logs. These external logs can be SMF logs, or user-written logs.
Table 30. External Log Record Header Format for the Hardware Monitor
Offset Offset Length in
Dec. Hex. Bytes Field Name Description Type
000 000 2 BRFRLEN Length of record including this header BinCD
002 002 2 BRFRSEG Segment descriptor BinCD
004 004 1 BRFRFLG System indicator Hex
005 005 1 BRFRRTY Record type [37 (X'25')] BinCD
006 006 4 BRFRTME Time since midnight, in hundredths of Binary
a second, record was moved into SMF
buffer
010 00A 4 BRFRDTE Date when the record was moved into Packed
the SMF buffer, in the form 00yydddF
or 0cyydddF (where c is 0 for 19xx
and 1 for 20xx, yy is the current year
(0–99), ddd is the current day (1–
366), and F is the sign)
014 00E 4 BRFRSID System ID Char
018 012 4 BRFRWID Subsystem ID (set to 'NETV') Char
022 016 2 BRFRSUBT Record subtype (set to decimal 4) BinCD
Note: If the major vector contains multiple X'31' self-defining text subvectors, this field contains only
the self-defining text from the first X'31' subvector.
Notes:
1. Only detailed data subfields not associated with qualified message data are supported.
2. The BRFDEDAT field can contain more than one subfield with each subfield preceded by a field
containing the length of the subfield (see Table 41 on page 120 for the structure of the BRFDEDAT
field).
Notes:
1. This structure is repeated z times in BRFDEDAT, where z is the value stored in BRFDENUM (see Table
40 on page 120).
2. The length of the detailed data network subfields can vary; the length value is stored in the
BRFDATLN field associated with each subfield.
Subtype 1 external log record type 38 is generated by auditing the NetView command authorization table,
which is controlled globally by the NetView DEFAULTS CATAUDIT command or specifically by using the
AUDIT keyword on the PERMIT and EXEMPT statements in the NetView command authorization table.
Refer to the IBM Z NetView Administration Reference for a description of the PERMIT and EXEMPT
statements and the NetView online help for the syntax of the DEFAULTS command.
Subtype 4 external log record type 38 is generated at fixed intervals by the Command Statistics function
for all the monitored NetView commands, which can be specified by the NetView CMDMON.INIT.LOGSMF
statement in CNMSTYLE or from the CMDMON command.
Notes:
1. This section is the variable length data that follows the S38CMTY field of the general section for the
command authorization table (subtype 1) external log record type 38.
2. S38CCALR is present only when the CALLER differs from the user ID that is in S38CUSER. The
CALLER can differ from S38CUSER when AUTHCHK=SOURCEID checking is in effect.
0080 0050 4 S38TUmxiorate Maximum I/O rate (I/Os per minute) Binary
The maximum rate of I/Os per minute
in a 1 minute interval since the task
was started or since the last
LOGTSTAT RESETMAX or LOGTSTAT
INTERVAL command.
0084 0054 4 S38TUioRate Average I/O rate (I/Os per minute) Binary
The average rate of I/Os per minute
for the life of the task.
0012 000C 2 Number of active spans that the operator has; can be 0 Binary
0014 000E If the number of active spans is nonzero, the operator's active Binary
spans; each span is 8-bytes long padded with blanks
Record Subtypes
The session monitor writes one of the following type 39 (X'27') records to the external log:
• RTM collection record
• Session end record
• Session start record
• Accounting and availability data collection record
• Combined session start-end record
• BIND failure record
• INIT failure record
• Storage and event counters
Each record is divided into sections. The functions described in the following sections are shown in more
detail in “Record Section Formats” on page 139.
Table 59. Format of the External Log Record Header Format for the Session Monitor
Offset Offset Length in
Dec. Hex. Bytes Field Name Description Type
000 000 2 LOGRLENG Record length Binary
002 002 2 LOGRSEGD Segment descriptor Binary
004 004 1 LOGRSYSI System indicator: (X'04' for MVS) Binary
005 005 1 LOGRRECT Record type (X'27') Binary
006 006 4 LOGRTIME Time since midnight, in hundredths of Binary
a second, record was moved into SMF
buffer
010 00A 4 LOGRDATE Date when the record was moved into Packed
the SMF buffer, in the form 01yydddF
where yy is the current year (0–99),
ddd is the current day (1–336), and F
is the sign)
014 00E 4 LOGRSYID System identification (taken from SID Char
parameter)
018 012 4 LOGRSUBS Subsystem ID 'NETV' Char
022 016 2 LOGRSUBT Record subtype 1 Binary
Note: For LOGRSUBT field values, see “Record Subtypes” on page 137. For more information about the
fields in the external log record header, refer to the MVS library.
Table 60. Format of the Data Descriptor Section for Subtypes X'0001' Through X'0007'
Offset Offset Length in
Dec.X'' Hex. Bytes Field Name Description Type
000 000 4 LHDRPRDO Offset of product section 1 Binary
004 004 2 LHDRPRDL Length of product section Binary
006 006 2 LHDRPRDN Number of product sections 2 Binary
008 008 4 LHDRSESO Offset of session configuration Binary
section 1
012 00C 2 LHDRSESL Length of session configuration Binary
section
014 00E 2 LHDRSESN Number of session configuration Binary
sections 2
016 010 4 LHDRRTEO Offset of route data section 1 Binary
020 014 2 LHDRRTEL Length of route data section Binary
022 016 2 LHDRRTEN Number of route data sections 2 Binary
024 018 4 LHDRRTMO Offset of response time data section 1 Binary
Notes:
1. The offset of the first section of this type. All offsets are relative to the beginning of the record.
2. The number of sections of this type in the record.
Table 61. Format of the Data Descriptor Section for Storage and Event Counter Data
Offset Offset Length in
Dec. Hex. Bytes Field Name Description Type
000 000 4 LCNTPRDO Offset of product section 1 Binary
004 004 2 LCNTPRDL Length of product section Binary
006 006 2 LCNTPRDN Number of product sections 2 Binary
008 008 4 LCNTEVNO Offset of event counters 1 Binary
012 00C 2 LCNTEVNL Length of event counter data section Binary
014 00E 2 LCNTEVNN Number of event counter data Binary
sections 2
016 010 4 LCNTSAWO Offset of SAW counters 1 Binary
020 014 2 LCNTSAWL Length of SAW data section Binary
022 016 2 LCNTSAWN Number of SAW counter data Binary
sections 2
024 018 4 LCNTARBO Offset of ARB counters 1 Binary
028 01C 2 LCNTARBL Length of ARB data section Binary
030 01E 2 LCNTARBN Number of ARB data sections 2 Binary
032 020 4 LCNTSTGO Offset of storage counters 1 Binary
036 024 2 LCNTSTGL Length of STRG data section Binary
Notes:
1. The offset of the first section of this type. All offsets are relative to the beginning of the record.
2. The number of sections of this type in the record
Note: The LPRDSUBT field is the same as the LOGRSUBT field in the log record header section. For valid
LPRDSUBT field values, see “Record Subtypes” on page 137.
Notes:
1. This field contains the link name, channel unit address name, or dependent LU requestor name.
2. If no data is available from VTAM, the default is X'FF'.
3. For configurations with hierarchies having more than 4 resources on either primary or secondary
sides, (a "virtual/logical" PU/LINK coded), this field can contain the name of a link, channel unit
address, or line group.
Note: A 10-byte entry exists for each route element in the table. See Table 65 on page 144 for the
format of this 10-byte entry.
Note: Fields LRTEENAM and LRTEETGO are part of the LRTEETAB array of structures (see Table 64 on
page 144).
Notes:
1. The first four bytes of the time stamp are local time in store-clock format. The last four bytes are the
conversion factor from GMT to local time. (Example: 982B5412 FFFFCA5B.) This time stamp yields
an approximate resolution of 1.04 seconds.
2. The session monitor uses the indicators in the first byte of the RH to select control and text PIUs.
BSC connections do not have control PIUs.
3. If SESSTATS=AVAIL, this field is zero.
Notes:
1. For LRTMCOLB and LRTMCOLE, the first four bytes of the time stamp are the local time in store-clock
format, and the last four are the conversion factor from GMT to local time. (Example: 982B5412
FFFFCA5B.) This time stamp yields an approximate resolution of 1.04 seconds.
2. LRTMTOTT, LRTMBNDS, and LRTMOBJT are in tenths of seconds.
Notes:
1. For LEVNSTIM and LEVNETIM, the first four bytes of the time stamp are local time in store-clock
format. The last four bytes are the conversion factor from GMT to local time. (Example: 982B5412
FFFFCA5B.) This time stamp yields an approximate resolution of 1.04 seconds.
2. Session awareness (SAW) is a VTAM-session monitor interface through which information about
network session activity is exchanged.
3. Refer to Systems Network Architecture Formats for more information about PIU.
Notes:
1. LSAWFLTC is the sum of the current sessions-filtered counts from session monitor and VTAM.
SAW=NO filtering should be done at VTAM rather than at the NetView program.
2. LSAWFLTM is the sum of the sessions-filtered high-water counts from session monitor and VTAM
since the last RECORD STRGDATA request.
Table 72. Format of the Advanced Peer-to-Peer Networking Route Data Section
Offset Offset Length in
Dec. Hex. Bytes Field Name Description Type
000 000 2 LARTREVL Revision level: X'0001' Binary
002 002 2 LARTNUMT Number of route elements in Binary
LARTTABL. This is the number of
nodes in the Advanced Peer-to-Peer
Networking subnetwork, including the
primary CP.
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.
COPYRIGHT LICENSE:
This information contains sample application programs in source language, which illustrate programming
techniques on various operating platforms. You may copy, modify, and distribute these sample programs
in any form without payment to IBM, for the purposes of developing, using, marketing or distributing
application programs conforming to the application programming interface for the operating platform for
which the sample programs are written. These examples have not been thoroughly tested under all
conditions. IBM, therefore, cannot guarantee or imply reliability, serviceability, or function of these
programs. You may copy, modify, and distribute these sample programs in any form without payment to
IBM for the purposes of developing, using, marketing, or distributing application programs conforming to
IBM’s application programming interfaces.
Each copy or any portion of these sample programs or any derivative work, must include a copyright
notice as follows:
© (your company name) (year). Portions of this code are derived from IBM Corp. Sample Programs. ©
Copyright IBM Corp. _enter the year or years_. All rights reserved.
Programming Interfaces
This publication documents intended Programming Interfaces that allow the customer to write programs
to obtain the services of IBM Z NetView.
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 155
156 IBM Z NetView: Application Programmer's Guide
Index
A asynchronous replies 41
attached device configuration data, network asset
AAUTLOGR macro 137 management vital product data description 106
accepting a CP-MSU or NMVT 96 AUTH-IND
accepting an MDS-MU in other nodes 95 receiver program 22
accessibility xii RPB data field 14–18
accessing the PPI using DSIPHONE 31 sending data buffers 26
accounting and availability data collection, session monitor
external log record 138
accounting and availability data section, session monitor
B
external log 144 BFRDEDAT mapping, hardware monitor external log 120,
additional product set attributes, network asset 121
management vital product data description 107 BIND failure, session monitor external log record 139
ADDLINE command list 81 bind settings, VTAM 52
Advanced Peer-to-Peer Networking route data section, blocking replies to a request 41
session monitor external log 149 BNJTBRF macro 115
Advanced Peer-to-Peer Networking route element data books
section, session monitor external log 151 see publications ix
agent unit of work correlator GDS variable BUFF-ADR 14–18
contents 93 BUFF-LEN 14–18, 26
sequence number date and time structure 94 BUFFER-Q-FLAG 14–18
agent unit of work correlator GDS variable. buffering data 39
date and time structure example 94 buffers
overview 41 creating queues 3
alert receiver task 11, 12 purging (request type 23) 18–20, 22–26, 28, 29
alert report format, hardware monitor external log 118 queue limits
Alerts-Dynamic panel 1, 25 description 3
answering node configuration data, network asset request type 12 25
management vital product data description 103 request type 4 18–20, 22–26, 28, 29
APF-authorized sender subsystem address space 11
receiver program 14–18, 22 receiving
sending data buffers 26 overview 4
application program-level error reporting 100 programming example 77
applications request type 22 18–20, 22–26, 28, 29
high performance transport sending
writing 65 overviews 3
management services programming example 78
destination name considerations 50 request type 14 18–20, 22–26, 28, 29
implementing 51 BUFFQ-L
writing 49 with request type 4 21
operations management served building MDS-MUs 39
destination name considerations 56
implementing 57
writing 55 C
APSERV command 8
C language
ASCB-ADR
interface considerations 39
obtaining address (request type 3) 18–20, 22–26, 28,
syntax for CALL 5
29
CALL statement
RPB data field 14–18
overview 5
with request type 10 18–20, 22–26, 28, 29
register conventions 6
with request type 22 26
syntax 5, 6
with request type 23 18–20, 22–26, 28, 29
certificate authentication 59
with request type 3 20
chaining 41
with request type 4 22
Character Table 73
with request type 9 23
choosing a request type 18
assembler
CMDSERV interface 7
syntax for CALL 6
CNMCALRT service routine 12
Index 157
CNMCNETV 5 conventions (continued)
CNME1101 129 typeface xiii
CNMGETDATA service routine correlators, MDS-MU
with high performance transport API 66 contents 93
with MS applications 51 date and time structure example 94
CNMGETDATA service routine. overview 41
with operations management MS applications 57 sequence number date and time structure 94
CNMHREGIST service routine 65 COS
CNMHRGS service routine 65 command lists
CNMHSENDMU service routine 66 ADDLINE 80
CNMI 79 FINDNCP 80
CNMREGIST service routine INITCNFG 80
with MS applications 49 SPLOOKUP 80
CNMREGIST service routine. TESTRCMD 80
with operations management served applications 55 TESTSP 80
CNMRGS 49 commands
CNMS4227 3 RUNCMD 79
CNMS4228 4 CP-MSU formatted alert
CNMS4229 5 accepting 96
CNMS4257 3 description 1, 95
CNMS4287 3 format 95
CNMSENDMU service routine maximum size 80
with MS applications 50 multiple major vectors 96
CNMSENDMU service routine. processing 1
with operations management served applications 56 sending formatted alert
CNMSMU 50 overview 3
combined session start-end, session monitor external log request type 12 18–20, 22–26, 28, 29
record 138 creating applications
command authorization table external log record format 121 with high performance transport API 66
command lists with MS applications 51
common operations services 80 with operations management MS applications 57
network asset management 108 creating buffer queues 3
commands and messages, sending to NetView 6
common operations services (COS)
command lists
D
ADDLINE 80 data descriptor section, response time and accounting data
FINDNCP 80 functions, session monitor external log 140, 141
INITCNFG 80 data descriptor section, storage and event counter data,
SPLOOKUP 80 session monitor external log 141, 142
TESTRCMD 80 data encryption 59
TESTSP 80 data formats for LU 6.2 conversations
commands accepting 95
RUNCMD 79 format 91
common record prefix, network asset management 109 MDS data types
considerations for API transport applications CP-MSU 95
interface considerations NMVT 97
buffering data 39 R&TI 97
building MDS-MUs 39 routing report 96
forwarding data 39 SNA condition report 98, 100
suspending the application 39 MDS error messages
MDS transactions application program-level reporting 100
agent unit of work correlators 41 characteristics 98
asynchronous replies 41 contents 98
blocking replies 41 example 99
chaining replies 41 format 98
description 40 SNA condition reports 98, 100
MDS-MU error messages 40, 42 types of errors 98
MDS-MU types 40 MDS header format
SNA condition report 40, 42 agent unit of work correlator GDS variable 41, 93
synchronous replies 41 routing information GDS variable 92
timer intervals 41 send requests and destination names 50, 56
tasking structure 39 MDS-MU example 95
controlling the PPI trace facility 89 message size 91
conventions data section formats for session monitor external logs
Index 159
E external log record header data section, session monitor
external log 140
ECB (event control block) external log record header format, hardware monitor 115
request type 22 26
request type 24 18–20, 22–26, 28, 29
request type 4 21
F
RPB field 14–18 FINDNCP command list 81
ECB-ADR flags MS subvector
request type 24 29 message type 92
request type 4 21 flags MS subvector.
RPB field 14–18 last MDS message indicator 93
enabling the NetView program to receive alerts 11 flags, MS subvector
enabling the PPI first MDS message indicator 93
in MVS 11 FMH-5 restriction on other communications 53
enabling the PPI trace facility 11, 89 forwarding data 39
end subrecord format, network asset management 109
environment variables, notation xiii
error messages for MDS-MU GDS G
application program-level reporting 100
GDS variable 42
characteristics 98
generalized trace facility
contents 98
enabling 11
example 99
starting 89
format 98
using 89
SNA condition reports 98, 100
generic event report format, hardware monitor external log
types of errors 98
118
error subrecord format, network asset management 113
get data facility
ESTAE program 14–18
with high performance transport 66
ETHERNET LAN data report format, hardware monitor
with high performance transport API 66
external log 120
with MS applications 51
event counter data section, session monitor external log 146
with operations management MS applications 57
event report format, hardware monitor external log 118, 119
EX-ACT
with request type 4 22 H
external data set storage 89
external log record formats hardware monitor
command authorization table 121 accepting a CP-MSU 96
hardware monitor accepting an MDS-MU in other communications 95
alert report format 118 external log record formats
BFRDEDAT mapping 120, 121 alert report format 118
detailed data network alert report format 120 BFRDEDAT mapping 120, 121
ETHERNET LAN data report format 120 detailed data network alert report format 120
event report format 118, 119 ETHERNET LAN data report format 120
external log record header format 115 event report format 118, 119
generic event report format 118 external log record header format, hardware
hardware monitor data descriptor format 115–117 monitor 115
local area network report 119 generic event report format 118
product report format 117 hardware monitor data descriptor format 115–117
self-defining text message report format 120 local area network report 119
statistical report format 119 product report format 117
session monitor self-defining text message report format 120
accounting and availability data collection record statistical report format 119
138 processing formatted alerts
BIND failure record 139 overview 1, 12
combined session start-end record 138 request type 12 25
data section formats 139 hardware monitor data descriptor format, hardware monitor
INIT failure record 139 external log 115–117
RTM collection record 137 header format for MDS-MU GDS
session end record 138 agent unit of work correlator GDS variable
session start record 138 contents 93
storage and event counter record 139 date and time structure example 94
writing to 137 overview 41
span authorization table 122 sequence number date and time structure 94
task resource utilization data 121 routing information GDS variable
destination location subvector 92
Index 161
manuals (continued) network asset management (continued)
see publications ix sample command list record formats (continued)
MAXREPLY 41 PU hardware subrecord 110
MDS function 37 PU software subrecord 111
MDS transactions start subrecord 109
agent unit of work correlators 41, 93 time-out subrecord 112
asynchronous replies 41 vital product data description
blocking replies 41 additional product set attributes 107
chaining replies 41 answering node configuration data 103
description 40 attached device configuration data 106
error messages DCE data for DSUs/CSUs 106
application considerations 40, 42 DCE data for modems 106
contents 98 link configuration data 106
example 99 product data 104
format 97 product set attributes 107
MDS-MU types 40 sense data 106
SNA condition report 40, 42 NMVT request
synchronous replies 41 description 1, 97
timer intervals 41 format 97
MDS_HP_RECEIVE 68 major vectors 96
MDS-MU message example 95 processing 1
message to operator (MTO) 80 sending formatted alert
message type flags, MDS overview 3
first MDS message indicator 93 request type 12 18–20, 22–26, 28, 29
last MDS message indicator 93 notation
message type 92 environment variables xiii
messages and commands, sending to NetView 6 path names xiii
MLWTO attributes 33 typeface xiii
monitoring the PPI trace facility 90
MS categories and applications 51
MS transport
O
deciding when to use 38 obtaining ASCB and TCB addresses
difference from high performance transport 37 coding example 77
implementing applications overview 2, 3
NetView operator 51 request type 3 18–20, 22–26, 28, 29
NetView system programmer 51 online publications
other system programmer 52 accessing xii
restrictions 37 operating system transportable programming
with COS 79 disconnecting a receiver 78
writing applications initializing a receiver 77
receive macro 51 receiving a buffer 77
registration services 49 sending a buffer synchronously 78
send macro 50 operations management MS transport
multiple alert receivers 12 description 55
multiple receivers 12 implementing applications
multiple-domain support 37 MS transport, implementing applications, other
MVS system programmer 58
enabling the PPI 11 NetView operator 57
NetView system programmer 57
N writing applications
receive macro 57
NETVALRT registration services 55
receiver program 14–18, 20 send macro 56
sending formatted alerts 18–20, 22–26, 28, 29 origin location MS subvector 92
NetView Web Services other communication
SOAP client, starting 59 accepting an MDS-MU 95
SOAP transport 59 with high performance transports 68
userid, password authentication 59 with MS transports 52
network asset management with operations management served MS transports 58
sample command list record formats
common record prefix 109
DCE hardware subrecord 111
P
end subrecord 109 passing requests to the NetView program 5
error subrecord 113
Index 163
requests (continued) samples (continued)
types (continued) CNME1101 129
12-send an NMVT or CP-MSU formatted alert 2, 3, CNMS4227 3
18–20, 22–26, 28, 29 CNMS4228 4
14-send a data buffer to a receiver synchronously CNMS4229 5
2, 3, 18–20, 22–26, 28, 29 CNMS4257 3
22-receive a data buffer 2, 3, 18–20, 22–26, 28, 29 CNMS4287 3
23-purge a data buffer 2, 3, 18–20, 22–26, 28, 29 SAW (session awareness) 147
24-wait for the receive or connect ECB returned 2, self-defining text message report format, hardware monitor
3 external log 120
24–wait for the receive or connect ECB returned for send macro
the program-to-program interface 18–20, 22–26, with high performance transport 66
28, 29 with MS applications 50
resource counter data section, session monitor external log with operations management served applications 56
148 send process for other communications 54
response time data section, session monitor external log send service
145 with high performance transport 66
restrictions with MS applications 50
high performance transport API 38 with operations management served applications 56
MS transport API 37 SENDER-ID
return codes 101 receiving data buffers 26
routing alerts 12 RPB field description 14–18
routing and targeting instruction (R&TI) format 97 sending alerts 25
routing information GDS variable sending a data buffer
destination location subvector 92 asynchronously
flags MS subvector coding example 78
first MDS message indicator 92 synchronously
last MDS message indicator 93 overview 2, 3
message type 93 request type 14 18–20, 22–26, 28, 29
origin location subvector 92 sending an NMVT or CP-MSU formatted alert
routing report format 96 overview 3
RPB (request parameter buffer) request type 12 18–20, 22–26, 28, 29
building 13 sending application data
defining 3, 18–20, 22–26, 28, 29 with high performance transport API 67
description 13 with MS applications 52
DSIDTR, RPB fields 13 with operations management MS applications 57
fields 13 sending commands and messages to NetView 6
type 01 request 18–20, 22–26, 28, 29 sense data, network asset management vital product data
type 02 request 19 description 106
type 03 request 18–20, 22–26, 28, 29 service routines
type 04 request 18–20, 22–26, 28, 29 CNMGETDATA
type 09 request 18–20, 22–26, 28, 29 with high performance transport API 66
type 10 request 18–20, 22–26, 28, 29 with MS applications 51
type 12 request 18–20, 22–26, 28, 29 with operations management served applications
type 14 request 18–20, 22–26, 28, 29 57
type 22 request 18–20, 22–26, 28, 29 CNMHRGS (CNMHREGIST) 65
type 23 request 18–20, 22–26, 28, 29 CNMHSMU (CNMHSENDMU) 66
type 24 request 18–20, 22–26, 28, 29 CNMREGIST 49, 55
RTM collection, session monitor external log record 137 CNMSENDMU 50, 56
RUNCMD 79 services, common operations 79
session awareness counter data section, session monitor
external log 147
S session configuration data section, session monitor external
sample command list record formats, network asset log 142
management session end, session monitor external log record 138
common record prefix 109 session monitor external log records
DCE hardware subrecord 111 accounting and availability data collection record 138
end subrecord 109 BIND failure record 139
error subrecord 113 combined session start-end record 138
PU hardware subrecord 110 data section formats
PU software subrecord 111 10-byte route element entry 144
start subrecord 109 accounting and availability data section 144
timeout subrecord 112 Advanced Peer-to-Peer Networking route data
samples section 149
Index 165
vital product data (continued)
descriptions (continued)
sense data 106
message format
DWO100I 103
DWO101I 106
DWO102I 104
DWO103I 103
DWO105I 107
DWO106I 107
VTAM LU 6.2 support 52
W
WAIT
for ECB posting 14–20, 22–26, 28, 29
request type 22 26
request type 4 22
waiting for the ECB
overview 2, 3
request type 24 18–20, 22–26, 28, 29
Web Services Gateway
Dynamic Interface Invocation client 61
Java SAAJ client 60
SOAP envelope 59, 61
SOAP method 61
tags 61
WSDL-generated proxy client 60
Web Services server 59
Word Boundary 73
writing
high performance transport programs
CNMGETDATA receive macro 66
CNMHREGIST registration macro 65
CNMHSENDMU send macro 66
DSIGETDS receive macro 66
DSIHREGS registration macro 65
DSIHSNDS send macro 66
management services applications
CNMGETDATA receive macro 51
CNMREGIST service routine 49
CNMSENDMU send macro 50
DSI6REGS registration macro 49
DSI6SNDS send macro 50
DSIGETDS receive macro 51
REGISTER command 50
operations management served applications
CNMGETDATA receive macro 57
CNMREGIST service routine 55
CNMSENDMU send macro 56
DSI6REGS registration macro 55
DSI6SNDS send macro 56
DSIGETDS receive macro 57
REGISTER command 56
writing to session monitor external logs 137
WSDL file 59
WSDL-generated proxy client 60
Z
znvwsdl.wsdl 60
znvwsdl1.wsdl 60
znvwsdl2.wsdl 60
SC27-2870-03