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

918 lines
26 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>Create User Queue (QUSCRTUQ) 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. -->
<!-- QCLRDTAQ SCRIPT A converted by B2H R4.1 (346) (CMS) by PMHALL at -->
<!-- RCHVMW2 on 7 Oct 1998 at 16:10:02 -->
<!-- Change History: -->
<!-- YYMMDD USERID Change description -->
<!-- File cleanup completed Feb 2002 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>Create User Queue (QUSCRTUQ) API</h2>
<div class="box" style="width: 70%;">
<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%">Qualified user queue name</td>
<td align="left" valign="top" width="20%">Input</td>
<td align="left" valign="top" width="20%">Char(20)</td>
</tr>
<tr>
<td align="center" valign="top">2</td>
<td align="left" valign="top">Extended attribute</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(10)</td>
</tr>
<tr>
<td align="center" valign="top">3</td>
<td align="left" valign="top">Queue type</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(1)</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="left" valign="top">Key length</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">Maximum message size</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">Initial number of messages</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">7</td>
<td align="left" valign="top">Additional number of messages</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">Public authority</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(10)</td>
</tr>
<tr>
<td align="center" valign="top">9</td>
<td align="left" valign="top">Text description</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(50)</td>
</tr>
</table>
<br>
&nbsp;&nbsp;Optional Parameter Group 1:<br>
<!-- iddvc RMBR -->
<br>
<table width="100%">
<tr>
<td align="center" valign="top" width="10%">10</td>
<td align="left" valign="top" width="50%">Replace</td>
<td align="left" valign="top" width="20%">Input</td>
<td align="left" valign="top" width="20%">Char(10)</td>
</tr>
<tr>
<td align="center" valign="top">11</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 2:<br>
<!-- iddvc RMBR -->
<br>
<table width="100%">
<tr>
<td align="center" valign="top" width="10%">12</td>
<td align="left" valign="top" width="50%">Domain</td>
<td align="left" valign="top" width="20%">Input</td>
<td align="left" valign="top" width="20%">Char(10)</td>
</tr>
<tr>
<td align="center" valign="top">13</td>
<td align="left" valign="top">Pointers</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(10)</td>
</tr>
</table>
<br>
&nbsp;&nbsp;Optional Parameter Group 3:<br>
<!-- iddvc RMBR -->
<br>
<table width="100%">
<tr>
<td align="center" valign="top" width="10%">14</td>
<td align="left" valign="top" width="50%">Number of queue extensions</td>
<td align="left" valign="top" width="20%">Input</td>
<td align="left" valign="top" width="20%">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">15</td>
<td align="left" valign="top">Reclaim storage</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(1)</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 Create User Queue (QUSCRTUQ) API creates a user queue in either the user
domain or the system domain, based on the input parameters. A user-domain user
queue can be directly manipulated with MI instructions. If you are running at
security level 40 or greater, you cannot directly manipulate a system-domain
user queue using MI instructions.</p>
<p> If the number of queue extensions is not specified, user queues can grow to
a maximum of 16MB in size, though some of that is used for the queue
definition. If the number of queue extensions is specified and non-zero, the
queue will be extended by the number of additional messages specified until
either the number of queue extensions is reached or the storage limit of 2GB is reached.</p>
<p>The system can automatically extend user queues, so you should create a
small queue and allow the system to extend the queue as needed. Smaller queues
provide better performance and use less storage. However, the system does not
automatically reduce the size of the queue if it is too large. If you specify
the additional number of messages as 0, the system does not extend the user
queue you create when the queue is full.</p>
<p>To decrease the size of a user queue, a user must delete the queue and
create it again.</p>
<p>There are no APIs to manipulate user queue entries. If you must access a
user queue object in a library that does not permit user-domain user objects,
you must use data queue objects. For information about data queues, refer to
the <a href="../rbam6/clpro.htm">CL Programming</a> topic.</p>
<p>If you need to know into which domain the user queue object was created, use
either of the following APIs to retrieve that information:</p>
<ul>
<li>Retrieve Object Description (QUSROBJD) API</li>
<li>List Object (QUSLOBJ) API</li>
</ul>
<strong>Note:</strong> For performance reasons, the *USRQ object is created
before checking to see if it exists in the library specified for the qualified
user queue name. If you have an application using this API repeatedly, even if
you are using *NO for the replace parameter, permanent system addresses will be
used.
<p><strong>Note:</strong>User queues created with either the number of queue
extensions parameter specified with a positive, non-zero number or the reclaim
storage parameter specified to reclaim the user queue storage are not eligible
to save to a pre-V4R5 system.</p>
<br>
<h3>Authorities and Locks</h3>
<dl>
<dt><em>Library Authority</em></dt>
<dd>*READ and *ADD.</dd>
<dt><em>User Queue Authority</em></dt>
<dd>*OBJMGT, *OBJEXIST, and *READ. These authorities are required only if the
replace parameter is used and if there is an existing user queue to
replace.</dd>
<dt><em>User Queue Lock</em></dt>
<dd>*EXCL. This applies to both the user queue being created and an existing
user queue being replaced.</dd>
</dl>
<br>
<h3>Required Parameter Group</h3>
<dl>
<dt><strong>Qualified user queue name</strong></dt>
<dd>INPUT; CHAR(20)
<p>The first 10 characters contain the user queue name, and the second 10
characters contain the name of the library where the user queue is located. The
only special value supported is *CURLIB.</p>
<p>User queues created in the QTEMP and QRPLOBJ libraries are not forced to
permanent storage; they are deleted when those libraries are cleared at
sign-off and system IPL, respectively.</p>
</dd>
<dt><strong>Extended attribute</strong></dt>
<dd>INPUT; CHAR(10)
<p>The extended attribute of the user queue. For example, an object type of
*FILE has an extended attribute of PF (physical file), LF (logical file), DSPF
(display file), SAVF (save file), and so on.</p>
<p>The extended attribute must be a valid *NAME. You can enter this parameter
in uppercase, lowercase, or mixed case. The API automatically converts it to
uppercase.</p>
</dd>
<dt><strong>Queue type</strong></dt>
<dd>INPUT; CHAR(1)
<p>The sequence in which messages are to be dequeued from the queue. The valid
values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>F</em></td>
<td align="left" valign="top">First-in first-out</td>
</tr>
<tr>
<td align="left" valign="top"><em>K</em></td>
<td align="left" valign="top">Keyed</td>
</tr>
<tr>
<td align="left" valign="top"><em>L</em></td>
<td align="left" valign="top">Last-in first-out</td>
</tr>
</table>
<br>
</dd>
<dt><strong>Key length</strong></dt>
<dd>INPUT; BINARY(4)
<p>The length in bytes of the message key from 1 to 256 if you specify the
queue type as keyed. If you specify that the queue is not a keyed queue, the
value must be 0.</p>
</dd>
<dt><strong>Maximum message size</strong></dt>
<dd>INPUT; BINARY(4)
<p>The maximum allowed size of messages to be placed on the queue. The API
truncates messages that are longer than the value you specify. The maximum size
allowed is 64 000 bytes.</p>
</dd>
<dt><strong>Initial number of messages</strong></dt>
<dd>INPUT; BINARY(4)
<p>The initial number of messages that the queue can contain.</p>
</dd>
<dt><strong>Additional number of messages</strong></dt>
<dd>INPUT; BINARY(4)
<p>The amount to increase the maximum number of messages value when the queue
is full. When this parameter is set to 0, the queue is not extended if an
overflow occurs and an error message is sent to the program attempting to place
a message on the queue.</p>
</dd>
<dt><strong>Public authority</strong></dt>
<dd>INPUT; CHAR(10)
<p>The authority you give to the users who do not have specific private or
group authority to the user queue. Once the user queue has been created, its
public authority stays the same when it is moved to another library or restored
from backup media.</p>
<p>If the replace parameter is used and a user queue exists to be replaced,
this parameter is ignored. All authorities are transferred from the replaced
user queue to the new one.</p>
<p>The valid values for this parameter are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*ALL</em></td>
<td align="left" valign="top">The user can perform all authorized operations on
the user queue.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Authorization list name</em></td>
<td align="left" valign="top">The user queue is secured by the specified
authorization list, and its public authority is set to *AUTL. The specified
authorization list must exist on the system when this API is issued. If it does
not exist, the create process fails, and an error message is returned to the
application.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*CHANGE</em></td>
<td align="left" valign="top">The user has read, add, update, and delete
authority to the user queue and can read the object description.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*EXCLUDE</em></td>
<td align="left" valign="top">The user cannot access the user queue in any
way.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*LIBCRTAUT</em></td>
<td align="left" valign="top">The public authority for the user queue is taken
from the CRTAUT value for the target library when the object is created. If the
CRTAUT value for the library changes later, that change does not affect user
queues already created. If the CRTAUT value contains an authorization list name
and that authorization list secures an object, do not delete the list. If you
do, the next time you call this API with the *LIBCRTAUT parameter, it will
fail.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*USE</em></td>
<td align="left" valign="top">The user can read the object description and the
user queue's contents but cannot change them.</td>
</tr>
</table>
<br>
</dd>
<dt><strong>Text description</strong></dt>
<dd>INPUT; CHAR(50)
<p>A brief description of the user queue.</p>
</dd>
</dl>
<br>
<h3>Optional Parameter Group 1</h3>
<dl>
<dt><strong>Replace</strong></dt>
<dd>INPUT; CHAR(10)
<p>Whether to replace an existing user queue. Valid values for this parameter
are:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>*NO</em></td>
<td align="left" valign="top">Do not replace an existing user queue of the same
name and library. *NO is the default.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*YES</em></td>
<td align="left" valign="top">Replace an existing user queue of the same name
and library.</td>
</tr>
</table>
<p>The user queue being replaced is destroyed if both:</p>
<ul>
<li>The user queue you are replacing is in the user domain.</li>
<li>The allow user domain (QALWUSRDMN) system value is not set to *ALL or does
not contain the library QRPLOBJ.</li>
</ul>
<p>If the QRPLOBJ library is specified in the QALWUSRDMN system value, then the
replaced user-domain user queue is moved to the QRPLOBJ library. If the user
queue is in the system domain, it is moved to the QRPLOBJ library, which is
cleared at system IPL. For details about authorities, ownership, and renaming,
see the discussion of the REPLACE parameter in <a href=
"../rbam6/rbam6clmain.htm">Control Language (CL)</a> information.</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>. If this
parameter is omitted, diagnostic and escape messages are issued to the
application.</p>
</dd>
</dl>
<br>
<h3>Optional Parameter Group 2</h3>
<dl>
<dt><strong>Domain</strong></dt>
<dd>INPUT; CHAR(10)
<p>The domain into which the user queue should be created. If this parameter is
not specified, the value of *DEFAULT will be assumed by the API. Valid values
for this parameter are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*DEFAULT</em></td>
<td align="left" valign="top">Allows the system to decide into which domain the
object should be created.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*SYSTEM</em></td>
<td align="left" valign="top">Creates the user queue object into the system
domain. The API can always create a user queue into the system domain
regardless of the security level you are running at. However, system-domain
user queues can only be used at security level 30 and below because there are
no APIs to access user queues.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*USER</em></td>
<td align="left" valign="top">Attempts to create the user queue object into the
user domain. This is not always possible. If the library you are creating the
user queue into does not appear in the QALWUSRDMN system value, the API cannot
create the user queue into the user domain. An error message will be
returned.</td>
</tr>
</table>
<p>The API uses the following criteria to determine into which domain to create
the user queue. The destination library is the library you specified in the
qualified user queue name parameter. The optional domain parameter is the
information specified in the domain parameter.</p>
<p><a name="uq_domain"><strong>User Queue domain table</strong></a></p>
<table border width="80%">
<tr>
<th align="left" valign="bottom">QALWUSRDMN System Value</th>
<th align="left" valign="bottom">Destination Library</th>
<th align="left" valign="bottom">Optional Domain Parameter</th>
<th align="left" valign="bottom">Domain of Created Object</th>
</tr>
<tr>
<td align="left" valign="bottom">*ALL</td>
<td align="left" valign="bottom">Any</td>
<td align="left" valign="bottom">*DEFAULT</td>
<td align="left" valign="bottom">User domain</td>
</tr>
<tr>
<td align="left" valign="bottom">*ALL</td>
<td align="left" valign="bottom">Any</td>
<td align="left" valign="bottom">*SYSTEM</td>
<td align="left" valign="bottom">System domain</td>
</tr>
<tr>
<td align="left" valign="bottom">*ALL</td>
<td align="left" valign="bottom">Any</td>
<td align="left" valign="bottom">*USER</td>
<td align="left" valign="bottom">User domain</td>
</tr>
<tr>
<td align="left" valign="bottom">QTEMP</td>
<td align="left" valign="bottom">QTEMP</td>
<td align="left" valign="bottom">*DEFAULT</td>
<td align="left" valign="bottom">User domain</td>
</tr>
<tr>
<td align="left" valign="bottom">QTEMP</td>
<td align="left" valign="bottom">QTEMP</td>
<td align="left" valign="bottom">*SYSTEM</td>
<td align="left" valign="bottom">System domain</td>
</tr>
<tr>
<td align="left" valign="bottom">QTEMP</td>
<td align="left" valign="bottom">QTEMP</td>
<td align="left" valign="bottom">*USER</td>
<td align="left" valign="bottom">User domain</td>
</tr>
<tr>
<td align="left" valign="bottom">Does not contain library name</td>
<td align="left" valign="bottom">Library name</td>
<td align="left" valign="bottom">*DEFAULT</td>
<td align="left" valign="bottom">System domain</td>
</tr>
<tr>
<td align="left" valign="bottom">Does not contain library name</td>
<td align="left" valign="bottom">Library name</td>
<td align="left" valign="bottom">*SYSTEM</td>
<td align="left" valign="bottom">System domain</td>
</tr>
<tr>
<td align="left" valign="bottom">Does not contain library name</td>
<td align="left" valign="bottom">Library name</td>
<td align="left" valign="bottom">*USER</td>
<td align="left" valign="bottom">None; error is returned</td>
</tr>
<tr>
<td align="left" valign="top" colspan="4"><strong>Note:</strong> The QALWUSRDMN
system value lists the libraries into which the user domain objects can be
created. The libraries include special value *ALL or a list of one or more
library names.</td>
</tr>
</table>
<br>
</dd>
<dt><strong>Pointers</strong></dt>
<dd>INPUT; CHAR(10)
<p>Whether or not the user queue messages can contain pointer data or not. If
this parameter is not specified, *NO is assumed.</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>*YES</em></td>
<td align="left" valign="top">Messages can contain pointer and scalar data.
Messages to be enqueued must be 16-byte aligned, regardless of whether or not
the message contains pointer data. Only user-domain user queues can contain
pointer data; therefore, queues that support pointers cannot be created in or
restored to a library that is not permitted by system value QALWUSRDMN. User
queues that can contain pointers cannot be saved to a release prior to Version
2 Release 3 Modification Level 0.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*NO</em></td>
<td align="left" valign="top">Messages can contain scalar data only. (User
queues created prior to Version 2 Release 3 Modification Level 0 contain scalar
data only). The user queue can be in either the system domain or the user
domain.</td>
</tr>
</table>
</dd>
</dl>
<br>
<h3>Optional Parameter Group 3</h3>
<dl>
<dt><strong>Number of queue extensions</strong></dt>
<dd>INPUT; BINARY(4)
<p>The maximum number of extensions allowed for the user queue. A value of -1
indicates that the maximum number of extensions will be chosen by the machine.
If this parameter is not specified, 0 is assumed.</p>
</dd>
<dt><strong>Reclaim storage</strong></dt>
<dd>INPUT; CHAR(1)
<p>Whether storage reclaim will be attempted when the number of currently
enqueued messages in the user queue reaches zero. Allowable values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">Do not reclaim storage when the user queues have
no currently enqueued messages. 0 is the default value.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Reclaim storage when the user queues have no
currently enqueued messages.</td>
</tr>
</table>
</dd>
</dl>
<br>
<h3>Error Messages</h3>
<table cellpadding="5">
<!-- cols="15 85" -->
<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">CPF2143 E</td>
<td align="left" valign="top">Cannot allocate object &amp;1 in &amp;2 type
*&amp;3.</td>
</tr>
<tr>
<td align="left" valign="top">CPF2144 E</td>
<td align="left" valign="top">Not authorized to &amp;1 in &amp;2 type
*&amp;3.</td>
</tr>
<tr>
<td align="left" valign="top">CPF2283 E</td>
<td align="left" valign="top">Authorization list &amp;1 does not exist.</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">CPF3CF1 E</td>
<td align="left" valign="top">Error code parameter not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3CF2 E</td>
<td align="left" valign="top">Error(s) occurred during running of &amp;1
API.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C02 E</td>
<td align="left" valign="top">User queue &amp;1 not created.</td>
</tr>
<tr>
<td align="left" valign="top">CPD3C01 D</td>
<td align="left" valign="top">Object name &amp;1 is not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPD3C03 D</td>
<td align="left" valign="top">Extended attribute &amp;1 is not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPD3C05 D</td>
<td align="left" valign="top">Value &amp;1 for authority parameter is not
valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPD3C06 D</td>
<td align="left" valign="top">Number of messages requested, &amp;1, is too
large for this queue.</td>
</tr>
<tr>
<td align="left" valign="top">CPD3C07 D</td>
<td align="left" valign="top">Value &amp;1 for queue type parameter is not
valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPD3C08 D</td>
<td align="left" valign="top">Initial number of queue messages specified,
&amp;1, is not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPD3C09 D</td>
<td align="left" valign="top">Extension parameter value &amp;1 for queue
overflow is not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPD3C10 D</td>
<td align="left" valign="top">Value &amp;1 for key length parameter is not
valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPD3C11 D</td>
<td align="left" valign="top">Value &amp;1 for maximum message size parameter
is not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C08 E</td>
<td align="left" valign="top">Initial number of queue messages specified,
&amp;1, is not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C09 E</td>
<td align="left" valign="top">Extension parameter value &amp;1 for queue
overflow is not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C10 E</td>
<td align="left" valign="top">Value &amp;1 for key length parameter is not
valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C11 E</td>
<td align="left" valign="top">Value &amp;1 for maximum message size parameter
is not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C2B E</td>
<td align="left" valign="top">Extended attribute &amp;1 is not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C2D E</td>
<td align="left" valign="top">Value &amp;1 for authority parameter is not
valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C2E E</td>
<td align="left" valign="top">Number of messages requested, &amp;1, is too
large for this queue.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C2F E</td>
<td align="left" valign="top">Value &amp;1 for queue type parameter not
valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C29 E</td>
<td align="left" valign="top">Object name &amp;1 is not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C34 E</td>
<td align="left" valign="top">Value &amp;1 for replace option is not
valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C36 E</td>
<td align="left" valign="top">Number of parameters, &amp;1, entered for this
API was not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C45 E</td>
<td align="left" valign="top">Value &amp;1 not valid for domain parameter.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C46 E</td>
<td align="left" valign="top">Value &amp;1 not valid for pointers
parameter.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C47 E</td>
<td align="left" valign="top">Pointers not valid for system domain user
queue.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C49 E</td>
<td align="left" valign="top">Request for user domain object cannot be
granted.</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">CPF3C94 E</td>
<td align="left" valign="top">Value &amp;1 not valid for reclaim storage
parameter.</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">CPF9810 E</td>
<td align="left" valign="top">Library &amp;1 not found.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9820 E</td>
<td align="left" valign="top">Not authorized to use library &amp;1.</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">CPF9838 E</td>
<td align="left" valign="top">User profile storage limit exceeded.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9870 E</td>
<td align="left" valign="top">Object &amp;2 type *&amp;5 already exists in
library &amp;3.</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: V1R3
<hr>
<table align="center" cellpadding="2" cellspacing="2">
<tr align="center">
<td valign="middle" align="center"><a href="#">Top</a> | <a href="obj1.htm">
Object APIs</a> | <a href="aplist.htm">APIs by category</a></td>
</tr>
</table>
</body>
</html>