1063 lines
28 KiB
HTML
1063 lines
28 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 Index (QUSCRTUI) 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. -->
|
||
|
<!-- QUSCRTUI SCRIPT A converted by B2H R4.1 (346) (CMS) by PMHALL at -->
|
||
|
<!-- RCHVMW2 on 7 Oct 1998 at 17:33:21 -->
|
||
|
<!-- Change History: -->
|
||
|
<!-- YYMMDD USERID Change description -->
|
||
|
<!-- Edited by Kersten Jan 02 -->
|
||
|
<!--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 Index (QUSCRTUI) API</h2>
|
||
|
|
||
|
<div class="box" style="width: 75%;">
|
||
|
<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%">Qualified user index 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">Entry length attribute</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">Entry 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">Key insertion</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Char(1)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">6</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">7</td>
|
||
|
<td align="left" valign="top">Immediate update</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Char(1)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">8</td>
|
||
|
<td align="left" valign="top">Optimization</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Char(1)</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">9</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">10</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>
|
||
|
Optional Parameter Group 1:<br>
|
||
|
<!-- iddvc RMBR -->
|
||
|
<br>
|
||
|
<table width="100%">
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top" width="10%">11</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">12</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 Group 2:<br>
|
||
|
<!-- iddvc RMBR -->
|
||
|
<br>
|
||
|
|
||
|
<table width="100%">
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top" width="10%">13</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>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
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%">Usage tracking</td>
|
||
|
<td align="left" valign="top" width="20%">Input</td>
|
||
|
<td align="left" valign="top" width="20%">Char(1)</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
Optional Parameter Group 4:<br>
|
||
|
<!-- iddvc RMBR -->
|
||
|
<br>
|
||
|
<table width="100%">
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top" width="10%">15</td>
|
||
|
<td align="left" valign="top" width="50%">Index size option</td>
|
||
|
<td align="left" valign="top" width="20%">Input</td>
|
||
|
<td align="left" valign="top" width="20%">Char(1)</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
Default Public Authority: *USE<br>
|
||
|
<!-- iddvc RMBR -->
|
||
|
<br>
|
||
|
Threadsafe: Yes<br>
|
||
|
<!-- iddvc RMBR -->
|
||
|
<br>
|
||
|
</div>
|
||
|
|
||
|
<p>The Create User Index (QUSCRTUI) API creates a user index in either the user
|
||
|
domain or the system domain. A system-domain user index cannot be saved to a
|
||
|
release prior to Version 2 Release 3 Modification 0. A user-domain user index
|
||
|
can be directly manipulated with MI instructions and can also be accessed using
|
||
|
system APIs at all security levels. On a system with the QSECURITY system value
|
||
|
set to 40 or greater, you must use system APIs to access system-domain user
|
||
|
indexes. If you create a permanent object by using this API, you cannot delete
|
||
|
the object by using the MI instruction DESINX when the system security level is
|
||
|
set to 40 or greater. You would have to delete the object by using the Delete
|
||
|
User Index (QUSDLTUI) API.</p>
|
||
|
|
||
|
<p><strong>Note:</strong> If the
|
||
|
user index is larger than 4 gigabytes, it cannot be saved to a release prior to
|
||
|
Version 5 Release 2 Modification 0.</p>
|
||
|
|
||
|
<p>If the user index was created prior to Version 2 Release 2 Modification 0,
|
||
|
the size of the user index is limited to a maximum of 1 gigabyte. (A user index
|
||
|
with a size greater than 1 gigabyte cannot be saved to or restored from a
|
||
|
release prior to Version 2 Release 2 Modification 0.) If the user index was
|
||
|
created on or after Version 2 Release 2 Modification 0, the size of the object
|
||
|
is limited to a maximum of 4 gigabytes. The size is dependent on the amount of
|
||
|
storage needed for the number and size of index entries and excludes the size
|
||
|
of the associated space, if any.</p>
|
||
|
|
||
|
<p><strong>Note:</strong> You can tell whether a user index object can be saved
|
||
|
to a release prior to Version 2 Release 2 Modification 0:</p>
|
||
|
|
||
|
<ul>
|
||
|
<li>By ensuring that the current object size is less than 1 gigabyte by using
|
||
|
one of the following:
|
||
|
|
||
|
<ul>
|
||
|
<li>The Display Object Description (DSPOBJD) command</li>
|
||
|
|
||
|
<li>The List Objects (QUSLOBJ) API</li>
|
||
|
|
||
|
<li>The Retrieve Object Description (QUSROBJD) API</li>
|
||
|
</ul>
|
||
|
</li>
|
||
|
|
||
|
<li>By ensuring that the key length field is 120 bytes or less by using either
|
||
|
of the following:
|
||
|
|
||
|
<ul>
|
||
|
<li>The Materialize Index Attributes (MATINXAT) MI instruction</li>
|
||
|
|
||
|
<li>The Retrieve User Index Attributes (QUSRUIAT) API</li>
|
||
|
</ul>
|
||
|
</li>
|
||
|
</ul>
|
||
|
|
||
|
<p><strong>Note:</strong> For performance reasons, the *USRIDX object is
|
||
|
created before checking to see if it exists in the library specified for the
|
||
|
qualified user index 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>
|
||
|
|
||
|
<br>
|
||
|
|
||
|
|
||
|
<h3>Authorities and Locks</h3>
|
||
|
|
||
|
<dl>
|
||
|
<dt><em>Library Authority</em></dt>
|
||
|
|
||
|
<dd>*READ and *ADD.<br>
|
||
|
<br>
|
||
|
</dd>
|
||
|
|
||
|
<dt><em>User Index Authority</em></dt>
|
||
|
|
||
|
<dd>*OBJMGT, *OBJEXIST, and *READ. These authorities are required only if the
|
||
|
replace parameter is used and there is an existing user index to replace.<br>
|
||
|
<br>
|
||
|
</dd>
|
||
|
|
||
|
<dt><em>User Index Lock</em></dt>
|
||
|
|
||
|
<dd>*EXCL. This applies to both the user index being created and an existing
|
||
|
user index being replaced.</dd>
|
||
|
</dl>
|
||
|
|
||
|
<br>
|
||
|
|
||
|
|
||
|
<h3>Required Parameter Group</h3>
|
||
|
|
||
|
<dl>
|
||
|
<dt><strong>Qualified user index name</strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(20)
|
||
|
|
||
|
<p>The name of the user index being created, and the library in which it is to
|
||
|
be located. The first 10 characters contain the user index name, and the second
|
||
|
10 characters contain 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>*CURLIB</em></td>
|
||
|
<td align="left" valign="top">The job's current library</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<p>User indexes 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 index. For example, an object type of
|
||
|
*FILE could have an extended attribute of PF (physical file), LF (logical
|
||
|
file), DSPF (display file), or SAVF (save file).</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>Entry length attribute</strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(1)
|
||
|
|
||
|
<p>Whether there are fixed-length or variable-length entries in the user index.
|
||
|
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">Fixed-length entries</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>V</em></td>
|
||
|
<td align="left" valign="top">Variable-length entries</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Entry length</strong></dt>
|
||
|
|
||
|
<dd>INPUT; BINARY(4)
|
||
|
|
||
|
<p>The length of entries in the index.</p>
|
||
|
|
||
|
<p>The valid values for fixed-length entries are from 1 through 2000.</p>
|
||
|
|
||
|
<p>Valid values for variable length entries are 0 or -1. A value of 0 enables a
|
||
|
maximum entry length of 120 bytes and a key length from 1 through 120. A value
|
||
|
of -1 enables a maximum entry length of 2000 and a key length from 1 through
|
||
|
2000.</p>
|
||
|
|
||
|
<p><strong>Note:</strong> A user index created with an entry length greater
|
||
|
than 120 cannot be saved or restored to a release prior to
|
||
|
Version 2 Release 2 Modification 0.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Key insertion</strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(1)
|
||
|
|
||
|
<p>Whether the inserts to the index are by key. The valid values are:</p>
|
||
|
|
||
|
<table cellpadding="5">
|
||
|
<!-- cols="5 95" -->
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>0</em></td>
|
||
|
<td align="left" valign="top">No insertion by key</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>1</em></td>
|
||
|
<td align="left" valign="top">Insertion by key</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Key length</strong></dt>
|
||
|
|
||
|
<dd>INPUT; BINARY(4)
|
||
|
|
||
|
<p>The length of the key where the first byte of an entry is the beginning of
|
||
|
the key for the index entries. The value for this parameter must be 0 for no
|
||
|
insertion by key. If you specify key length insertion, this value is from 1
|
||
|
through 2000.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Immediate update</strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(1)
|
||
|
|
||
|
<p>Whether the updates to the index are written synchronously to auxiliary
|
||
|
storage on each update to the index. The valid values are:</p>
|
||
|
|
||
|
<table cellpadding="5">
|
||
|
<!-- cols="5 95" -->
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>0</em></td>
|
||
|
<td align="left" valign="top">No immediate update</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>1</em></td>
|
||
|
<td align="left" valign="top">Immediate update</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<p>Each update to the index is written to auxiliary storage after every insert
|
||
|
and remove operation.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Optimization</strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(1)
|
||
|
|
||
|
<p>The type of access in which to optimize the index. The valid values are:</p>
|
||
|
|
||
|
<table cellpadding="5">
|
||
|
<!-- cols="5 95" -->
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>0</em></td>
|
||
|
<td align="left" valign="top">Optimize for random references</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>1</em></td>
|
||
|
<td align="left" valign="top">Optimize for sequential references</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Public authority</strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(10)
|
||
|
|
||
|
<p>The authority you give to users who do not have specific private or group
|
||
|
authority to the user index. Once the user index 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 an existing user index is replaced,
|
||
|
this parameter is ignored. All authorities are transferred from the replaced
|
||
|
user index to the new one.</p>
|
||
|
|
||
|
<p>The valid values for this parameter are:</p>
|
||
|
|
||
|
<table cellpadding="5">
|
||
|
<!-- cols="25 75" -->
|
||
|
<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 index.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>Authorization list name</em></td>
|
||
|
<td align="left" valign="top">The user index 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 the
|
||
|
list 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 for the user index 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 index 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 index 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
|
||
|
indexes 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
|
||
|
contents but cannot change the user index.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Text description</strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(50)
|
||
|
|
||
|
<p>A brief description of the user index.</p>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
|
||
|
<br>
|
||
|
|
||
|
|
||
|
<h3>Optional Parameter Group 1</h3>
|
||
|
|
||
|
<dl>
|
||
|
<dt><strong>Replace</strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(10)
|
||
|
|
||
|
<p>Whether you want to replace an existing user index. 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 index of the same
|
||
|
name and library. *NO is the default value.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>*YES</em></td>
|
||
|
<td align="left" valign="top">Replace an existing user index of the same name
|
||
|
and library.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<p>If the user index already exists, you can replace it with a new user index
|
||
|
of the same name and library. The new user index is subject to the same
|
||
|
authorities. The user index being replaced is destroyed if both:</p>
|
||
|
|
||
|
<ul>
|
||
|
<li>The allow user domain (QALWUSRDMN) system value is not set to *ALL or does
|
||
|
not contain the QRPLOBJ library.</li>
|
||
|
|
||
|
<li>The user index you are replacing is in the user domain.</li>
|
||
|
</ul>
|
||
|
|
||
|
<p>If the user index is in the system domain, it is moved to the QRPLOBJ
|
||
|
library. If QALWUSRDMN is set to *ALL or if it contains QRPLOBJ, the replaced
|
||
|
user index is moved to QRPLOBJ, which is cleared at system IPL. For details
|
||
|
about authorities, ownership, and renaming, see the discussion of the REPLACE
|
||
|
parameter in the <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 index 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 index object into the system
|
||
|
domain. The API can always create a user index into the system domain,
|
||
|
regardless of the security level running. However, if you are running at
|
||
|
security level 40 or greater, you must use APIs to access system-domain user
|
||
|
index objects.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>*USER</em></td>
|
||
|
<td align="left" valign="top">Attempts to create the user index object into the
|
||
|
user domain. This is not always possible. If the library you are creating the
|
||
|
user index into does not appear in the QALWUSRDMN system value, the API cannot
|
||
|
create the user index 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 index. The destination library is the library you specified in the
|
||
|
qualified user index name parameter. The optional domain parameter is the
|
||
|
information specified in the domain parameter.</p>
|
||
|
|
||
|
<table border width="100%">
|
||
|
<!-- cols="25 25 25 25" -->
|
||
|
<tr>
|
||
|
<th align="left">QALWUSRDMN System Value</th>
|
||
|
<th align="left">Destination Library</th>
|
||
|
<th align="left">Optional Domain Parameter</th>
|
||
|
<th align="left">Domain of Created Object</th>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left">*ALL</td>
|
||
|
<td align="left">Any</td>
|
||
|
<td align="left">*DEFAULT</td>
|
||
|
<td align="left">User domain</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left">*ALL</td>
|
||
|
<td align="left">Any</td>
|
||
|
<td align="left">*SYSTEM</td>
|
||
|
<td align="left">System domain</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left">*ALL</td>
|
||
|
<td align="left">Any</td>
|
||
|
<td align="left">*USER</td>
|
||
|
<td align="left">User domain</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left">QTEMP</td>
|
||
|
<td align="left">QTEMP</td>
|
||
|
<td align="left">*DEFAULT</td>
|
||
|
<td align="left">User domain</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left">QTEMP</td>
|
||
|
<td align="left">QTEMP</td>
|
||
|
<td align="left">*SYSTEM</td>
|
||
|
<td align="left">System domain</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left">QTEMP</td>
|
||
|
<td align="left">QTEMP</td>
|
||
|
<td align="left">*USER</td>
|
||
|
<td align="left">User domain</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left">Does not contain library name</td>
|
||
|
<td align="left">Library name</td>
|
||
|
<td align="left">*DEFAULT</td>
|
||
|
<td align="left">System domain</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left">Does not contain library name</td>
|
||
|
<td align="left">Library name</td>
|
||
|
<td align="left">*SYSTEM</td>
|
||
|
<td align="left">System domain</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left">Does not contain library name</td>
|
||
|
<td align="left">Library name</td>
|
||
|
<td align="left">*USER</td>
|
||
|
<td align="left">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. Valid libraries are the special value *ALL or a list of one or more
|
||
|
library names.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<p>If your system is at security level 40 or greater, you must use APIs to
|
||
|
access system-domain user indexes using APIs. You cannot use MI instructions to
|
||
|
directly access system-domain user indexes.</p>
|
||
|
|
||
|
<p>You can use the Retrieve Object Description (QUSROBJD) API or the List
|
||
|
Object (QUSLOBJ) API to determine into which domain the user index object was
|
||
|
created.</p>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
|
||
|
<br>
|
||
|
|
||
|
|
||
|
<h3>Optional Parameter Group 3</h3>
|
||
|
|
||
|
<dl>
|
||
|
<dt><strong>Usage tracking</strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(1)
|
||
|
|
||
|
<p>The usage tracking state. Usage tracking provides machine checkpoints to
|
||
|
improve availability of user indexes. If a user index is found to be a state of
|
||
|
partial change, it will be marked as damaged. The valid 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 track usage state. 0 is the default
|
||
|
value.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>1</em></td>
|
||
|
<td align="left" valign="top">Track usage state.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
|
||
|
<br>
|
||
|
|
||
|
|
||
|
<h3>Optional Parameter Group 4</h3>
|
||
|
|
||
|
<dl>
|
||
|
<dt><strong>Index size option</strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(1)
|
||
|
|
||
|
<p>The maximum size of the user index. The valid values are:</p>
|
||
|
|
||
|
<table cellpadding="5">
|
||
|
<!-- cols="5 95" -->
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>0</em></td>
|
||
|
<td align="left" valign="top">The maximum size of the user index is 4
|
||
|
gigabytes.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>1</em></td>
|
||
|
<td align="left" valign="top">The maximum size of the user index is 1
|
||
|
terabyte.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
|
||
|
<br>
|
||
|
|
||
|
|
||
|
<h3>Dependencies between Parameters</h3>
|
||
|
|
||
|
<p>Some of the parameters are interdependent and are shown in the following
|
||
|
table:</p>
|
||
|
|
||
|
<table border width="100%">
|
||
|
<!-- cols="25 25 25 25" -->
|
||
|
<tr>
|
||
|
<th align="left">Entry Length Attribute</th>
|
||
|
<th align="left">Entry Length (n)</th>
|
||
|
<th align="left">Key Insertion</th>
|
||
|
<th align="left">Key Length (x)</th>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left">Fixed</td>
|
||
|
<td align="left">1 <= n <= 2000</td>
|
||
|
<td align="left">No</td>
|
||
|
<td align="left">0</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left">Fixed</td>
|
||
|
<td align="left">1 <= n <= 2000</td>
|
||
|
<td align="left">Yes</td>
|
||
|
<td align="left">1 <= x <= n</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top" colspan="4"><strong>Note:</strong> For the
|
||
|
following entry lengths:
|
||
|
|
||
|
<ul>
|
||
|
<li>0 signifies a maximum entry length of 120.</li>
|
||
|
|
||
|
<li>-1 signifies a maximum entry length of 2000.</li>
|
||
|
</ul>
|
||
|
</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left">Variable</td>
|
||
|
<td align="left">0, -1</td>
|
||
|
<td align="left">No</td>
|
||
|
<td align="left">0</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left">Variable</td>
|
||
|
<td align="left">0</td>
|
||
|
<td align="left">Yes</td>
|
||
|
<td align="left">1 <= x <= 120</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left">Variable</td>
|
||
|
<td align="left">-1</td>
|
||
|
<td align="left">Yes</td>
|
||
|
<td align="left">1 <= x <= 2000</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
<br>
|
||
|
|
||
|
|
||
|
<h3>Error Messages</h3>
|
||
|
|
||
|
<table cellpadding="5">
|
||
|
<!-- cols="15 85" -->
|
||
|
<tr>
|
||
|
<th align="left" valign="top" nowrap>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 &1 in &2 type
|
||
|
*&3.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF2144 E</td>
|
||
|
<td align="left" valign="top">Not authorized to &1 in &2 type
|
||
|
*&3.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF2283 E</td>
|
||
|
<td align="left" valign="top">Authorization list &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 &1
|
||
|
API.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF3C0A E</td>
|
||
|
<td align="left" valign="top">Value &1 for entry length parameter is not
|
||
|
valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF3C0B E</td>
|
||
|
<td align="left" valign="top">Value &1 for immediate update parameter is
|
||
|
not valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF3C0C E</td>
|
||
|
<td align="left" valign="top">Value &1 for key length parameter is not
|
||
|
valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF3C0D E</td>
|
||
|
<td align="left" valign="top">Value &1 for key insertion parameter is not
|
||
|
valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF3C0E E</td>
|
||
|
<td align="left" valign="top">Value &1 for the optimization parameter is
|
||
|
not valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF3C03 E</td>
|
||
|
<td align="left" valign="top">User index &2 not created.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPD3C01 D</td>
|
||
|
<td align="left" valign="top">Object name &1 is not valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPD3C02 D</td>
|
||
|
<td align="left" valign="top">Value &1 for entry length attribute parameter
|
||
|
is not valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPD3C03 D</td>
|
||
|
<td align="left" valign="top">Extended attribute &1 is not valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPD3C05 D</td>
|
||
|
<td align="left" valign="top">Value &1 for authority parameter is not
|
||
|
valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPD3C0A D</td>
|
||
|
<td align="left" valign="top">Value &1 for entry length parameter is not
|
||
|
valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPD3C0B D</td>
|
||
|
<td align="left" valign="top">Value &1 for immediate update parameter is
|
||
|
not valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPD3C0C D</td>
|
||
|
<td align="left" valign="top">Value &1 for key length parameter is not
|
||
|
valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPD3C0D D</td>
|
||
|
<td align="left" valign="top">Value &1 for key insertion parameter is not
|
||
|
valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPD3C0E D</td>
|
||
|
<td align="left" valign="top">Value &1 for the optimization parameter is
|
||
|
not valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF3C2A E</td>
|
||
|
<td align="left" valign="top">Value &1 for entry length attribute parameter
|
||
|
is not valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF3C2B E</td>
|
||
|
<td align="left" valign="top">Extended attribute &1 is not valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF3C2D E</td>
|
||
|
<td align="left" valign="top">Value &1 for authority parameter is not
|
||
|
valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF3C29 E</td>
|
||
|
<td align="left" valign="top">Object name &1 is not valid.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF3C34 E</td>
|
||
|
<td align="left" valign="top">Value &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, &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 &1 not valid for domain parameter.</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">CPF3C93 E</td>
|
||
|
<td align="left" valign="top">Value &1 not valid for usage tracking
|
||
|
parameter.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF3C95 E</td>
|
||
|
<td align="left" valign="top">Value &1 not valid for index size option
|
||
|
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 &1 not found.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top">CPF9820 E</td>
|
||
|
<td align="left" valign="top">Not authorized to use library &1.</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">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 &2 type *&5 already exists in
|
||
|
library &3.</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: V1R3
|
||
|
|
||
|
<hr>
|
||
|
<table cellpadding="2" cellspacing="2" align="center">
|
||
|
<tr align="center">
|
||
|
<td valign="middle" align="center">
|
||
|
<a href="#Top_Of_Page">Top</a> |
|
||
|
<a href="obj1.htm">Object APIs</a> |
|
||
|
<a href="aplist.htm">APIs by category</a></td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
</body>
|
||
|
</html>
|