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

1206 lines
34 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>List Object Locks (QWCLOBJL) 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. -->
<!-- WM SCRIPT A converted by B2H R4.1 (346) (CMS) by V2KEA304 -->
<!-- at RCHVMW2 on 17 Feb 1999 at 11:05:09 -->
<!-- Change History: -->
<!-- YYMMDD USERID Change description -->
<!-- File cleanup completed Nov 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>List Object Locks (QWCLOBJL) 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%">Qualified user space 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">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">3</td>
<td align="left" valign="top">Qualified object name</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(20)</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="left" valign="top">Object type</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(10)</td>
</tr>
<tr>
<td align="center" valign="top">5</td>
<td align="left" valign="top">Member name</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(10)</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="left" valign="top">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 1:<br>
<!-- iddvc RMBR -->
<br>
<table width="100%">
<tr>
<td align="center" valign="top" width="10%">7</td>
<td align="left" valign="top" width="50%">Path name</td>
<td align="left" valign="top" width="20%">Input</td>
<td align="left" valign="top" width="20%">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="left" valign="top">Path name length</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Binary(4)</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%">9</td>
<td align="left" valign="top" width="50%">Qualified object ASP name</td>
<td align="left" valign="top" width="20%">Input</td>
<td align="left" valign="top" width="20%">Char(10)</td>
</tr>
</table>
<br>
&nbsp;&nbsp;Default Public Authority: *USE<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: No<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>The List Object Locks (QWCLOBJL) API generates a list of lock information
about a specific object or database file member and places the list into the
specified user space. An object level or member level lock may be specified. If
it is a database file, you will get a lock on the member (if requested);
otherwise, the lock is on the object. This API provides information similar to
that provided by the Work with Object Lock (WRKOBJLCK) command.</p>
<br>
<h3>Authorities and Locks</h3>
<dl>
<dt><em>User Space Authority</em></dt>
<dd>*CHANGE</dd>
<dt><em>User Space Library Authority</em></dt>
<dd>*EXECUTE</dd>
<dt><em>User Space Lock</em></dt>
<dd>*EXCLRD</dd>
<dt><em>ASP device</em></dt>
<dd>*EXECUTE</dd>
<dt><em>Object library</em></dt>
<dd>*EXECUTE</dd>
</dl>
<p>A user with *JOBCTL special authority is not required to have *EXECUTE
authority to either the auxiliary storage pool (ASP) device or the library
containing the object.</p>
<p>If a path name is specified, *X authority is required for directories in the
path reqardless of any special authorities the user may have.</p>
<br>
<h3>Required Parameter Group</h3>
<dl>
<dt><strong>Qualified user space name</strong></dt>
<dd>INPUT; CHAR(20)
<p>The name of the existing user space that is to receive the created list. The
first 10 characters contain the user space name, and the second 10 characters
contain the name of the library where the user space 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 user
space. 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 user
space.</td>
</tr>
</table>
<br>
</dd>
<dt><strong>Format name</strong></dt>
<dd>INPUT; CHAR(8)
<p>The name of the format used to list object locks. You can specify this
format:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>OBJL0100</em></td>
<td align="left" valign="top">The content and format of the lock information
being returned. For more information, see <a href="#HDRMBRLIP3">OBJL0100
Format</a>.</td>
</tr>
</table>
<br>
</dd>
<dt><strong>Qualified object name</strong></dt>
<dd>INPUT; CHAR(20)
<p>The name of the object whose locks are to be placed in the list. The first
10 characters contain the object name, and the second 10 characters contain the
name of the library where the object is located.</p>
<p>If you want to use a path name instead of a qualified object name, use this
special value for the object name:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*OBJPATH</em></td>
<td align="left" valign="top">Use the optional parameters, path name and path
name length, to specify the object name. When this special value is specified,
the member name field must be the special value *NONE and the Object type field
must be blanks.</td>
</tr>
</table>
<p>You can use these special values for the library name:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*CURLIB</em></td>
<td align="left" valign="top">The 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>
<br>
</dd>
<dt><strong>Object type</strong></dt>
<dd>INPUT; CHAR(10)
<p>The object type of operating system object for which the list of locks is
returned. Specify the predefined value that identifies the object type. See the
<a href="../rbam6/clpro.htm">CL Programming</a> topic for more information on allowed object
types. If a path name has been specified, then this field must contain
blanks.</p>
</dd>
<dt><strong>Member name</strong></dt>
<dd>INPUT; CHAR(10)
<p>This parameter is valid only when a database file has been specified in the
qualified object name parameter. For other than database files, use *NONE.
Possible values are a specific name or a special value:</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. If a path name is being specified for the object name, use this
value.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*FIRST</em></td>
<td align="left" valign="top">The member locks for the first member in the
named file are retrieved.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*ALL</em></td>
<td align="left" valign="top">Member locks for all the members in the file are
retrieved.</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>Optional Parameter Group 1</h3>
<dl>
<dt><strong>Path name</strong></dt>
<dd>INPUT; CHAR(*)
<p>The path name of the object whose locks are to be placed in the list. Both
absolute and relative path names are allowed. The patterns ? and * are not
allowed. The home directory of the user is not resolved, thus a tilde (~) in
the first character position is not treated as the home directory. This
parameter is assumed to be represented in the coded character set identifier
(CCSID) currently in effect for the job. If the CCSID of the job is 65535, this
parameter is assumed to be represented in the default CCSID of the job. The
path name delimiter must be a slash (/). If a symbolic link is specified, the
link is not followed.</p>
</dd>
<dt><strong>Path name length</strong></dt>
<dd>INPUT; BINARY(4)
<p>The length of the path name, in bytes.</p>
</dd>
</dl>
<br>
<h3>Optional Parameter Group
2</h3>
<dl>
<dt><strong>Qualified object ASP name</strong></dt>
<dd>INPUT; CHAR(10)
<p>The name of the ASP device where the object's library is located. This
parameter must be * if the library portion of the qualified object name is
*CURLIB or *LIBL. It also must be * if the qualified object name is *OBJPATH.
If the object is a library and either an ASP device name or *SYSBAS is
specified, the library portion of the qualified object name must be QSYS. The
following special values may be specified:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>*</em></td>
<td align="left" valign="top">The ASPs that are currently part of the thread's
library name space will be searched to locate the object.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*SYSBAS</em></td>
<td align="left" valign="top">The system ASP and all basic ASPs will be
searched to locate the object.</td>
</tr>
</table>
</dd>
</dl>
<br>
<h3><a name="Header_99">Format of the Generated List</a></h3>
<p>The file member list consists of:</p>
<ul>
<li>A user area</li>
<li>A generic header</li>
<li>An input parameter section</li>
<li>A header section</li>
<li>A list data section</li>
</ul>
<p>For details about the user area and generic header, see <a href="../apiref/usf.htm">
User Space Format for List APIs</a>. For details about the remaining items, see
the following sections. For detailed descriptions of the fields in the list
returned, see <a href="#HDROBJFRE">Field Descriptions</a>.</p>
<p>When you retrieve list entry information from a user space, you must use the
entry size returned in the generic header. The size of each entry may be padded
at the end. If you do not use the entry size, the result may not be valid. For
examples of how to process lists, see API <a href="../apiref/apiexmp.htm">
Examples</a>.</p>
<br>
<h3><a name="HDROBJIP1">Input Parameter Section</a></h3>
<table border="1" 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%">CHAR(10)</td>
<td align="left" valign="top" width="60%">User space name specified</td>
</tr>
<tr>
<td align="center" valign="top">10</td>
<td align="center" valign="top">A</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">User space library name specified</td>
</tr>
<tr>
<td align="center" valign="top">20</td>
<td align="center" valign="top">14</td>
<td align="left" valign="top">CHAR(8)</td>
<td align="left" valign="top">Format name specified</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</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">38</td>
<td align="center" valign="top">26</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">48</td>
<td align="center" valign="top">30</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">58</td>
<td align="center" valign="top">3A</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Member name specified</td>
</tr>
<tr>
<td align="center" valign="top">68</td>
<td align="center" valign="top">44</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to path name specified</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">Length of path name specified</td>
</tr>
<tr>
<td align="center" valign="top">
76</td>
<td align="center" valign="top">4C</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">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Path name specified</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRMBRLIPV">Header Section</a></h3>
<table border="1" 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%">CHAR(10)</td>
<td align="left" valign="top" width="60%">User space name used</td>
</tr>
<tr>
<td align="center" valign="top">10</td>
<td align="center" valign="top">A</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">User space library name used</td>
</tr>
<tr>
<td align="center" valign="top">20</td>
<td align="center" valign="top">14</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object name used</td>
</tr>
<tr>
<td align="center" valign="top">30</td>
<td align="center" valign="top">1E</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object library name used</td>
</tr>
<tr>
<td align="center" valign="top">40</td>
<td align="center" valign="top">28</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">50</td>
<td align="center" valign="top">32</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">60</td>
<td align="center" valign="top">3C</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Shared file name</td>
</tr>
<tr>
<td align="center" valign="top">70</td>
<td align="center" valign="top">46</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Shared file library name</td>
</tr>
<tr>
<td align="center" valign="top">80</td>
<td align="center" valign="top">50</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to path name used</td>
</tr>
<tr>
<td align="center" valign="top">84</td>
<td align="center" valign="top">54</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of path name used</td>
</tr>
<tr>
<td align="center" valign="top">
88</td>
<td align="center" valign="top">58</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object ASP name used</td>
</tr>
<tr>
<td align="center" valign="top">98</td>
<td align="center" valign="top">62</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object library ASP name used</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Path name used</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRMBRLIP3">OBJL0100 Format</a></h3>
<table border="1" 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%">CHAR(10)</td>
<td align="left" valign="top" width="60%">Job name</td>
</tr>
<tr>
<td align="center" valign="top">10</td>
<td align="center" valign="top">A</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Job user name</td>
</tr>
<tr>
<td align="center" valign="top">20</td>
<td align="center" valign="top">14</td>
<td align="left" valign="top">CHAR(6)</td>
<td align="left" valign="top">Job number</td>
</tr>
<tr>
<td align="center" valign="top">26</td>
<td align="center" valign="top">1A</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Lock state</td>
</tr>
<tr>
<td align="center" valign="top">36</td>
<td align="center" valign="top">24</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Lock status</td>
</tr>
<tr>
<td align="center" valign="top">40</td>
<td align="center" valign="top">28</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Lock type</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(1)</td>
<td align="left" valign="top">Share</td>
</tr>
<tr>
<td align="center" valign="top">55</td>
<td align="center" valign="top">37</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Lock scope</td>
</tr>
<tr>
<td align="center" valign="top">56</td>
<td align="center" valign="top">38</td>
<td align="left" valign="top">CHAR(8)</td>
<td align="left" valign="top">Thread identifier</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDROBJFRE">Field Descriptions</a></h3>
<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>Format name specified.</strong> The name of the format used to list
object locks.</p>
<p><strong>Job name.</strong> The simple job name of the job that issued the
lock request. The following
special values also may be returned:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>MACHINE</em></td>
<td align="left" valign="top">The lock is held by an internal machine process.
If this value is returned, the job number and job user name will be blank.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*LCKSPC</em></td>
<td align="left" valign="top">The lock is attached to a lock space. If this
value is returned, the job number and job user name will be blank.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*N</em></td>
<td align="left" valign="top">The job name cannot be determined.</td>
</tr>
</table>
<p><strong>Job number.</strong> The system-assigned job number of the job that
issued the lock request. The
following special value also may be returned:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>*N</em></td>
<td align="left" valign="top">The job number cannot be determined.</td>
</tr>
</table>
<p><strong>Job user name.</strong> The user name under which the job that
issued the lock request is run. The user name is the same as the user profile
name and can come from several different sources depending on the type of job.
The following special value also
may be returned:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>*N</em></td>
<td align="left" valign="top">The job user name cannot be determined.</td>
</tr>
</table>
<p><strong>Length of path name specified.</strong> The length, in bytes, of the
path name of the object that is specified on the call to the API.</p>
<p><strong>Length of path name used.</strong> The length, in bytes, of the path
name of the object for which the locks are placed in the list.</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 state.</strong> The lock condition for the lock request. The
possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*NONE</em></td>
<td align="left" valign="top">No lock exists.</td>
</tr>
<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>
</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>Lock type.</strong> The lock type to be processed. 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">Lock on the object</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">Lock on the member control block</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>
<tr>
<td align="left" valign="top"><em>4</em></td>
<td align="left" valign="top">Lock on the actual data within the member</td>
</tr>
</table>
<p><strong>Member name.</strong> The name of the file member for which the lock
was requested. This field is blank if not applicable to object type.</p>
<p><strong>Member name specified.</strong> The member name of a database file
specified on the call to the API.</p>
<p><strong>Object ASP name
used.</strong> The name of the ASP device that contains the object for which
the locks are placed in the list. The following special value also may be
returned:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<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>
</table>
<p><strong>Object library ASP name specified.</strong> The name of the ASP
device that contains the object specified on the call to the API. The following
special values may also be returned:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*</em></td>
<td align="left" valign="top">The ASPs that are currently part of the thread's
library name space will be searched to locate the object.</td>
</tr>
<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>
</table>
<p><strong>Object library ASP name used.</strong> The name of the ASP device
that contains the library of the object for which locks are placed in the list.
The following special value may also be returned:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<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>
</table>
<p><strong>Object library name specified.</strong> The name of the library that
contains the object specified on the call to the API. This field is blank if a
path name was specified as the object name.</p>
<p><strong>Object library name used.</strong> The name of the library that
contains the object whose locks are placed in the list. This field is blank if
a path name was specified as the object name.</p>
<p><strong>Object name specified.</strong> The name of the object specified on
the call to the API. This field will contain the special value *OBJPATH if a
path name is specified.</p>
<p><strong>Object name used.</strong> The name of the object for which the
locks are placed in the list. This field will contain the special value
*OBJPATH if a path name is specified.</p>
<p><strong>Object type returned.</strong> The type of object for which locks
are retrieved. This field will contain blanks if a path name is specified.</p>
<p><strong>Object type specified.</strong> The type of object for which the
list of locks are requested. This field will contain blanks if a path name is
specified.</p>
<p><strong>Offset to path name specified.</strong> The offset to the path name
of the object that is specified on the call to the API.</p>
<p><strong>Offset to path name used.</strong> The offset to the path name of
the object for which the locks are placed in the list.</p>
<p><strong>Path name specified.</strong> The path name of the object that is
specified on the call to the API.</p>
<p><strong>Path name used.</strong> The actual path name of the object for
which the locks are placed in the list.</p>
<p><strong>Share.</strong> Whether shared file member locks are associated with
the file member.</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">The file is not shared, the file is a physical
file, or the field is not applicable to object type.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">The file is shared.</td>
</tr>
</table>
<p><strong>Shared file library name.</strong> The name of the library that
contains the shared file. This field is blank if not applicable to object type
or if there is no shared file. When this field has a value, it applies to all
entries in the list.</p>
<p><strong>Shared file name.</strong> The name of one shared file whose members
are locked. This field is blank if not applicable to object type or if there is
no shared file. When this field has a value, it applies to all entries in the
list.</p>
<p><strong>Thread identifier.</strong> The identifier of the thread that is
holding a thread-scoped lock or waiting for a lock. For locks that do not have a lock scope of thread scope,
the hexadecimal value 00000000 is returned.</p>
<p><strong>User space library name specified.</strong> The name of the library
that contains the user space specified in the call to the API.</p>
<p><strong>User space library name used.</strong> The name of the library that
contains the user space into which the generated list is put.</p>
<p><strong>User space name specified.</strong> The name of the user space
specified in the call to the API.</p>
<p><strong>User space name used.</strong> The user space used to return the
list of object locks.</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">CPFA0AB E</td>
<td align="left" valign="top">Object name not a directory.</td>
</tr>
<tr>
<td align="left" valign="top">CPFA0A3 E</td>
<td align="left" valign="top">Path name resolution causes looping.</td>
</tr>
<tr>
<td align="left" valign="top">CPFA0A7 E</td>
<td align="left" valign="top">Path name too long.</td>
</tr>
<tr>
<td align="left" valign="top">CPFA0A9 E</td>
<td align="left" valign="top">Object not found.</td>
</tr>
<tr>
<td align="left" valign="top">CPFA09C E</td>
<td align="left" valign="top">Not authorized to object.</td>
</tr>
<tr>
<td align="left" valign="top">CPF0935 E</td>
<td align="left" valign="top">Cannot use member name for object type
&amp;2.</td>
</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">CPF18A0 D</td>
<td align="left" valign="top">Object type field not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF18A1 D</td>
<td align="left" valign="top">Member name is not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF18A2 D</td>
<td align="left" valign="top">Path name parameters not specified.</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">CPF3141 E</td>
<td align="left" valign="top">Member &amp;1 not found.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3CAA E</td>
<td align="left" valign="top">List is too large for user space &amp;1.</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">CPF3C1B E</td>
<td align="left" valign="top">Object identifier not valid for lock type
&amp;1.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C1C E</td>
<td align="left" valign="top">Lock type &amp;1 not valid for file attribute
&amp;2.</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">CPF3C31 E</td>
<td align="left" valign="top">Object type &amp;1 is not valid.</td>
</tr>
<tr>
<td align="left" valign="top">
CPF3C3A E</td>
<td align="left" valign="top">Value for parameter &amp;2 for API &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">CPF9801 E</td>
<td align="left" valign="top">Object &amp;2 in library &amp;3 not found.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9803 E</td>
<td align="left" valign="top">Cannot allocate object &amp;2 in library
&amp;3.</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">CPF9811 E</td>
<td align="left" valign="top">Program &amp;1 in library &amp;2 not found.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9812 E</td>
<td align="left" valign="top">File &amp;1 in library &amp;2 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">CPF9825 E</td>
<td align="left" valign="top">Not authorized to device &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">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: V3R1
<hr>
<table align="center" cellpadding="2" cellspacing="2">
<tr align="center">
<td valign="middle" align="center"><a href="#Top_Of_Page">Top</a> | <a href=
"wm1.htm">Work Management APIs</a> | <a href="aplist.htm">APIs by
category</a></td>
</tr>
</table>
</body>
</html>