ibm-information-center/dist/eclipse/plugins/i5OS.ic.apis_5.4.0.1/QMHSNDM.htm

874 lines
25 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
<title>Send Nonprogram Message (QMHSNDM) API</title>
<!-- Begin Header Records ========================================== -->
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<!-- MH1TEMP SCRIPT A converted by B2H R4.1 (346) (CMS) by HOLTJM at -->
<!-- RCHVMW2 on 26 Jan 1999 at 10:37:34 -->
<!-- Change History: -->
<!-- YYMMDD USERID Change description -->
<!--File Edited Sept 2001 by v2cdijab -->
<!--End Header Records -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body>
<a name="Top_Of_Page"></a>
<!-- Java sync-link -->
<script language="Javascript" src="../rzahg/synch.js" type="text/javascript">
</script>
<h2>Send Nonprogram Message (QMHSNDM) API</h2>
<div class="box" style="width: 80%;">
<br>
&nbsp;&nbsp;Required Parameter Group:<br>
<!-- iddvc RMBR -->
<br>
<table width="100%">
<tr>
<td align="center" valign="top" width="10%">1</td>
<td align="left" valign="top" width="50%">Message identifier</td>
<td align="left" valign="top" width="15%">Input</td>
<td align="left" valign="top" width="25%">Char(7)</td>
</tr>
<tr>
<td align="center" valign="top">2</td>
<td align="left" valign="top">Qualified message file name</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(20)</td>
</tr>
<tr>
<td align="center" valign="top">3</td>
<td align="left" valign="top">Message data or immediate text</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="left" valign="top">Length of message data or immediate text</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">5</td>
<td align="left" valign="top">Message type</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(10)</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="left" valign="top">List of qualified message queue names</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Array of Char(20)</td>
</tr>
<tr>
<td align="center" valign="top">7</td>
<td align="left" valign="top">Number of message queues</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="left" valign="top">Qualified name of the reply message queue</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(20)</td>
</tr>
<tr>
<td align="center" valign="top">9</td>
<td align="left" valign="top">Message key</td>
<td align="left" valign="top">Output</td>
<td align="left" valign="top">Char(4)</td>
</tr>
<tr>
<td align="center" valign="top">10</td>
<td align="left" valign="top">Error code</td>
<td align="left" valign="top">I/O</td>
<td align="left" valign="top">Char(*)</td>
</tr>
</table>
<br>
&nbsp;&nbsp;Optional Parameter Group:<br>
<!-- iddvc RMBR -->
<br>
<table width="100%">
<tr>
<td align="center" valign="top" width="10%">11</td>
<td align="left" valign="top" width="50%">Coded character set identifier</td>
<td align="left" valign="top" width="15%">Input</td>
<td align="left" valign="top" width="25%">Binary(4)</td>
</tr>
</table>
<br>
&nbsp;&nbsp;Default Public Authority: *USE<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: Yes<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>The Send Nonprogram Message (QMHSNDM) API sends a message to a nonprogram
message queue so your program can communicate with another job or user.</p>
<p>To send a message to a call message queue or the external message queue, see
<a href="QMHSNDPM.htm">Send Program Message</a> (QMHSNDPM) API.</p>
<p>Before coding your call to the QMHSNDM API, see <a href="#HDRALLPARB">
Dependencies among Parameters</a>.</p>
<p>If your application attempts to diagnose and recover from errors, it might
need to take additional action before calling the QMHSNDM API. The QMHSNDM API
sends a message to a list of message queues. When the API encounters an error
in sending your message to a message queue in the list, it sends a diagnostic
message to your call message queue. The API then proceeds to the next message
queue in the list. After trying to send the message to all specified message
queues and if the API detected any errors, it returns the general escape
message CPF2469. This message is sent as an exception or in the error code.</p>
<p>To diagnose and recover from these errors, your program should call the
Receive Program Message (QMHRCVPM) API to receive the diagnostic messages
sent.</p>
<br>
<h3>Authorities and Locks</h3>
<dl>
<dt><em>Message File Authority</em></dt>
<dd>*USE</dd>
<dt><em>Message File Library Authority</em></dt>
<dd>*EXECUTE</dd>
<dt><em>Message Queue Authority</em></dt>
<dd>*OBJOPR and *ADD</dd>
<dt><em>Message Queue Library Authority</em></dt>
<dd>*EXECUTE</dd>
<dt><em>Reply Message Queue Authority</em></dt>
<dd>*OBJOPR and *ADD</dd>
<dt><em>Reply Message Queue Library Authority</em></dt>
<dd>*EXECUTE</dd>
</dl>
<br>
<h3>Required Parameter Group</h3>
<dl>
<dt><strong>Message identifier</strong></dt>
<dd>INPUT; CHAR(7)
<p>The identifying code for the predefined message being sent, or blanks for an
immediate message.</p>
<p>If you specify a message identifier, you must specify a qualified message
file name. If you do not specify a message identifier, the qualified message
file name parameter is ignored.</p>
</dd>
<dt><strong>Qualified message file name</strong></dt>
<dd>INPUT; CHAR(20)
<p>For a predefined message, the name of the message file and the library in
which it resides. The first 10 characters specify the file name, and the second
10 characters specify the library.</p>
<p>You can use these special values for the library name:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*CURLIB</em></td>
<td align="left" valign="top">The job's current library</td>
</tr>
<tr>
<td align="left" valign="top"><em>*LIBL</em></td>
<td align="left" valign="top">The library list</td>
</tr>
</table>
<p>For an immediate message, use blanks for this parameter. If you specify a
name, the API ignores it and does not return an error.</p>
</dd>
<dt><strong>Replacement data or impromptu message text</strong></dt>
<dd>INPUT; CHAR(*)
<p>If a message identifier is specified, the data to insert in the predefined
message's substitution variables. If no message identifier is specified, the
complete text of an immediate message.</p>
<p>If this parameter contains pointer data, each pointer must start on a
16-byte boundary to keep the data accurate.</p>
</dd>
<dt><strong>Length of replacement data or impromptu message text</strong></dt>
<dd>INPUT; BINARY(4)
<p>The length of the message data or immediate text, in bytes. Valid values for
each are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>Replacement data</em></td>
<td align="left" valign="top">0-32767</td>
</tr>
<tr>
<td align="left" valign="top"><em>Impromptu message text</em></td>
<td align="left" valign="top">1-6000</td>
</tr>
</table>
<br>
</dd>
<dt><strong>Message type</strong></dt>
<dd>INPUT; CHAR(10)
<p>The type of the message. You must specify one of these values:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*COMP</em></td>
<td align="left" valign="top">Completion</td>
</tr>
<tr>
<td align="left" valign="top"><em>*DIAG</em></td>
<td align="left" valign="top">Diagnostic</td>
</tr>
<tr>
<td align="left" valign="top"><em>*INFO</em></td>
<td align="left" valign="top">Informational</td>
</tr>
<tr>
<td align="left" valign="top"><em>*INQ</em></td>
<td align="left" valign="top">Inquiry. When you send an inquiry message, a copy
of the message is placed on the reply message queue. The message key returned
by this API is the key to that copy. To receive the reply, use the <a href=
"Qmhrcvm.htm">Receive Nonprogram Message (QMHRCVM) API</a>, specifying that key
and a message type of reply. To receive the copy of the inquiry, specify the
same key and a message type of *COPY.</td>
</tr>
<tr>
<td align="left" valign="top"></td>
<td align="left" valign="top">To send reply messages, see <a href=
"QMHSNDRM.htm">Send Reply Message</a> (QMHSNDRM) API.</td>
</tr>
</table>
<p> For descriptions of the message types, see <a href="term.htm#HDRMSGTYPE">
Message Types</a>. For details about coding the other parameters when sending a
particular type of message, see <a href="#HDRALLPARB">Dependencies among
Parameters</a>.</p>
</dd>
<dt><strong>List of qualified message queue names</strong></dt>
<dd>INPUT; ARRAY of CHAR(20)
<p>A list of 1 through 50 message queues to which the message is being sent,
and the libraries in which they reside. When sending an inquiry message, you
can list one message queue, or you can list two message queues if one of the
queues is *HSTLOG. The special value *HSTLOG indicates the message will be sent
to QSYS/QHST. When using the special value *ALLACT, you can list only one
queue. In all other cases, you can list up to 50 message queues.</p>
<p>You can specify user profile message queues or other nonprogram message
queues, or you can use several special values.</p>
<p>To specify the default message queue associated with a user profile, use the
first 10 characters for the user profile name. In the second 10 characters, use
the special value *USER.</p>
<p>To specify other nonprogram message queues, use the first 10 characters for
the message queue name and the second 10 characters for the library name. You
can use these special values for the library name:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*CURLIB</em></td>
<td align="left" valign="top">The job's current library</td>
</tr>
<tr>
<td align="left" valign="top"><em>*LIBL</em></td>
<td align="left" valign="top">The library list</td>
</tr>
</table>
<p>To specify other types of message queues, use one of the following special
values for the first 10 characters, and leave the second 10 characters
blank:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*ALLACT</em></td>
<td align="left" valign="top">The default message queues of all active users.
When you use this value, it must be the only item in the list. You cannot use
this value with inquiry messages.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*REQUESTER</em></td>
<td align="left" valign="top">In an interactive job, the current user's message
queue. In a batch job, the system operator's message queue, QSYSOPR.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*SYSOPR</em></td>
<td align="left" valign="top">The system operator's message queue,
QSYS/QSYSOPR. Any message sent to QSYSOPR automatically has a copy of the
message sent to QHST.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*HSTLOG</em></td>
<td align="left" valign="top">he system history log message queue, QSYS/QHST.
If *HSTLOG is specified more than once, only one message will be sent to
QSYS/QHST. If *HSTLOG is specified with QSYSOPR, only one message is sent to
QSYS/QHST.</td>
</tr>
</table>
<br>
</dd>
<dt><strong>Number of message queues</strong></dt>
<dd>INPUT; BINARY(4)
<p>The number of message queues specified in the list of qualified message
queue names parameter. Valid values are 1 through 50. When using the special
value *ALLACT for the message queue, you must specify 1. When sending an
inquiry message, you can specify 1 or you can specify 2 if one of the values is
*HSTLOG.</p>
</dd>
<dt><strong>Qualified name of the reply message queue</strong></dt>
<dd>INPUT; CHAR(20)
<p>For an inquiry message only, the name of the message queue to receive the
reply message, and the library in which it resides.</p>
<p>The first 10 characters specify the message queue, and the second 10
characters specify the library.</p>
<p>You can use these special values for the message queue name:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*PGMQ</em></td>
<td align="left" valign="top">The current call stack entry's call message
queue. Use blanks for the library name.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*WRKSTN</em></td>
<td align="left" valign="top">The work station message queue. Use blanks for
the library name. You cannot use this value when running in batch mode.</td>
</tr>
</table>
<p>You can use these special values for the library name:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*CURLIB</em></td>
<td align="left" valign="top">The job's current library</td>
</tr>
<tr>
<td align="left" valign="top"><em>*LIBL</em></td>
<td align="left" valign="top">The library list</td>
</tr>
</table>
<p>For all message types except inquiry, use blanks for this parameter. If you
specify a message queue, the API ignores it and does not return an error.</p>
</dd>
<dt><strong>Message key</strong></dt>
<dd>OUTPUT; CHAR(4)
<p>For an inquiry message only, the key to the sender's copy of the message in
the reply message queue. This API assigns the key when it sends the
message.</p>
<p>For all other message types, no key is returned.</p>
</dd>
<dt><strong>Error code</strong></dt>
<dd>I/O; CHAR(*)
<p>The structure in which to return error information. For the format of the
structure, see <a href="../apiref/error.htm#hdrerrcod">Error Code Parameter</a>.</p>
</dd>
</dl>
<br>
<h3>Optional Parameter Group</h3>
<dl>
<dt><strong>Coded character set identifier</strong></dt>
<dd>INPUT; BINARY(4)
<p>The coded character set identifier (CCSID) that the supplied replacement
data or impromptu message text is in. If a message identifier is specified, the
text supplied by the replacement data or impromptu message text parameter that
corresponds to *CCHAR type fields is assumed to be in the CCSID supplied by
this parameter. The data supplied that does not correspond to a *CCHAR field is
65535 and is not converted. For more information about *CCHAR type fields see
the Add Message Description (ADDMSGD) command.</p>
<p>If no message identifier is specified, the impromptu message text supplied
by the replacement data or impromptu message text parameter will all be assumed
to be in the CCSID supplied by this parameter. For more information about
message handler and its use of CCSIDs, see <a href=
"../nls/rbagsccsidmsgsup2.htm">CCSIDs: Message Support</a> in the Globalization
topic. The following values are allowed:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">The replacement data or impromptu message text is
assumed in the CCSID of the job running this API. This is the default value if
this parameter is not specified.</td>
</tr>
<tr>
<td align="left" valign="top"><em>65535</em></td>
<td align="left" valign="top">The replacement data or impromptu message text
will not be converted.</td>
</tr>
<tr>
<td align="left" valign="top"><em>CCSID</em></td>
<td align="left" valign="top">Specify a valid CCSID that your replacement data
or impromptu message is in. Valid values are between 1 and 65535. This API will
validate the CCSID.
<p>For a list of valid CCSIDs, see <em>CCSIDs: Message Support</em> in the
Globalization topic.</p>
</td>
</tr>
</table>
</dd>
</dl>
<br>
<h3><a name="HDRALLPARB">Dependencies among Parameters</a></h3>
<p>You can use many different combinations of parameters when calling the
QMHSNDM API. The values you specify for the message identifier and message type
parameters determine which other input parameters you must specify and which
you must code as blanks. They also determine whether the system returns the
message key in the message key output parameter.</p>
<p>The following table summarizes the use of parameters for the QMHSNDM
API.</p>
<table border width="100%">
<tr>
<th align="center" valign="top" rowspan="3">Parameter</th>
<th align="center" valign="bottom" colspan="4">Message Type</th>
</tr>
<tr>
<th align="center" valign="bottom" colspan="2">*COMP, *DIAG, *INFO</th>
<th align="center" valign="bottom" colspan="2">*INQ</th>
</tr>
<tr>
<th align="left" valign="bottom">Predefined</th>
<th align="left" valign="bottom">Immediate</th>
<th align="left" valign="bottom">Predefined</th>
<th align="left" valign="bottom">Immediate</th>
</tr>
<tr>
<td align="left" valign="top" width="40%">Message identifier</td>
<td align="left" valign="top" width="15%">Message ID</td>
<td align="left" valign="top" width="15%">Blank</td>
<td align="left" valign="top" width="15%">Message ID</td>
<td align="left" valign="top" width="15%">Blank</td>
</tr>
<tr>
<td align="left" valign="top">Qualified message file name</td>
<td align="left" valign="top">Required</td>
<td align="left" valign="top">Ignored</td>
<td align="left" valign="top">Required</td>
<td align="left" valign="top">Ignored</td>
</tr>
<tr>
<td align="left" valign="top">Message data or immediate text</td>
<td align="left" valign="top">Data</td>
<td align="left" valign="top">Text</td>
<td align="left" valign="top">Data</td>
<td align="left" valign="top">Text</td>
</tr>
<tr>
<td align="left" valign="top">Length of message data or immediate text</td>
<td align="left" valign="top">0-32767</td>
<td align="left" valign="top">1-6000</td>
<td align="left" valign="top">0-32767</td>
<td align="left" valign="top">1-6000</td>
</tr>
<tr>
<td align="left" valign="top">List of qualified message queue names</td>
<td align="left" valign="top">Required</td>
<td align="left" valign="top">Required</td>
<td align="left" valign="top">Required</td>
<td align="left" valign="top">Required</td>
</tr>
<tr>
<td align="left" valign="top">Number of message queues</td>
<td align="left" valign="top">1-50</td>
<td align="left" valign="top">1-50</td>
<td align="left" valign="top">1,2 if *HSTLOG</td>
<td align="left" valign="top">1,2 if *HSTLOG</td>
</tr>
<tr>
<td align="left" valign="top">Reply message queue</td>
<td align="left" valign="top">Ignored</td>
<td align="left" valign="top">Ignored</td>
<td align="left" valign="top">Required</td>
<td align="left" valign="top">Required</td>
</tr>
<tr>
<td align="left" valign="top">Message key</td>
<td align="left" valign="top">Not used</td>
<td align="left" valign="top">Not used</td>
<td align="left" valign="top">Returned</td>
<td align="left" valign="top">Returned</td>
</tr>
<tr>
<td align="left" valign="top">Error code</td>
<td align="left" valign="top">Required</td>
<td align="left" valign="top">Required</td>
<td align="left" valign="top">Required</td>
<td align="left" valign="top">Required</td>
</tr>
</table>
<p>The terms used in the table to describe the parameter values are defined in
the following list.</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<th align="left" valign="top">Term</th>
<th align="left" valign="top">Meaning</th>
</tr>
<tr>
<td align="left" valign="top"><em>Blank</em></td>
<td align="left" valign="top">You must use blanks for this parameter.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Data</em></td>
<td align="left" valign="top">You must specify data for this parameter. The
data is used as the values for a predefined message's substitution
variables.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Ignored</em></td>
<td align="left" valign="top">The API ignores this parameter. You should use
blanks for the value, but if you use another value, no error is returned.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Message ID</em></td>
<td align="left" valign="top">You must specify the message identifier of the
predefined message being sent.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Not used</em></td>
<td align="left" valign="top">The API does not return data in this output
parameter. The space remains unchanged.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Required</em></td>
<td align="left" valign="top">You must specify a valid value for this
parameter.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Returned</em></td>
<td align="left" valign="top">The API returns data in this output
parameter.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Text</em></td>
<td align="left" valign="top">You must specify text for this parameter. The
text is used as the complete text of an immediate message.</td>
</tr>
</table>
<br>
<br>
<h3>Error Messages</h3>
<table width="100%" cellpadding="3">
<tr>
<th align="left" valign="top">Message ID</th>
<th align="left" valign="top">Error Message Text</th>
</tr>
<tr>
<td align="left" valign="top" width="15%">CPF2204 E</td>
<td align="left" valign="top" width="85%">User profile &amp;1 not found.</td>
</tr>
<tr>
<td align="left" valign="top">CPF24AC E</td>
<td align="left" valign="top">Either message identifier or message text must be
specified.</td>
</tr>
<tr>
<td align="left" valign="top">CPF24A2 E</td>
<td align="left" valign="top">Value for number of message queues not
valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF24B3 E</td>
<td align="left" valign="top">Message type &amp;1 not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF24B4 E</td>
<td align="left" valign="top">Severe error while addressing parameter
list.</td>
</tr>
<tr>
<td align="left" valign="top">CPF24B6 E</td>
<td align="left" valign="top">Length of &amp;1, not valid for message text or
data.</td>
</tr>
<tr>
<td align="left" valign="top">CPF2428 E</td>
<td align="left" valign="top">Message queue parameter is not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF2433 E</td>
<td align="left" valign="top">Function not allowed for system log message queue
&amp;1.</td>
</tr>
<tr>
<td align="left" valign="top">CPF2435 E</td>
<td align="left" valign="top">System reply list not found.</td>
</tr>
<tr>
<td align="left" valign="top">CPF2469 E</td>
<td align="left" valign="top">Error occurred when sending message&amp;1.</td>
</tr>
<tr>
<td align="left" valign="top">CPF2401 E</td>
<td align="left" valign="top">Not authorized to library &amp;1.</td>
</tr>
<tr>
<td align="left" valign="top">CPF2403 E</td>
<td align="left" valign="top">Message queue &amp;1 in &amp;2 not found.</td>
</tr>
<tr>
<td align="left" valign="top">CPF2407 E</td>
<td align="left" valign="top">Message file &amp;1 in &amp;2 not found.</td>
</tr>
<tr>
<td align="left" valign="top">CPF2408 E</td>
<td align="left" valign="top">Not authorized to message queue &amp;1.</td>
</tr>
<tr>
<td align="left" valign="top">CPF2411 E</td>
<td align="left" valign="top">Not authorized to message file &amp;1 in
&amp;2.</td>
</tr>
<tr>
<td align="left" valign="top">CPF2421 E</td>
<td align="left" valign="top">Message not sent. &amp;1 in &amp;2 not work
station message queue.</td>
</tr>
<tr>
<td align="left" valign="top">CPF2460 E</td>
<td align="left" valign="top">Message queue &amp;1 could not be extended.</td>
</tr>
<tr>
<td align="left" valign="top">CPF2467 E</td>
<td align="left" valign="top">&amp;3 message queue &amp;1 in library &amp;2
logically damaged.</td>
</tr>
<tr>
<td align="left" valign="top">CPF2477 E</td>
<td align="left" valign="top">Message queue &amp;1 currently in use.</td>
</tr>
<tr>
<td align="left" valign="top">CPF247E E</td>
<td align="left" valign="top">CCSID &amp;1 is not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF2548 E</td>
<td align="left" valign="top">Damage to message file &amp;1 in &amp;2.</td>
</tr>
<tr>
<td align="left" valign="top">CPF2557 E</td>
<td align="left" valign="top">System reply list damaged.</td>
</tr>
<tr>
<td align="left" valign="top">CPF2558 E</td>
<td align="left" valign="top">System reply list currently in use.</td>
</tr>
<tr>
<td align="left" valign="top">CPF8100 E</td>
<td align="left" valign="top">All CPF81xx messages could be returned. xx is
from 01 to FF.</td>
</tr>
<tr>
<td align="left" valign="top">CPF2481 E</td>
<td align="left" valign="top">Work station message queue not available.</td>
</tr>
<tr>
<td align="left" valign="top">CPF2488 E</td>
<td align="left" valign="top">Reply message queue *WRKSTN not valid for batch
job.</td>
</tr>
<tr>
<td align="left" valign="top">CPF2499 E</td>
<td align="left" valign="top">Message identifier &amp;1 not allowed.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C90 E</td>
<td align="left" valign="top">Literal value cannot be changed.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3CF1 E</td>
<td align="left" valign="top">Error code parameter not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9830 E</td>
<td align="left" valign="top">Cannot assign library &amp;1.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9872 E</td>
<td align="left" valign="top">Program or service program &amp;1 in library
&amp;2 ended. Reason code &amp;3.</td>
</tr>
</table>
<br>
<hr>
API introduced: V3R6
<hr>
<center>
<table cellpadding="2" cellspacing="2">
<tr align="center">
<td valign="middle" align="center"><a href="#Top_Of_Page">Top</a> | <a href=
"mh1.htm">Message Handling APIs</a> | <a href="aplist.htm">APIs by
category</a></td>
</tr>
</table>
</center>
</body>
</html>