495 lines
14 KiB
HTML
495 lines
14 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 Break Message (QMHSNDBM) 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 Oct 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 Break Message (QMHSNDBM) API</h2>
|
||
|
|
||
|
<div class="box" style="width: 80%;">
|
||
|
<br>
|
||
|
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 text</td>
|
||
|
<td align="left" valign="top" width="15%">Input</td>
|
||
|
<td align="left" valign="top" width="25%">Char(*)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">2</td>
|
||
|
<td align="left" valign="top">Length of message text</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Binary(4)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">3</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">4</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">5</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">6</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">7</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>
|
||
|
Optional Parameter:<br>
|
||
|
<!-- iddvc RMBR -->
|
||
|
<br>
|
||
|
<table width="100%">
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top" width="10%">8</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>
|
||
|
Default Public Authority: *USE<br>
|
||
|
<!-- iddvc RMBR -->
|
||
|
<br>
|
||
|
Threadsafe: No<br>
|
||
|
<!-- iddvc RMBR -->
|
||
|
<br>
|
||
|
</div>
|
||
|
|
||
|
<p>The Send Break Message (QMHSNDBM) API sends an immediate message to a work
|
||
|
station message queue. This forces the message queue to be displayed,
|
||
|
interrupting whatever is on the user's display. A message delivered in this way
|
||
|
is called a <strong>break message</strong>. Use break messages to ensure that
|
||
|
users see important information, such as a warning to sign off before you shut
|
||
|
the system down for maintenance.</p>
|
||
|
|
||
|
<p>To keep break messages from interrupting a job, change the value of the
|
||
|
BRKMSG parameter of the Change Job (CHGJOB) command to either *NOTIFY or
|
||
|
*HOLD.</p>
|
||
|
|
||
|
<p>If your application attempts to diagnose and recover from errors, it might
|
||
|
need to take additional action when using the QMHSNDBM API. The QMHSNDBM 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 program message queue. It 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 a general escape message
|
||
|
CPF2469. This message is returned as an exception or in the error code.</p>
|
||
|
|
||
|
<p>To diagnose and recover from these errors, your program should call the
|
||
|
QMHRCVPM API to receive the diagnostic messages sent.</p>
|
||
|
|
||
|
<br>
|
||
|
|
||
|
|
||
|
<h3>Authorities and Locks</h3>
|
||
|
|
||
|
<p>When the message type being sent is an inquiry, the sender needs the
|
||
|
following authority to the reply message queue:</p>
|
||
|
|
||
|
<dl>
|
||
|
<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 text</strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(*)
|
||
|
|
||
|
<p> The complete text of the immediate message being sent. You cannot include
|
||
|
pointer data in this parameter.</p>
|
||
|
|
||
|
<p><strong><em>Coded Character Set Identifier (CCSID)
|
||
|
Considerations:</em></strong> The text supplied on the Message text
|
||
|
parameter is assumed to be in the CCSID of the job executing this API unless
|
||
|
the coded character set identifier is supplied in the CCSID 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.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Length of message text</strong></dt>
|
||
|
|
||
|
<dd>INPUT; BINARY(4)
|
||
|
|
||
|
<p>The length of the message text, in bytes. Valid values are 1 through
|
||
|
6000.</p>
|
||
|
</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>*INFO</em></td>
|
||
|
<td align="left" valign="top">Informational. Conveys information <em>
|
||
|
without</em> asking for a reply.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>*INQ</em></td>
|
||
|
<td align="left" valign="top">Inquiry. Conveys information <em>and</em> asks
|
||
|
for a reply.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>List of qualified message queue names</strong></dt>
|
||
|
|
||
|
<dd>INPUT; ARRAY of CHAR(20)
|
||
|
|
||
|
<p>A list of 1 through 50 work station message queues to which the message is
|
||
|
being sent, and the libraries in which they reside.</p>
|
||
|
|
||
|
<p>When you send an informational message, you can specify 1 through 50
|
||
|
specific message queues or use this special value for the message queue
|
||
|
name:</p>
|
||
|
|
||
|
<table cellpadding="5">
|
||
|
<!-- cols="15 85" -->
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>*ALLWS</em></td>
|
||
|
<td align="left" valign="top">All work station message queues. Use blanks for
|
||
|
the library name, do not specify any other message queues, and specify 1 for
|
||
|
the number of message queues parameter.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<p>When you send an inquiry message, specify only one message queue.</p>
|
||
|
|
||
|
<p>When you send an informational or inquiry message to a specific message
|
||
|
queue, use the first 10 characters for the message queue name. Use the second
|
||
|
10 characters for the library name.</p>
|
||
|
|
||
|
<p>You can use this special value for the library name:</p>
|
||
|
|
||
|
<table cellpadding="5">
|
||
|
<!-- cols="15 85" -->
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>*LIBL</em></td>
|
||
|
<td align="left" valign="top">The library list</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<p>If you send a break message to a specific work station message queue and
|
||
|
that work station is not logged on, no error is returned. However, diagnostic
|
||
|
message CPF2429, Message to work station did not break, appears in the job
|
||
|
log.</p>
|
||
|
</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.</p>
|
||
|
|
||
|
<p>For informational (*INFO) messages, valid values are 1 through 50.</p>
|
||
|
|
||
|
<p>For inquiry (*INQ) messages or when using the special value *ALLWS for the
|
||
|
message queue, you must specify 1.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Qualified name of the reply message queue</strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(20)
|
||
|
|
||
|
<p>For an inquiry message, the name of the message queue to receive the reply
|
||
|
message, and the library in which it resides. The first 10 characters specify
|
||
|
the message queue, and the second 10 characters specify the library. You can
|
||
|
use this special value 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>
|
||
|
</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 an informational message, 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>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</h3>
|
||
|
|
||
|
<dl>
|
||
|
<dt><strong>Coded character set identifier</strong></dt>
|
||
|
|
||
|
<dd>INPUT; BINARY(4)
|
||
|
|
||
|
<p>The coded character set identifier (CCSID) that the supplied message text is
|
||
|
in. 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 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 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 message text is
|
||
|
in. Valid values are between 1 and 65535. This API will validate the CCSID.
|
||
|
|
||
|
<p>For a list of valid CCSIDs, see <a href="../nls/rbagsccsidmsgsup2.htm">
|
||
|
CCSIDs: Message Support</a> in the Globalization topic.</p>
|
||
|
</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
|
||
|
<br>
|
||
|
|
||
|
|
||
|
<h3>Error Messages</h3>
|
||
|
|
||
|
<table width="100%" cellpadding="5">
|
||
|
<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%">CPF24A2 E</td>
|
||
|
<td align="left" valign="top" width="85%">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 &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 &1, not valid for message text or
|
||
|
data.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF2421 E</td>
|
||
|
<td align="left" valign="top">Message not sent. &1 in &2 not work
|
||
|
station message queue.</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">CPF2429 E</td>
|
||
|
<td align="left" valign="top">Message to work station &1 did not
|
||
|
break.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF2469 E</td>
|
||
|
<td align="left" valign="top">Error occurred when sending message&1.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF2401 E</td>
|
||
|
<td align="left" valign="top">Not authorized to library &1.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF2403 E</td>
|
||
|
<td align="left" valign="top">Message queue &1 in &2 not found.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF2408 E</td>
|
||
|
<td align="left" valign="top">Not authorized to message queue &1.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF2421 E</td>
|
||
|
<td align="left" valign="top">Message not sent. &1 in &2 not work
|
||
|
station message queue.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF2460 E</td>
|
||
|
<td align="left" valign="top">Message queue &1 could not be extended.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF2467 E</td>
|
||
|
<td align="left" valign="top">&3 message queue &1 in library &2
|
||
|
logically damaged.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF2477 E</td>
|
||
|
<td align="left" valign="top">Message queue &1 currently in use.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF247E E</td>
|
||
|
<td align="left" valign="top">CCSID &1 is not valid.</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">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">CPF3CF1 E</td>
|
||
|
<td align="left" valign="top">Error code parameter not valid.</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">CPF9830 E</td>
|
||
|
<td align="left" valign="top">Cannot assign library &1.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF9872 E</td>
|
||
|
<td align="left" valign="top">Program or service program &1 in library
|
||
|
&2 ended. Reason code &3.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
|
||
|
|
||
|
<hr>
|
||
|
API introduced: V2R1
|
||
|
|
||
|
<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>
|
||
|
|