Data Transfer Error Codes Error
Code 0 1
5
6
7
15
16
17
19
When a virtual machine executes a SEND, SENDX, or SEND/RECV subfunction,
the normal DIAGNOSE return code is zero, indicating that the request was sucĀ­
cessfully initiated. However, when the actual data transfer takes place, errors can
occur. All errors occurring at data transfer time are communicated to the source
virtual machine in the RESPONSE external interrupt message header,
VMCMHDR. Figure &diag32. shows error codes indicating conditions that are
possible after the SENDX, SEND, or SEND/RECV request is initiated. The error
codes correspond to DIAGNOSE return code numbers.
Meaning
The normal response (no errors).
Invalid buffer address or length. The SEND and/or RECEIVE buffers used for a
data transfer operation are not within the virtual machine's virtual storage. The
beginning and ending addresses were valid when a request was initiated but all
addresses are not valid. User not available. The sink virtual machine executed the UNAUTHORIZE func-
tion, reexecuted the AUTHORIZE SPECIFIC subfunction, or implicitly reset his
virtual machine after the source virtual machine request was initiated.
Protection violation. The storage key for a virtual machine's SEND or RECEIVE
buffer did not match its PSW key at the time the transfer was initiated. (Assume
the key was nonzero.) This error code is also set if a virtual machine attempts to
RECEIVE data into a CP-owned shared segment.
SENDX data is too large. The sink virtual machine reexecuted AUTHORIZE and
specified an external interrupt buffer size less than the buffer size at the time a
SENDX subfunction was executed. The SENDX data no longer fits in the sink
virtual machine buffer. Paging I/O error. An uncorrectable paging I/O error occurred during the data
transfer operation attempting to fetch a virtual machine SEND or RECEIVE buff-
er. This is a hardware failure.
Incorrect length. The sink virtual machine executed a RECEIVE subfunction with
a data length (VMCPLENA) smaller than the original SEND data length or a REPL Y subfunction with a REPL Y data length larger than the source virtual
machine REPL Y buffer length.
Destructive overlap. A virtual machine was communicating with itself in a "wrap connection" and his SEND or RECEIVE buffers overlapped one another
(intra-virtual machine communication).
Data transfer error. A data transfer error occurred which was associated with the
other virtual machine. The transaction did not complete successfully.
Figure 13. DIAGNOSE Code X'68' Data Transfer Error Codes
The Virtual Machine Communication Facility 109
Inter- User Communications Vehicle IUCV Paths
The Inter-User Communications Vehicle (IUCV) is a communications facility that
allows users to pass any amount of information. IUCV enables a program running
in a virtual machine to communicate with other virtual machines, with a CP system
service, and with itself.
An IUCV communication takes place between a source communicator and a target
communicator. The communication takes place over a predefined linkage called a
path. Each communicator can have multiple paths, and each communicator can
receive or send multiple messages on the same path simultaneously. IUCV provides functions, through the IUCV macro instruction, to:
Create and dismantle paths Send and reply to messages
Determine if messages are pending and describe a pending message
Selectively receive or reject messages.
Each message is represented to CP by a control block called a MSGBLOK. This MSGBLOK is moved among different queues at different stages in a communiĀ­
cation. Communicators can receive information about pending messages either by
interrogating the queues of MSGBLOKs or by receiving an external interruption
for each message.
The IUCV directory control statement authorizes the establishment of a path
between one virtual machine and another, or between a virtual machine and a CP
system service. The number of possible paths for a communicator is limited to
65,535 (via the MAXCONN keyword of the OPTION directory statyment). If a
maximum number of paths is not specified in the directory, a communicator can establisll, a maximum of four paths. For CP system services, the maximum possible
paths is 4096. Once authorized, users establish a path when the source communicator invokes the CONNECT function and the target communicator invokes the ACCEPT function.
Either communicator can terminate an established path via the SEVER function.
The target communicator can also prevent the establishment of a path by invoking
the SEVER function. In addition, communication over a path can be temporarily
suspended when a communicator invokes the QUIESCE function; the quiesced
path can be reactivated when a communicator invokes RESUME. A single communicator can have multiple paths defined, and two virtual machines
may have multiple paths between them. The communicator could be a source
communicator on some of its defined paths, a target communicator on other paths,
and both a source and a target communicator on still other paths. Communication
over any and all paths can occur simultaneously.
Every path has two ends: the source communicator's end and the target commuĀ­
nicator's end. Each end of a path is described by a path description. There are two
path descriptions for each defined path. The source communicator has a
description of the path from the source's perspective and the target communicator
has a description of the same path from the target's perspective. 110 VM/SP System Programmer's Guide
Previous Page Next Page