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

1981 lines
57 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 Job Locks (QWCRJBLK) 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. -->
<!-- Created for V5R1 -->
<!-- Change History: -->
<!-- YYMMDD USERID Change description -->
<!-- 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 Job Locks (QWCRJBLK) 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="20%">Output</td>
<td align="left" valign="top" width="20%">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 of receiver information</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">Job or thread identification information</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">Format of job or thread identification
information</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">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:<br>
<!-- iddvc RMBR -->
<br>
<table width="100%">
<tr>
<td align="center" valign="top" width="10%">7</td>
<td align="left" valign="top" width="50%">Lock filters</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">Format of lock filters</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(8)</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 Job Locks
(QWCRJBLK) API generates a list of objects that have been locked or have lower
level locks by the job or thread that is specified in the job or thread
identification information input parameter.</p>
<br>
<h3>Authorities and Locks</h3>
<dl>
<dt><em>Job Authority</em></dt>
<dd>The API must be called from within the job for which the information is
being retrieved, or the caller of the API must be running under a user profile
that is the same as the job user identity of the job for which the information
is being retrieved. Otherwise, the caller of the API must be running under a
user profile that has job control (*JOBCTL) special authority.</dd>
</dl>
<p>The <strong>job user identity</strong> is the name of the user profile by
which a job is known to other jobs. It is described in more detail in the
<a href="../rzaks/rzaks1.htm">Work Management</a> topic.</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
locked object entries available in the receiver variable doesn't match the
value in the number of locked object entries returned.</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 of receiver information</strong></dt>
<dd>INPUT; CHAR(8)
<p>The format of the information returned in the receiver variable. The
possible format names are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>JBLK0100</em></td>
<td align="left" valign="top">Object level lock format. See <a href=
"#JBLK0100">JBLK0100 Format</a> for details on the list of objects that this
job or thread has locked.<br>
<br>
</td>
</tr>
<tr>
<td align="left" valign="top"><em>JBLK0200</em></td>
<td align="left" valign="top">All object lock format. See <a href="#JBLK0200">
JBLK0200 Format</a> for details on the list of objects and members that this
job or thread has locked. </td>
</tr>
</table>
<br>
</dd>
<dt><strong>Job or thread identification information</strong></dt>
<dd>INPUT; CHAR(*)
<p>The information that is used to identify the job or thread for which the job
lock information is to be returned. See <a href="#FMTJID">Format of job or
thread identification information</a> for details.</p>
</dd>
<dt><strong>Format of job or thread identification information</strong></dt>
<dd>INPUT; CHAR(8)</dd>
<dd>
<p>The format of the job or thread identification information. The possible
format names are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>JIDF0100</em></td>
<td align="left" valign="top">This format is used to retrieve the locks that a
job and threads are holding or waiting to hold. See <a href="#JIDF0100">JIDF0100 Format</a> for details on the job or thread identification
information.<br>
<br>
</td>
</tr>
<tr>
<td align="left" valign="top"><em>JIDF0200</em></td>
<td align="left" valign="top">This format is used to retrieve the locks that a
specific thread is holding or waiting to hold. See <a href="#HDRJIDF0200">JIDF0200 Format</a> for details on the job or thread identification information.</td>
</tr>
</table>
</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>.<br>
</p>
</dd>
</dl>
<br>
<h3><strong>Optional Parameter
Group</strong></h3>
<dl>
<dt><strong>Lock filters</strong></dt>
<dd>INPUT;CHAR(*)
<p>Filters used for the lock information that is returned. See the <a href=
"#Lockfilterfmt">Lock filter format</a> for further information.</p>
</dd>
<dt><strong>Format of lock filter</strong>s</dt>
<dd>INPUT; CHAR(8)
<p>The format of the lock filters used on the returned data. The possible
format name is:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>JBFL0100</em></td>
<td align="left" valign="top">Lock filter format. See <a href="#JBFL0100">
JBFL0100 Format</a> for details on the filters contained in this format.<br>
<br>
</td>
</tr>
</table>
</dd>
</dl>
<h3><a name="JBLK0100">JBLK0100 Format</a></h3>
<p>This format is used to return only i5/OS external objects that are
locked.</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%">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">Number of locked object entries available</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">Offset to list of locked objects</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of locked object entries returned</td>
</tr>
<tr>
<td align="center" valign="top">20</td>
<td align="center" valign="top">14</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of locked object entry</td>
</tr>
<tr>
<td align="center" valign="top">24</td>
<td align="center" valign="top">18</td>
<td align="left" valign="top">*</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td rowspan="18" colspan="2" align="left" valign="top">These fields repeat, in
the order listed.</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object name</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object library name</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object type</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Extended object attributes</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">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">BINARY(4)</td>
<td align="left" valign="top">Member locks</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(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(8)</td>
<td align="left" valign="top">Thread identifier</td>
</tr>
<tr>
<td align="left" valign="top">
BINARY(4) UNSIGNED</td>
<td align="left" valign="top">Thread handle</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(10)</td>
<td align="left" valign="top">Object ASP name</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object library ASP name</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Object ASP number</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Object library ASP number</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</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 entries are returned.</p>
<p><strong>Extended object attributes.</strong> The extended attributes of an
object. Extended attributes further describe the object. For example, an object
type of *PGM may have a value of RPG (RPG program) or CLP (CL program). This field will be blank if there is
no extended attribute associated with the object type.</p>
<p><strong>Length of locked object entry.</strong> The length of each locked
object entry.</p>
<p><strong>Lock count.</strong> The number of identical locks on this
entity.</p>
<p><strong>Lock scope.</strong>
The scope of the lock. The lock may be a job scope lock, a thread scope lock,
or a lock space scope lock. Lower level locks are returned and can occur when a
member of a file is locked, but the file itself is not locked. 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 is not locked, but there are locks on
lower level objects.</td>
</tr>
<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> When the lock scope field indicates
a lock space scope lock, this field contains the identifier of the lock space
for which the lock is being waited on. Otherwise, this field is blank.</p>
<p><strong>Lock state.</strong> The lock condition for the lock request. Lower
level locks are returned and can occur when a member of a file is locked but
the file itself is not locked. 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 is not locked but there are locks on
lower level objects.</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, read allowed.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*EXCL</em></td>
<td align="left" valign="top">Lock exclusive, no read allowed.</td>
</tr>
</table>
<p><strong>Lock status.</strong> The status of the lock request. Lower level
locks are returned and can occur when a member of a file is locked but the file
itself is not locked. 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">The object is not locked but there are locks on
lower level objects.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">The lock on this object currently is 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 to get the lock on
this object (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 this object (asynchronous). 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.</td>
</tr>
</table>
<p><strong>Member locks.</strong> The number of member locks for a database
file. If the object is not a database file, 0 is returned.</p>
<p><strong>Number of locked object entries available.</strong> The number of
locked object entries that are held by this job and specified threads.</p>
<p><strong>Number of locked object entries returned.</strong> The number of
locked object entries that are returned.</p>
<p><strong>Object ASP
name.</strong> The name of the auxiliary storage pool (ASP) containing the
object that is locked.</p>
<p>The following special values also may 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 device cannot be
determined.</td>
</tr>
</table>
<p><strong>Object ASP number.</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"><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.</strong> The name of the ASP containing the
library of the locked object.</p>
<p>The following specials 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's 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 device cannot be
determined.</td>
</tr>
</table>
<p><strong>Object library ASP number.</strong> The numeric identifier of the
ASP containing the library of 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 library 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 library is located in a basic user ASP.</td>
</tr>
<tr>
<td align="left" valign="top"><em>33-255</em></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.</strong> The name of the library containing the
locked object.</p>
<p>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 name of the library cannot be determined.</td>
</tr>
</table>
<p><strong>Object name.</strong> The name of the object that is locked.</p>
<p>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 name of the object cannot be determined.</td>
</tr>
</table>
<p><strong>Object type.</strong> The object type. 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>Offset to list of locked objects.</strong> The offset in bytes from
the beginning of the receiver variable to the first entry.</p>
<p><strong>Reserved.</strong> An unused field.</p>
<p><strong>Thread
handle.</strong> A value that 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 that uniquely identifies a
thread within a job holding a thread scope lock or the thread waiting for a
lock; otherwise, hexadecimal zeros are returned.</p>
<br>
<h3><a name="JBLK0200">JBLK0200
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%">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">Number of locked object entries available</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">Offset to list of locked objects</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of locked object entries returned</td>
</tr>
<tr>
<td align="center" valign="top">20</td>
<td align="center" valign="top">14</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of locked object entry</td>
</tr>
<tr>
<td align="center" valign="top">24</td>
<td align="center" valign="top">18</td>
<td align="left" valign="top">*</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="24" colspan="2">These fields repeat, in
the order listed.</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Type of entity</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(30)</td>
<td align="left" valign="top">Extended object name</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object library name</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object ASP name</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object library ASP name</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Object ASP number</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Object library ASP number</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object type</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Extended object attributes</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Member name</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(3)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Lock state</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">BINARY(4)</td>
<td align="left" valign="top">Member locks</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(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">BINARY(8) UNSIGNED</td>
<td align="left" valign="top">Space location lock offset</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(8)</td>
<td align="left" valign="top">Thread identifier</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4) UNSIGNED</td>
<td align="left" valign="top">Thread handle</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">Object lock handle</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(64)</td>
<td align="left" valign="top">Lock request handle</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</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 entries are returned.</p>
<p><strong>Extended object attributes.</strong> The extended attributes of an
object. Extended attributes further describe the object. For example, an object
type of *PGM may have a value of RPG (RPG program) or CLP (CL program). This
field will be blank if there is no extended attribute associated with the
object type.</p>
<p><strong>Extended object name.</strong> The name of the object that is
locked. 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. If the lock is on a database member then the object name
will be the name of the file that owns the member. If the member lock type is
member or access path, then the file that owns the member may be either a
physical file or a logical file. If the member lock type is data, then the file
that owns the member will be a physical file. If the lock is on a lock space
then the name will be the lock space id for that lock space.</p>
<p>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 name of the object cannot be determined.</td>
</tr>
</table>
<p><strong>Length of locked object entry.</strong> The length of each locked
object entry.</p>
<p><strong>Lock count.</strong> The number of identical locks on this
entity.</p>
<p><strong>Lock request handle</strong>. A handle to lock request 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. A value of hexadecimal zero is returned when additional information
cannot be retrieved. This value is a temporary value that can expire. See the
QWCRLRQI API for additional information.</p>
<p><strong>Lock scope.</strong> The scope of the lock. The lock may be a job
scope lock, a thread scope lock, or a lock space scope lock. Lower level locks
are returned and can occur when a member of a file is locked but the file
itself is not locked. 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 is not locked but there are locks on
lower level objects.</td>
</tr>
<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> When the lock scope field indicates
a lock space scope lock, this field will contain the identifier of the lock
space for which the lock is being waited on. Otherwise, this field is
blank.</p>
<p><strong>Lock state.</strong> The lock condition for the lock request. Lower
level locks are returned and can occur when a member of a file is locked but
the file itself is not locked. Possible other values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>Blank</em></td>
<td align="left" valign="top">The object is not locked, but there are locks on
lower level objects.</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, read allowed.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*EXCL</em></td>
<td align="left" valign="top">Lock exclusive, no read allowed.</td>
</tr>
</table>
<p><strong>Lock status.</strong> The status of the lock request. 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">The object is not locked but there are locks on
lower level objects.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">The lock on this object currently is 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 to get the lock on
this object (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 this object (asynchronous). 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.</td>
</tr>
</table>
<p><strong>Member locks.</strong> The number of member locks for a database
file. If the object is not a database file, 0 is returned.</p>
<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. 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>0</em></td>
<td align="left" valign="top">The lock is a member lock</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">The lock is a data lock.</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">The lock is an access path lock.</td>
</tr>
</table>
<p><strong>Member name.</strong> The name of the member that has a lock held or
waiting on it. If the type of entity is not a member object then this field is
blank. The following special value also can 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 name of the object cannot be determined.</td>
</tr>
</table>
<p><strong>Number of locked object entries available.</strong> The number of
locked object entries that are held by this job and specified threads.</p>
<p><strong>Number of locked object entries returned.</strong> The number of
locked object entries that are returned.</p>
<p><strong>Object ASP name.</strong> The name of the Auxiliary Storage Pool
(ASP) that contains the object that is locked.</p>
<p>The following special values 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>
<tr>
<td align="left" valign="top"><em>*N</em></td>
<td align="left" valign="top">The name of the ASP device cannot be
determined.</td>
</tr>
</table>
<p><strong>Object ASP number.</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"><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.</strong> The name of the ASP containing the
library of the locked object.</p>
<p>The following specials 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's 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 device cannot be
determined.</td>
</tr>
</table>
<p><strong>Object library ASP number.</strong> The numeric identifier of the
ASP containing the library of 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 library 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 library is located in a basic user ASP.</td>
</tr>
<tr>
<td align="left" valign="top"><em>33-255</em></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.</strong> The name of the library containing the
locked object. This field will be blank if the type of entity is an internal
system object or is an internal system object space location.</p>
<p>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 name of the library cannot be
determined.</td>
</tr>
</table>
<p><strong>Object lock handle.</strong> An identifier that can be input to
Retrieve Lock Information (QWCRLCKI) API to find additional information about
other holders of locks on this object. Hexadecimal zeros are returned when
additional information cannot be retrieved. The object lock handle is a
temporary value that can expire. See the QWCRLCKI API for additional
information.</p>
<p><strong>Object type.</strong> The object type. 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>.
Note that if
the lock is on a database member the object type will be *FILE.</p>
<p><strong>Offset to list of locked objects.</strong> The offset in bytes from
the beginning of the receiver variable to the first entry.</p>
<p><strong>Reserved.</strong> An unused field.</p>
<p><strong>Space location lock offset.</strong> A value in bytes to the
location in the space that is locked. For objects that are not space location
locks this value will be zero.</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, hexadecimal zeros are returned.</p>
<p><strong>Type of entity</strong>. This is a value that will identify the type
of entity for which the lock information is returned.</p>
<p>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">Internal system object</td>
</tr>
<tr>
<td align="left" valign="top"><em>4</em></td>
<td align="left" valign="top">i5/OS external object space location</td>
</tr>
<tr>
<td align="left" valign="top"><em>5</em></td>
<td align="left" valign="top">Internal system object space location</td>
</tr>
<tr>
<td align="left" valign="top"><em>6</em></td>
<td align="left" valign="top">Lock space object</td>
</tr>
<tr>
<td align="left" valign="top"><em>999</em></td>
<td align="left" valign="top">Unknown type</td>
</tr>
</table>
<br>
<br>
<h3><a name="Lockfilterfmt">Lock filter format</a></h3>
<p>The format of the lock filter used on the returned lock information.</p>
<br>
<h3><a name="JBFL0100">JBFL0100 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%">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">Include i5/OS external objects flag</td>
</tr>
<tr>
<td align="center">17</td>
<td align="center">11</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Include member objects flag</td>
</tr>
<tr>
<td align="center">18</td>
<td align="center">12</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Include internal system objects flag</td>
</tr>
<tr>
<td align="center">19</td>
<td align="center">13</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Include i5/OS external object space locations
flag</td>
</tr>
<tr>
<td align="center">20</td>
<td align="center">14</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Include internal system object space locations
flag</td>
</tr>
<tr>
<td align="center" valign="top">21</td>
<td align="center" valign="top">15</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Include lock space objects flag</td>
</tr>
<tr>
<td align="center" valign="top">22</td>
<td align="center" valign="top">16</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Include unknown entities flag</td>
</tr>
<tr>
<td align="center" valign="top">23</td>
<td align="center" valign="top">17</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Filter object name</td>
</tr>
<tr>
<td align="center" valign="top">33</td>
<td align="center" valign="top">21</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Filter object library name</td>
</tr>
<tr>
<td align="center" valign="top">43</td>
<td align="center" valign="top">2B</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Filter object library ASP name</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRJIDF0200"></a>Field Descriptions</h3>
<p><strong>Filter lock scope:</strong> This value is used to filter information
that is returned so that 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> This value is used to filter information
that is returned so that 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> This value is used to filter
information that is returned so that 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 object library ASP name:</strong> The name of the library's
Auxiliary Storage Pool (ASP) to be filtered on. Special value of *SYSBAS can be
specified. A blank field will cause no filtering to be done on this field. The
default is not to filter on this field.</p>
<p><strong>Filter object library name:</strong> This is the library name to be
filtered on. A blank field will cause no filtering to be done on this field.
The default is not to filter on this field.</p>
<p><strong>Filter object name</strong>: Only locks on the specified object will
be returned. In the case of database files, locks on members of the file may
also be returned. A blank field will cause no filtering to be done on this
field. The default is not to filter on this field.</p>
<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. The default
values will be used for each filter.</td>
</tr>
<tr>
<td align="left" valign="top"><em>53</em></td>
<td align="left" valign="top">All filters will be required</td>
</tr>
</table>
<p><strong>Include internal system objects flag:</strong> A value of 1 in this
field allows internal system object locks to be returned. A value of 0 will
cause these values to be excluded from the return data. Note this field is only
valid for the JBLK0200 format. The default is to exclude internal system
objects.</p>
<p><strong>Include internal system object space locations flag:</strong> A
value of 1 in this field allows internal system object space location locks to
be returned A value of 0 will cause these values to be excluded from the return
data. Note this field is only valid for the JBLK0200 format. The default is to
exclude internal system object space locations.</p>
<p><strong>Include lock space objects flag:</strong> A value of 1 in this field
will allow lock space objects locks to be returned. A value of 0 will cause
these values to be excluded from the return data. Note this field is only valid
for the JBLK0200 format. The default is to include lock space objects.</p>
<p><strong>Include member objects flag:</strong> A value of 1 in this field
will allow member objects locks to be returned. A value of 0 will cause these
values to be excluded from the return data. Note this field is only valid for
the JBLK0200 format. The default is to include member objects.</p>
<p><strong>Include i5/OS external objects flag:</strong> A value of 1 in this
field will allow i5/OS external object locks to be returned. A value of 0 will
cause these objects to be excluded from the return data. Note this field is
only valid for the JBLK0200 format. The default is to include i5/OS external
objects.</p>
<p><strong>Include i5/OS external object space locations flag:</strong> A
value of 1 in this field will allow i5/OS external space locations locks to be
returned. A value of 0 will cause these values to be excluded from the return
data. Note this field is only valid for the JBLK0200 format. The default is
exclude i5/OS external object space locations.</p>
<p><strong>Include Unknown types flag:</strong> A value of 1 in this field
allows locks that are of an unknown entity type to be returned. A value of 0
causes these values to be excluded from the return data. This field is valid
for the JBLK0200 format only. The default is exclude unknown types.</p>
<br>
<h3><a name="FMTJID">Format of job or thread identification
information</a></h3>
<p>The format of the information needed to identify the job or thread whose
locked object information is returned.</p>
<br>
<h3><a name="JIDF0100">JIDF0100 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">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(16)</td>
<td align="left" valign="top">Internal job 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">BINARY(4)</td>
<td align="left" valign="top">Thread indicator</td>
</tr>
<tr>
<td align="center" valign="top">48</td>
<td align="center" valign="top">30</td>
<td align="left" valign="top">CHAR(8)</td>
<td align="left" valign="top">Thread identifier</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</h3>
<p><strong>Internal job identifier.</strong> The internal identifier for the
job. The List Job (QUSLJOB) API returns this identifier. If you do not specify
*INT for the job name parameter, this parameter must contain blanks. With this
parameter, the system can locate the job more quickly than with the job
name.</p>
<p><strong>Job name.</strong> A specific job name or one of the following
special values:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>*</em></td>
<td align="left" valign="top">The job in which this program is running. The job
number and user name must contain blanks.<br>
<br>
</td>
</tr>
<tr>
<td align="left" valign="top"><em>*INT</em></td>
<td align="left" valign="top">The internal job identifier locates the job. The
job number and user name must contain blanks.</td>
</tr>
</table>
<p><strong>Job number.</strong> A specific job number, or blanks when the job
name specified is a special value.</p>
<p><strong>Reserved.</strong> An unused field. This field must contain
hexadecimal zeros.</p>
<p><strong>Thread identifier.</strong> A value that uniquely identifies a
thread within a job. A valid thread identifier must be specified.</p>
<p><strong>Thread indicator.</strong> The value that is used to specify the
thread within the job for which information is to be retrieved. The following
values are supported:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">Information should be retrieved for the thread
specified in the thread identifier field.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Information should be retrieved for the thread in
which this program is running currently.</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">Information should be retrieved for the initial
thread of the identified job.</td>
</tr>
<tr>
<td align="left" valign="top"><em>3</em></td>
<td align="left" valign="top">Information should be retrieved for the job and
its associated threads.</td>
</tr>
</table>
<p><strong>Note:</strong> For all supported values, the combination of the
internal job identifier, job name, job number, and user name fields must
identify the job containing the thread or threads.</p>
<p><strong>User name.</strong> A specific user profile name, or blanks when the
job name specified is a special value.</p>
<br>
<h3><a name=
"JIDF0200"></a>JIDF0200 Format.</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">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(16)</td>
<td align="left" valign="top">Internal job 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">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Thread handle</td>
</tr>
<tr>
<td align="center" valign="top">48</td>
<td align="center" valign="top">30</td>
<td align="left" valign="top">CHAR(8)</td>
<td align="left" valign="top">Thread identifier</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</h3>
<p><strong>Internal job identifier.</strong> The internal identifier for the
job. The List Job (QUSLJOB) API returns this identifier. If you do not specify
*INT for the job name parameter, this parameter must contain blanks. With this
parameter, the system can locate the job more quickly than with a job name.</p>
<p><strong>Job name.</strong> A specific job name or one of the following
special values:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>*</em></td>
<td align="left" valign="top">The job in which this program is running. The job
number and user name must contain blanks.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*INT</em></td>
<td align="left" valign="top">&nbsp;The internal job identifier locates the
job. The job number and user name must contain blanks.</td>
</tr>
</table>
<p><strong>Job number.</strong> A specific job number, or blanks when the job
name specified is a special value.</p>
<p><strong>Reserved.</strong> An unused field. This field must contain
hexadecimal zeros.</p>
<strong>Thread handle.</strong> An unused field on this API.
This field must contain hex zeros.
<p><strong>Thread identifier.</strong> A value that uniquely identifies a
thread within a job. A valid thread identifier must be specified.</p>
<p><strong>User name.</strong> A specific user profile name, or blanks when the
job name specified is a special value.</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" width="15%">CPF136A E</td>
<td align="left" valign="top" width="85%">Job &amp;3/&amp;2/&amp;1 not
active.</td>
</tr>
<tr>
<td align="left" valign="top">CPF18BF E</td>
<td align="left" valign="top">Thread &amp;1 not found.</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">CPF3C3B 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">CPF3C3C E</td>
<td align="left" valign="top">Value for parameter &amp;1 not valid.</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">CPF3C19 E</td>
<td align="left" valign="top">Error occurred with receiver variable
specified.</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">CPF3C36 E</td>
<td align="left" valign="top">Number of parameters, &amp;1, entered for this
API was not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C51 E</td>
<td align="left" valign="top">Internal job identifier not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C52 E</td>
<td align="left" valign="top">Internal job identifier no longer valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C53 E</td>
<td align="left" valign="top">Job &amp;3/&amp;2/&amp;1 not found.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C55 E</td>
<td align="left" valign="top">Job &amp;3/&amp;2/&amp;1 does not exist.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C57 E</td>
<td align="left" valign="top">Not authorized to retrieve job information.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C58 E</td>
<td align="left" valign="top">Job name specified is not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C59 E</td>
<td align="left" valign="top">Internal identifier is not blanks and job name is
not *INT.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C90 E</td>
<td align="left" valign="top">Literal value cannot be changed.</td>
</tr>
</table>
<br>
<hr>
API introduced: V5R1
<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>