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

1773 lines
49 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>Retrieve Lock Information (QWCRLCKI) 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. -->
<!-- Change History: -->
<!-- YYMMDD USERID Change description -->
<!-- File created for V5R2 -->
<!-- File cleanup completed Dec 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 type="text/javascript" language="Javascript" src="../rzahg/synch.js">
</script>
<h2>Retrieve Lock Information (QWCRLCKI) 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%">Receiver variable</td>
<td align="left" valign="top" width="15%">Output</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 receiver variable</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">Format name</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(8)</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="left" valign="top">Object identification</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">5</td>
<td align="left" valign="top">Object identification format</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(8)</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="left" valign="top">Number of key fields to be returned</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">Key of fields to be returned</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Array(*) of Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="left" valign="top">Filters</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">9</td>
<td align="left" valign="top">Filter format</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(8)</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;Default Public Authority: *USE<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: Yes<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>The Retrieve Lock Information (QWCRLCKI) API generates a list of information
about lock holders of the item specified.</p>
<br>
<h3>Authorities and Locks</h3>
<dl>
<dt><em>Object Library Authority</em></dt>
<dd>*EXECUTE</dd>
<dt><em>Object Library ASP Device Authority</em></dt>
<dd>*EXECUTE</dd>
</dl>
<p><strong>Note:</strong> If the user does not have *EXECUTE authority to the
object's library and *EXECUTE authority to the object library's ASP device, the
user must have *JOBCTL authority or GUI thread control authority.</p>
<br>
<h3>Required Parameter Group</h3>
<dl>
<dt><strong>Receiver variable</strong></dt>
<dd>OUTPUT; CHAR(*)
<p>The receiver variable that receives the information requested. You can
specify the size of the area to be smaller than the format requested as long as
you specify the length parameter correctly. As a result, the API returns only
the data that the area can hold. For example, this may mean that the number of
lock information entries returned in the receiver variable doesn't match the
value in the number of lock information entries available.</p>
</dd>
<dt><strong>Length of receiver variable</strong></dt>
<dd>INPUT; BINARY(4)
<p>The length of the receiver variable provided. The length of the receiver
variable parameter may be specified up to the size of the receiver variable
specified in the user program. If the length of the receiver variable specified
is larger then the allocated size of the receiver variable specified in the
user program, the results are not predictable. The minimum length is 8
bytes.</p>
</dd>
<dt><strong>Format name</strong></dt>
<dd>INPUT; CHAR(8)
<p>The name of the format used to retrieve lock information. You can specify
this format:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>LCKI0100</em></td>
<td align="left" valign="top">Lock Information Format. See <a href="#LCKI0100">
LCKI0100 Format</a> for more information.</td>
</tr>
</table>
<br>
</dd>
<dt><strong>Object identification</strong></dt>
<dd>INPUT; CHAR(*)
<p>The information that is used to identify the entity that may be locked. See
<a href="#FmtObjId">Format of Object Identification</a> for more
information.</p>
</dd>
<dt><strong>Object identification format</strong></dt>
<dd>INPUT; CHAR(8)
<p>The format of the entity identification information. Possible format names
are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>LOBJ0100</em></td>
<td align="left" valign="top">Object name. See <a href="#LOBJ0100">LOBJ0100
Format</a> for more information on this format.</td>
</tr>
<tr>
<td align="left" valign="top"><em>LOBJ0200</em></td>
<td align="left" valign="top">Object lock handle. See <a href="#LOBJ0200">
LOBJ0200 Format</a> for more information on this format.</td>
</tr>
</table>
<br>
</dd>
<dt><strong>Number of key fields to be returned</strong></dt>
<dd>INPUT; BINARY(4)
<p>The number of key fields to be returned in the LCKI0100 format. If the lock
holder type returned is a lock space then the values returned in the key fields
will be blank or zero.</p>
</dd>
<dt><strong>Key of fields to be returned.</strong></dt>
<dd>INPUT; ARRAY(*) of BINARY(4)
<p>The list of fields returned in the LCKI0100 format. For a list of valid
fields, see <a href="#ValidKeys">Valid Keys</a>.</p>
</dd>
<dt><strong>Filters</strong></dt>
<dd>INPUT;CHAR(*)
<p>Filters used for the lock information that is returned. See the <a href=
"#FilterFormat">Filter Format</a> for further information.</p>
</dd>
<dt><strong>Filter format</strong></dt>
<dd>INPUT; CHAR(8)
<p>The format of the lock filter used on the returned data. The possible format
name is:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>LKFL0100</em></td>
<td align="left" valign="top">See <a href="#LKFL0100">LKFL0100 Format</a> for
details on the filters contained in this format.</td>
</tr>
</table>
<br>
</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><a name="FmtObjId">Format of Object Identification</a></h3>
<p>The formats for the object identification are specified.</p>
<br>
<h3><a name="LOBJ0100">LOBJ0100 Format</a></h3>
<p>An external object is specified in this format. See the field descriptions
for restrictions that may exist.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Object identification size</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object name specified</td>
</tr>
<tr>
<td align="center" valign="top">14</td>
<td align="center" valign="top">E</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object library name specified</td>
</tr>
<tr>
<td align="center" valign="top">24</td>
<td align="center" valign="top">18</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object library ASP name specified</td>
</tr>
<tr>
<td align="center" valign="top">34</td>
<td align="center" valign="top">22</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object type specified</td>
</tr>
<tr>
<td align="center" valign="top">44</td>
<td align="center" valign="top">2C</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Member name</td>
</tr>
<tr>
<td align="center" valign="top">54</td>
<td align="center" valign="top">36</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">56</td>
<td align="center" valign="top">38</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Record lock indicator</td>
</tr>
<tr>
<td align="center" valign="top">60</td>
<td align="center" valign="top">3C</td>
<td align="left" valign="top">UNSIGNED BINARY(4)</td>
<td align="left" valign="top">Relative record number</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</h3>
<p><strong>Member name.</strong> Lock information is retrieved on the specified
member of a database file. This is valid only when a database file has been
specified for object parameters. For other than database files, use *NONE.
Special values used are:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>*NONE</em></td>
<td align="left" valign="top">No member locks are retrieved, but file level
locks are retrieved. If the qualified object name is not a database file, use
this value.</td>
</tr>
</table>
<p><strong>Object identification size.</strong> The amount of data provided for
the LOBJ0100 format. This field must be set to 64.</p>
<p><strong>Object library ASP name specified.</strong> The name of the
auxiliary storage pool (ASP) device that contains the object's library. This
parameter must be * if the library portion of the qualified object name is
*CURLIB or *LIBL. Special values used are:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top">*</td>
<td align="left" valign="top">The current thread's library name space will be
searched.</td>
</tr>
<tr>
<td align="left" valign="top">*SYSBAS</td>
<td align="left" valign="top">The system ASP and defined basic user ASPs will
be searched.</td>
</tr>
</table>
<p><strong>Object library name specified.</strong> The name of the library
where the object is located. 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 current library is used to locate the object.
If there is no current library, QGPL (general purpose library) is used.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*LIBL</em></td>
<td align="left" valign="top">The library list is used to locate the
object.</td>
</tr>
</table>
<p><strong>Object name specified.</strong> The name of the external i5/OS
object whose lock information entries are to be placed in the list.</p>
<p><strong>Object type specified.</strong> The type of i5/OS object. For a
list of all the available external i5/OS object types, see the
<a href="../rbam6/rbam6clmain.htm">Control Language (CL)</a> topic.</p>
<p><strong>Record lock indicator.</strong> The indicator that controls the
retrieval of record locks that may exist if the object specified is a file and
member. If the object specified is not a database file and member or the
special value of <em>*ALL</em> is specified for member, then the value 0 must
be used for this field. One of the following values are required for this
field.</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">No record lock information is retrieved.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">The record lock information in the specified file
and member will be returned.</td>
</tr>
</table>
<p><strong>Relative record number.</strong> The record number in the specified
database file and member for which lock information is to be returned. If the
object specified is not a database file and member, the value 0 must be used
for this field. The following special value is allowed:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">Record lock information for all records in the
member should be returned.</td>
</tr>
</table>
<p><strong>Reserved.</strong> This field must be set to hexadecimal zeros.</p>
<br>
<h3><a name="LOBJ0200">LOBJ0200 Format</a></h3>
<p>This format is used to find locks where a handle was passed that has been
returned in a previous lock call to the Retrieve Job Locks <a href=
"qwcrjblk.htm">(QWCRJBLK)</a> API. This call must have been made in the same
thread for the handle to be valid. The following fields are used if LOBJ0200
input format is specified.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Object handle size</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(64)</td>
<td align="left" valign="top">Object lock handle</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</h3>
<p><strong>Object lock handle.</strong> A value that identifies the object that
is stored from a previous API call. The handle is a temporary value. A storage
limitation will allow a thread to create up to 1 million valid handles. Once
the storage limit has been reached the oldest handle information will be
overwritten. This can cause a handle to no longer be valid.</p>
<p><strong>Object identification size.</strong> The amount of data provided for
the LOBJ0200 format. This field must be set to 68.</p>
<br>
<h3><a name="FilterFormat">Filter Format</a></h3>
<p>The format of the lock filter used on the returned lock information.</p>
<br>
<h3><a name="LKFL0100">LKFL0100</a> Format</h3>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Filter size</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Filter lock state</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Filter lock scope</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Filter lock status</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Filter lock holder type</td>
</tr>
<tr>
<td align="center" valign="top">17</td>
<td align="center" valign="top">11</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Filter member lock type</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</h3>
<p><strong>Filter lock holder type.</strong> Filters information that is
returned so it contains only information about a type of lock holder.</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">Do not filter on holder type.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Return only locks with a holder type of job or
thread.</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">Return only locks with a holder type of lock
space.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Default</em></td>
<td align="left" valign="top">Do not filter on holder type.</td>
</tr>
</table>
<p><strong>Filter lock scope.</strong> Filters information that is returned so
it contains only information about locks that have a certain lock scope.</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">Do not filter on lock scope.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Return only the job scope locks.</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">Return only the thread scope locks.</td>
</tr>
<tr>
<td align="left" valign="top"><em>3</em></td>
<td align="left" valign="top">Return only the lock space scope locks.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Default</em></td>
<td align="left" valign="top">Do not filter on lock scope.</td>
</tr>
</table>
<p><strong>Filter lock state.</strong> Filters information that is returned so
it contains only information about locks that have a certain lock state.</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">Do not filter on lock state.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Return only the shared locks.</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">Return only the exclusive locks.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Default</em></td>
<td align="left" valign="top">Do not filter on lock state.</td>
</tr>
</table>
<p><strong>Filter lock status.</strong> Filters information that is returned so
it contains only information about locks that have a certain lock status.</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">Do not filter on lock status.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Return only locks with a status of held.</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">Return only locks with a status of waiting.</td>
</tr>
<tr>
<td align="left" valign="top"><em>3</em></td>
<td align="left" valign="top">Return only locks with a status of
requested.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Default</em></td>
<td align="left" valign="top">Do not filter on lock status.</td>
</tr>
</table>
<p><strong>Filter member lock type.</strong> Filters information that is
returned so it contains only information about locks that have a certain member
lock type.</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">Do not filter on member lock type.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Return only locks with member lock type of
member.</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">Return only locks with member lock type of
data.</td>
</tr>
<tr>
<td align="left" valign="top"><em>3</em></td>
<td align="left" valign="top">Return only locks with member lock type of access
path.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Default</em></td>
<td align="left" valign="top">Do not filter on member lock type.</td>
</tr>
</table>
<p><strong>Filter size.</strong> The size of the filter information passed.
Valid values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>4</em></td>
<td align="left" valign="top">No filtering will be performed.</td>
</tr>
<tr>
<td align="left" valign="top"><em>18</em></td>
<td align="left" valign="top">All filters will be required.</td>
</tr>
</table>
<br>
<br>
<h3>Lock Information Format</h3>
<p>The formats for the lock information.</p>
<br>
<h3><a name="LCKI0100">LCKI0100 Format</a></h3>
<h3><a name="HDRMBRLIPV">Header Section</a></h3>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Bytes returned</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Bytes available</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Type of entity</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">CHAR(30)</td>
<td align="left" valign="top">Extended object name returned</td>
</tr>
<tr>
<td align="center" valign="top">42</td>
<td align="center" valign="top">2A</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object library name returned</td>
</tr>
<tr>
<td align="center" valign="top">52</td>
<td align="center" valign="top">34</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object ASP name returned</td>
</tr>
<tr>
<td align="center" valign="top">62</td>
<td align="center" valign="top">3E</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object library ASP name returned</td>
</tr>
<tr>
<td align="center" valign="top">72</td>
<td align="center" valign="top">48</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Object ASP number returned</td>
</tr>
<tr>
<td align="center" valign="top">76</td>
<td align="center" valign="top">4C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Object library ASP number returned</td>
</tr>
<tr>
<td align="center" valign="top">80</td>
<td align="center" valign="top">50</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object type returned</td>
</tr>
<tr>
<td align="center" valign="top">90</td>
<td align="center" valign="top">5A</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Extended object attribute returned</td>
</tr>
<tr>
<td align="center" valign="top">100</td>
<td align="center" valign="top">64</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of lock information entries available</td>
</tr>
<tr>
<td align="center" valign="top">104</td>
<td align="center" valign="top">68</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to list of lock information entries</td>
</tr>
<tr>
<td align="center" valign="top">108</td>
<td align="center" valign="top">6C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of lock information entries returned</td>
</tr>
<tr>
<td align="center" valign="top">112</td>
<td align="center" valign="top">70</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of lock information entry</td>
</tr>
</table>
<br>
<br>
<h3>Lock Information Entry Format</h3>
<table border width="80%">
<!-- cols="10 10 20 60" -->
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="left" valign="top" rowspan="17" width="20%" colspan="2">These fields
repeat, in the order listed.</td>
<td align="left" valign="top" width="20%">CHAR(10)</td>
<td align="left" valign="top" width="60%">Lock state</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Lock status</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Lock scope</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(20)</td>
<td align="left" valign="top">Lock space identifier</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(64)</td>
<td align="left" valign="top">Lock request handle</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Lock count</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Member name returned</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Member lock type</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Relative record number</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Displacement from lock information to holder
identification</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Displacement from lock information to key
information</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of keys returned</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Holder type</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Holder identification</td>
</tr>
</table>
<br>
<br>
<h3>Key information format</h3>
<table border width="80%">
<!-- cols="10 10 20 60" -->
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" rowspan="7" colspan="2" width="20%">These
fields repeat, in the order listed, for each key selected.</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Length of field information
returned</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Key field</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Type of data</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of data</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Data</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDROBJFRE">Field Descriptions</a></h3>
<p><strong>Bytes available.</strong> The number of bytes of data available to
be returned. All available data is returned if enough space is provided.</p>
<p><strong>Bytes returned.</strong> The number of bytes of data returned. Only
complete lock information entries are returned.</p>
<p><strong>Data.</strong> The data returned for the key field.</p>
<p><strong>Displacement from lock information to holder
identification.</strong> The byte displacement from the start of the current
lock information entry to the holder identification.</p>
<p><strong>Displacement from lock information to key information.</strong> The
byte displacement from the start of the current lock information entry to the
key information requested.</p>
<p><strong>Extended object attribute returned.</strong> The extended attribute
of the object for which the list of locks is returned, such as a program or a
file type. Extended attributes further describe the object. For example, an
object type of *FILE may have an extended object attribute of PHY (physical
file), LGL (logical file), DSP (display file), SAV (save file), and so
forth.</p>
<p><strong>Extended object name returned.</strong> The name of the object for
which the lock information entries are placed in the list. This field will be
blank if the name is for an internal system object or an internal system object
space location, and the user does not have *JOBCTL special authority.</p>
<p><strong>Holder identification.</strong> This field contains information
about the lock holder. This can be either a qualified job name as described in
<a href="#Job">Job Format</a> specifier or a lock space identifier as described
in <a href="#Lock Space">Lock Space Format</a> specifier.</p>
<p><strong>Holder type.</strong> This value is set to indicate what type of
holder is holding or is waiting to hold a lock on the specified object.</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">The lock holder is a job or thread. See the <a
href="#Job">Job Format</a> for more information.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">The lock holder is a lock space. See the <a href=
"#Lock Space">Lock Space Format</a> for more information.</td>
</tr>
</table>
<p><strong>Key field.</strong> The field returned. See <a href="#ValidKeys">
Valid Keys</a> for the list of valid keys.</p>
<p><strong>Length of data.</strong> The length of the data returned for the
field.</p>
<p><strong>Length of field information returned.</strong> The total length of
information returned for this field. This value is used to increment to the
next field in the list.</p>
<p><strong>Length of</strong> <strong> lock information entry.</strong> The
length of a lock information entry. This value is used to increment to the next
entry.</p>
<p><strong>Lock count.</strong> The number of identical locks.</p>
<p><strong>Lock request handle.</strong> This value is used to identify a
handle to lock request process information. Using the Retrieve Lock Request
Information (QWCRLRQI) API and passing in this handle you can retrieve
additional information about the program that requested this lock. See <a href=
"qwcrlrqi.htm">QWCRLRQI API</a> for additional information</p>
<p><strong>Lock scope.</strong> The scope of the lock. The possible values
are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">Job scope</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Thread scope</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">Lock space scope</td>
</tr>
</table>
<p><strong>Lock space identifier.</strong> This field contains a value only
when the lock scope value is lock space scope and the lock is being waited on
by a thread. This field will then contain the lock space ID value for which the
lock is being waited on.</p>
<p><strong>Lock state.</strong> The lock condition for the lock request. The
possible values are:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>*SHRRD</em></td>
<td align="left" valign="top">Lock shared for read.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*SHRUPD</em></td>
<td align="left" valign="top">Lock shared for update.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*SHRNUP</em></td>
<td align="left" valign="top">Lock shared no update.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*EXCLRD</em></td>
<td align="left" valign="top">Lock exclusive allow read.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*EXCL</em></td>
<td align="left" valign="top">Lock exclusive no read.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*RECRD</em></td>
<td align="left" valign="top">Lock is a record shared read lock</td>
</tr>
<tr>
<td align="left" valign="top"><em>*RECUP</em></td>
<td align="left" valign="top">Lock is a record exclusive update lock.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*RECINT</em></td>
<td align="left" valign="top">Lock is a record shared internal lock</td>
</tr>
</table>
<p><strong>Lock status.</strong> The status of the lock. The lock may be a
single request or part of a multiple lock request for which some other object
specified in the request has been identified as unavailable. The possible
values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">The lock is currently held by the job or
thread.</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">The job or thread is waiting for the lock
(synchronous).</td>
</tr>
<tr>
<td align="left" valign="top"><em>3</em></td>
<td align="left" valign="top">The job or thread has a lock request outstanding
for the object (asynchronous).</td>
</tr>
</table>
<p><strong>Member lock type.</strong> If the lock is on a member then this
field indicates the type of member lock, otherwise it will be blank. The
possible values are:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>Blank</em></td>
<td align="left" valign="top">The object type is not a member</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Lock on the member control block</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">Lock on the actual data within the member</td>
</tr>
<tr>
<td align="left" valign="top"><em>3</em></td>
<td align="left" valign="top">Lock on the access path used to access a member's
data</td>
</tr>
</table>
<p><strong>Member name returned.</strong> The name of the member that lock
information is being returned for. Blanks will be returned if the object is not
a member of a database file.</p>
<p><strong>Number of keys returned.</strong> The number of keys that were
returned.</p>
<p><strong>Number of lock information entries available.</strong> The number of
lock information entries that were found.</p>
<p><strong>Number of lock information entries returned.</strong> The number of
lock information entries that are returned.</p>
<p><strong>Object ASP name returned.</strong> The name of the ASP in which the
object is located. The following special values may also be returned:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>*SYSBAS</em></td>
<td align="left" valign="top">The object is located in the system ASP or a
basic user ASP.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*N</em></td>
<td align="left" valign="top">The name of the ASP cannot be determined.</td>
</tr>
</table>
<p><strong>Object ASP number returned.</strong> The numeric identifier of the
ASP containing the locked object. The following values may be returned:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">The object is located in the system ASP.</td>
</tr>
<tr>
<td align="left" valign="top"><em>2-32</em></td>
<td align="left" valign="top">The object is located in a basic user ASP.</td>
</tr>
<tr>
<td align="left" valign="top" nowrap><em>33-255</em></td>
<td align="left" valign="top">The object is located in an independent ASP.</td>
</tr>
<tr>
<td align="left" valign="top"><em>-1</em></td>
<td align="left" valign="top">The ASP number cannot be determined.</td>
</tr>
</table>
<p><strong>Object library ASP name returned.</strong> The name of the ASP in
which the object's library is located. The following special values may also be
returned:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>*SYSBAS</em></td>
<td align="left" valign="top">The library is located in the system ASP or a
basic user ASP.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*N</em></td>
<td align="left" valign="top">The name of the ASP cannot be determined.</td>
</tr>
</table>
<p><strong>Object library ASP number returned.</strong> The numeric identifier
of the ASP device containing the object's library. The following special values
may also be returned:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">The library is located in the system ASP.</td>
</tr>
<tr>
<td align="left" valign="top">2-32</td>
<td align="left" valign="top">The library is located in a basic user ASP.</td>
</tr>
<tr>
<td align="left" valign="top">33-255</td>
<td align="left" valign="top">The library is located in an independent
ASP.</td>
</tr>
<tr>
<td align="left" valign="top"><em>-1</em></td>
<td align="left" valign="top">The ASP number cannot be determined.</td>
</tr>
</table>
<p><strong>Object library name returned.</strong> The name of the library that
contains the object whose lock information entries are placed in the list.</p>
<p><strong>Object type returned.</strong> The type of object for which locks
are retrieved. For a list of all the available external i5/OS object types,
see <a href="../rbam6/rbam6objecttypes.htm">External object types</a> in the
Control Language (CL) topic.
For a list of all internal system object types, see
<a href="../apiref/conObject.htm">Internal object types</a>.</p>
<p><strong>Offset to list of lock information entries.</strong> The offset in
bytes from the beginning of the receiver variable to the first entry.</p>
<p><strong>Relative record number.</strong> The relative record number for
which record lock information is being returned. If this is not a record lock
then this value will be zero.</p>
<p><strong>Reserved.</strong> An unused field.</p>
<p><strong>Type of data.</strong> The type of data returned.</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>C</em></td>
<td align="left" valign="top">The data is returned in character format.</td>
</tr>
<tr>
<td align="left" valign="top"><em>B</em></td>
<td align="left" valign="top">The data is returned in binary format.</td>
</tr>
</table>
<p><strong>Type of entity.</strong> This is a value that will identify the type
of entity for which the lock information is returned. The following values may
be returned:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">i5/OS external object</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">Member object</td>
</tr>
<tr>
<td align="left" valign="top"><em>3</em></td>
<td align="left" valign="top">i5/OS external object space location</td>
</tr>
<tr>
<td align="left" valign="top"><em>4</em></td>
<td align="left" valign="top">Internal system object</td>
</tr>
<tr>
<td align="left" valign="top"><em>5</em></td>
<td align="left" valign="top">Internal system object space location</td>
</tr>
</table>
<br>
<br>
<h3><a name="ValidKeys"><strong>Valid Keys</strong></a></h3>
<p>The following table contains a list of valid keys.</p>
<p>See <a href="WMAttrDesc.htm#HDRJOBRDE">Field Descriptions</a> in the Work
Management API Attributes Descriptions for the descriptions of the valid key
fields. All fields are scoped to the job unless specifically noted. See <a
href="WMAttrDesc.htm#HDRRJBSCPE">Considerations for Attribute Scope and Thread
Safety</a> in the Work Management API Attributes Descriptions for complete
information.</p>
<p><strong>Note:</strong> If the holder type is a lock space holder then
character fields will contain blanks and the binary fields will be zero.</p>
<table border width="80%">
<!-- cols="15 20 65" -->
<tr>
<th align="center" valign="bottom">Key</th>
<th align="left" valign="bottom">Type</th>
<th align="left" valign="bottom">Description</th>
</tr>
<tr>
<td align="center" valign="top">0101</td>
<td align="left" valign="top">CHAR(4)</td>
<td align="left" valign="top">Active job status</td>
</tr>
<tr>
<td align="center" valign="top">0103</td>
<td align="left" valign="top">CHAR(4)</td>
<td align="left" valign="top">Active job status for jobs ending</td>
</tr>
<tr>
<td align="center" valign="top">0502</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">End status</td>
</tr>
<tr>
<td align="center" valign="top">0601</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Function name</td>
</tr>
<tr>
<td align="center" valign="top">0602</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Function type</td>
</tr>
<tr>
<td align="center" valign="top">0902</td>
<td align="left" valign="top">CHAR(16)</td>
<td align="left" valign="top">Internal job identifier</td>
</tr>
<tr>
<td align="center" valign="top">1014</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Job end reason</td>
</tr>
<tr>
<td align="center" valign="top">1307</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Message reply</td>
</tr>
<tr>
<td align="center" valign="top">2010</td>
<td align="left" valign="top">CHAR(4)</td>
<td align="left" valign="top">Thread status</td>
</tr>
</table>
<br>
<br>
<h3>Holder ID</h3>
<p>This field contains an identifier for the job or lock space that is holding
or waiting to hold a lock on the specified object or space location.</p>
<br>
<h3><a name="Job">Job Format</a></h3>
<p>For a job, the returned data in this field will be in this format.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Holder identification size</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Job name</td>
</tr>
<tr>
<td align="center" valign="top">18</td>
<td align="center" valign="top">12</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">User name</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</td>
<td align="left" valign="top">CHAR(6)</td>
<td align="left" valign="top">Job number</td>
</tr>
<tr>
<td align="center" valign="top">34</td>
<td align="center" valign="top">22</td>
<td align="left" valign="top">CHAR(8)</td>
<td align="left" valign="top">Thread identifier</td>
</tr>
<tr>
<td align="center" valign="top">42</td>
<td align="center" valign="top">2A</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">44</td>
<td align="center" valign="top">2C</td>
<td align="left" valign="top">UNSIGNED BINARY(4)</td>
<td align="left" valign="top">Thread handle</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</h3>
<p><strong>Holder identification size.</strong> The size of the holder
identification.</p>
<!-- TRNOTE Please do not translate the following use of the word MACHINE. -->
<!-- TRNOTE It is from a referenced document and must remain in -->
<!-- TRNOTE its original form. -->
<p><strong>Job name.</strong> The simple job name of the job that issued the
lock request. If the job name is MACHINE and the job user name entry is blank,
the lock is held by an internal machine process.</p>
<p><strong>Job number.</strong> The system assigned job number of the job that
issued the lock request. This value will be blank if the job name is MACHINE
and the user name entry is blank.</p>
<p><strong>Thread handle.</strong> A value which addresses a particular thread
within a job holding a thread scope lock or the thread waiting for a lock,
otherwise this is zero. While the thread identifier uniquely identifies the
thread within the job, the thread handle can improve performance when
referencing the thread.</p>
<p><strong>Thread identifier.</strong> A value which uniquely identifies a
thread within a job holding a thread scope lock or the thread waiting for a
lock, otherwise this is zero.</p>
<p><strong>Reserved.</strong> This field will be blank.</p>
<p><strong>User name.</strong> The user name under which the job that issued
the lock request is started. If the job name is MACHINE and the lock is held by
an internal machine process then this field will be blank.</p>
<br>
<h3><a name="Lock Space">Lock Space Format</a></h3>
<p>For a lock space the returned data in this field will be in this format.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Holder identification size</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(20)</td>
<td align="left" valign="top">Holder lock space identifier</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</h3>
<p><strong>Holder identification size.</strong> The size of the holder
identification.</p>
<p><strong>Holder lock space identifier.</strong> The identifier of the lock
space that holds a lock.</p>
<p><strong>Reserved.</strong> A blank field.</p>
<br>
<h3>Error Messages</h3>
<table width="100%" 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">CPF0951 E</td>
<td align="left" valign="top">QSYS only valid library for object type
&amp;2.</td>
</tr>
<tr>
<td align="left" valign="top">CPF18C2 E</td>
<td align="left" valign="top">Value for handle has expired.</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">CPF3C21 E</td>
<td align="left" valign="top">Format name &amp;1 is not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C24 E</td>
<td align="left" valign="top">Length of the receiver variable is not
valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C31 E</td>
<td align="left" valign="top">Object type &amp;1 is not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C3C E</td>
<td align="left" valign="top">Value for parameter &amp;1 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">CPF3CF2 E</td>
<td align="left" valign="top">Error(s) occurred while running API &amp;1.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9801 E</td>
<td align="left" valign="top">Object &amp;1 type &amp;3 not found in library
&amp;2.</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: V5R2
<hr>
<center>
<table cellpadding="2" cellspacing="2">
<tr align="center">
<td valign="middle" align="center"><a href="#Top">Top</a> | <a href="wm1.htm">
Work Management APIs</a> | <a href="aplist.htm">APIs by category</a></td>
</tr>
</table>
</center>
</body>
</html>