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

1342 lines
37 KiB
HTML
Raw Normal View History

2024-04-02 14:02:31 +00:00
<!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 Record Locks (QDBRRCDL) 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. -->
<!-- QDBRJBRL created by Mike Smith, 6/24/99 -->
<!-- Change History: -->
<!-- YYMMDD USERID Change description -->
<!--File Edited March 2001 -->
<!-- This file has undergone html cleanup on 1/8/02 by JET -->
<!--End Header Records -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body>
<a name="top_Of_Page"></a>
<!-- Java sync-link -->
<script language="Javascript" src="../rzahg/synch.js" type="text/javascript">
</script>
<h2>Retrieve Record Locks (QDBRRCDL) API</h2>
<div class="box" style="width: 85%;">
<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">Record 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">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">Relative record number</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Unsigned binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">7</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%">8</td>
<td align="left" valign="top" width="50%">Format of record identification information</td>
<td align="left" valign="top" width="20%">Input</td>
<td align="left" valign="top" width="20%">Char(8)</td>
</tr>
<tr>
<td align="center" valign="top">9</td>
<td align="left" valign="top">Lock filters</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">10</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: No<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>The Retrieve Record Locks
(QDBRRCDL) API lets you generate a list of jobs, threads and lock spaces that
are either waiting for or holding locks on one or more records. The Retrieve
Record Locks API places the list in the specified receiver variable. Lock
information is returned for records in local physical files only and file
overrides are not processed.
</p>
<br>
<h3>Authorities and Locks</h3>
<dl>
<dt><em>Object Authority</em></dt>
<dd>None</dd>
<dt><em>Object Library Authority</em></dt>
<dd>*EXECUTE</dd>
<dt><em>Object Library ASP Device Authority</em></dt>
<dd>*EXECUTE</dd>
<dt><em>File Lock</em></dt>
<dd>*SHRRD</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.</p>
<br>
<h3>Required Parameter Group</h3>
<dl>
<dt><strong>Receiver variable</strong></dt>
<dd>OUTPUT; CHAR(*)
<p>The variable that is to receive the list of record locks. The size (in
bytes) of this variable is specified in the length of receiver variable
parameter.</p>
<p>See <a href="#HDRRCVF">Format of receiver information</a> for details on the
format of the receiver information.</p>
</dd>
<dt><strong>Length of receiver variable</strong></dt>
<dd>INPUT; BINARY(4)
<p>The number of bytes that are provided in the Receiver variable parameter. At
least 16 bytes must be provided. If the size of the receiver variable provided
is less than the length of the list that is available, the list will be
truncated; this can be determined by examining the first two fields in the
receiver variable, the number of record locks returned, and the number of
record locks available. If the receiver variable length specified is greater
than the actual receiver variable, the results are unpredictable.</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 width="15%" valign="top"><em>RRCD0100</em></td>
<td width="85%" valign="top">Job record lock list. See <a href="#HDRRCVF1">
RRCD0100 Format</a> for details.</td>
</tr>
<tr>
<td valign="top">
<em>RRCD0200</em></td>
<td valign="top">Lock holder record lock list. See <a href="#HDRRCVF2">RRCD0200
Format</a> for details. </td>
</tr>
</table>
<br>
</dd>
<dt><strong>Record identification information</strong></dt>
<dd>INPUT; CHAR(*)
<p>The information that is to be used to identify the record or records for
which locks are to be retrieved. See <a href="#HDRRCDF">Format of record
identification information</a> for details.</p>
<p>If the Format of record
identification information parameter is omitted, format RRRC0100 is assumed.
See <a href="#HDRRCDF1">RRRC0100 Format</a> for details.</p>
</dd>
<dt><strong>Member name</strong></dt>
<dd>INPUT; CHAR(10)
<p>The name of the member in the specified file that is to be checked for
record locks. This value must be
blanks if RRRC0200 is specified for the format of record identification
information parameter, and in that case the member value must be specified as
part of the record identification information parameter. The following special value is
allowed:</p>
<table cellpadding="5">
<tr>
<td width="15%" valign="top"><em>*FIRST</em></td>
<td width="85%" valign="top">The first member of the specified file is
used.</td>
</tr>
</table>
<br>
</dd>
<dt><strong>Relative record number</strong></dt>
<dd>INPUT; UNSIGNED BINARY(4)
<p>The record number in the specified file and member for which lock
information is to returned. This
value must be 0 if RRRC0200 is specified for the format of record
identification information parameter, and in that case the relative record
number value must be specified as part of the record identification information
parameter. The following
special value is allowed:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">Record lock information for all records in the
member should be returned.</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</h3>
<dl>
<dt><strong>Format of record identification information</strong></dt>
<dd>INPUT; CHAR(8)
<p>The format of the record identification information. The possible format
names are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>RRRC0100</em></td>
<td align="left" valign="top">
This format is used to identify the file and library for which locks are to
be retrieved. See <a href="#HDRRCDF1">RRRC0100 Format</a> for details. This is
the default if this parameter is omitted.
</td>
</tr>
<tr>
<td align="left" valign="top"><em>RRRC0200</em></td>
<td align="left" valign="top">
This format is used to identify the records for which locks are to be
retrieved. See <a href="#HDRRCDF2">RRRC0200 Format</a> for details.
</td>
</tr>
</table>
<br>
</dd>
<dt><strong>Lock filters</strong></dt>
<dd>INPUT; CHAR(*)
<p>Filters used for the lock information that is returned. See <a href=
"#HDRLKFF">Format of lock filters</a> for further information. If this
parameter is omitted, the returned lock information is not filtered.</p>
</dd>
<dt><strong>Format of lock filters</strong></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>RRFL0100</em></td>
<td align="left" valign="top">Lock filter format. See <a href="#HDRLKFF1">RRFL0100 Format</a> for
details.
</td>
</tr>
</table>
<p>If this parameter is omitted, the returned lock information is not
filtered.</p>
</dd>
</dl>
<br>
<h3><a name="HDRRCVF">Format of Receiver Information</a></h3>
<p>The format of the information returned in the receiver variable.</p>
<br>
<h3><a name="HDRRCVF1">RRCD0100 Format</a></h3>
<p>The following information is returned for RRCD0100 format. When this format is used, only job and
thread scope locks are returned. Lock space scope locks are not returned.
Thread scope locks for all of the job's threads are returned. For detailed descriptions of the fields
in the table, see <a href="#FLDRCVF1">RRCD0100 Format Field
Descriptions</a>.</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%">Number of record locks available</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">Number of record locks returned</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">Offset to list of record locks</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">Size of information for each record lock
returned</td>
</tr>
</table>
<br>
<p>Each record lock returned will have the following structure.</p>
<table border width="100%">
<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(1)</td>
<td align="left" valign="top">Lock status</td>
</tr>
<tr>
<td align="center" valign="top">27</td>
<td align="center" valign="top">1B</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Lock state</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</td>
<td align="left" valign="top">UNSIGNED BINARY(4)</td>
<td align="left" valign="top">Relative record number</td>
</tr>
<tr>
<td align="center" valign="top">32</td>
<td align="center" valign="top">20</td>
<td align="left" valign="top">CHAR(8)</td>
<td align="left" valign="top">Thread identifier</td>
</tr>
<tr>
<td align="center" valign="top">40</td>
<td align="center" valign="top">28</td>
<td align="left" valign="top">UNSIGNED BINARY(4)</td>
<td align="left" valign="top">Thread handle</td>
</tr>
</table>
<br>
<br>
<h3><a name="FLDRCVF1">RRCD0100 Format Field Descriptions</a></h3>
<p><strong>Job name.</strong> The simple job name of the job that issued the
lock request.</p>
<p><strong>Job number.</strong> The system-assigned job number of the job that
issued the lock request.</p>
<p><strong>Job user name.</strong> The user name under which the job that
issued the lock request is run.</p>
<p><strong>Lock status.</strong> The status of the lock. The possible values
are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">The record lock is held by the given job or
thread.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">The job or thread given is waiting for the record lock.</td>
</tr>
</table>
<br>
<p><strong>Lock state.</strong> The lock state to be processed. The possible
values are:</p>
<br>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">The record lock is a shared read lock.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">The record lock is an exclusive update lock.</td>
</tr>
<tr>
<td valign="top"><em>2</em></td>
<td valign="top">The record lock is a shared internal lock.</td>
</tr>
</table>
<br>
<p><strong>Number of record locks available.</strong> The number of record lock
structures that are available to be returned. If this field is the same as the
number of record locks returned field, all the record lock information has been
returned.</p>
<p><strong>Number of record locks returned.</strong> The number of record lock
structures that were returned to the caller of the API. If enough space is
provided in the receiver variable, all record locks are returned. If there is
more record lock information than can fit in the space provided, the number of
record locks returned is less than the number of record locks available.</p>
<p><strong>Offset to list of record locks.</strong> The byte offset from the
beginning of the receiver variable to the first record lock information
structure.</p>
<p><strong>Relative record number.</strong> The relative record number for
which job record lock information is being returned.</p>
<p><strong>Size of information for each record lock returned.</strong> The
number of bytes of each of the returned record lock information structures. In
future releases, the amount of information returned for each record lock may be
expanded, so this value should be used to move from one record lock structure
to another.</p>
<p><strong>Thread handle.</strong> This is a value which is used to address a
particular thread holding a thread scope lock or the thread waiting for a lock.
If the lock is not a thread scope lock, this is zero.</p>
<p><strong>Thread identifier.</strong> The unique value that is used to
identify the thread holding a thread scope lock or the thread waiting for a
lock. If the lock is not a thread scope lock, this is hex zeros.</p>
<br>
<h3><a name="HDRRCVF2">RRCD0200 Format</a></h3>
<p>The following information is returned for RRCD0200 format. For detailed
descriptions of the fields in the table, see <a href="#FLDRCVF2">RRCD0200
Format Field Descriptions</a>.</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%">Number of record locks available</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">Number of record locks returned</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">Offset to list of record locks</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">Size of information for each record lock
returned</td>
</tr>
</table>
<br>
<p>Each record lock returned will have the following structure.</p>
<table border width="100%">
<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(1)</td>
<td align="left" valign="top">Lock status</td>
</tr>
<tr>
<td align="center" valign="top">27</td>
<td align="center" valign="top">1B</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Lock state</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Relative record number</td>
</tr>
<tr>
<td align="center" valign="top">32</td>
<td align="center" valign="top">20</td>
<td align="left" valign="top">CHAR(8)</td>
<td align="left" valign="top">Thread identifier</td>
</tr>
<tr>
<td align="center" valign="top">40</td>
<td align="center" valign="top">28</td>
<td align="left" valign="top">UNSIGNED BINARY(4)</td>
<td align="left" valign="top">Thread handle</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">44</td>
<td align="center" valign="top" width="10%">2C</td>
<td align="left" valign="top" width="20%">CHAR(1)</td>
<td align="left" valign="top" width="60%">Lock scope</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">45</td>
<td align="center" valign="top" width="10%">2D</td>
<td align="left" valign="top" width="20%">CHAR(1)</td>
<td align="left" valign="top" width="60%">Holder type</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">46</td>
<td align="center" valign="top" width="10%">2E</td>
<td align="left" valign="top" width="20%">CHAR(20)</td>
<td align="left" valign="top" width="60%">Lock space identifier</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">66</td>
<td align="center" valign="top" width="10%">42</td>
<td align="left" valign="top" width="20%">CHAR(2)</td>
<td align="left" valign="top" width="60%">Reserved</td>
</tr>
</table>
<br>
<br>
<h3><a name="FLDRCVF2">RRCD0200 Format Field Descriptions</a></h3>
<p><strong>Holder type.</strong> If the lock status indicates the lock is held,
this indicates the type of holder. If the lock status indicates the lock is not
yet held, this indicates the type of holder that is waiting on the lock. This
field will be the same as the lock scope field except in the case when a thread
is waiting for a lock space scope lock. The possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">Job.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">Thread.</td>
</tr>
<tr>
<td valign="top"><em>2</em></td>
<td valign="top">Lock space.</td>
</tr>
</table>
<br>
<p><strong>Job name.</strong> The simple job name of the job that issued the
lock request. If the holder type is not job or thread, this is hex zeros.</p>
<p><strong>Job number.</strong> The system-assigned job number of the job that
issued the lock request. If the holder type is not job or thread, this is hex
zeros.</p>
<p><strong>Job user name.</strong> The user name under which the job that
issued the lock request is run. If the holder type is not job or thread, this
is hex zeros.</p>
<p><strong>Lock scope.</strong> If the lock status indicates the lock is held,
this indicates the type of holder. If the lock status indicates the lock is not
yet held, this indicates the type of holder will hold the lock once the lock
request is satisfied. This field will be the same as the holder type field
except in the case when a thread is waiting for a lock space scope lock. The
possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">Job.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">Thread.</td>
</tr>
<tr>
<td valign="top"><em>2</em></td>
<td valign="top">Lock space.</td>
</tr>
</table>
<br>
<p><strong>Lock space identifier.</strong> The identifier of the lock space
that holds this lock. If the lock scope is not lock space scope, this is hex
zeros.</p>
<p><strong>Lock status.</strong> The status of the lock. The possible values
are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">The record lock is held. The holder may be a job,
thread or lock space as indicated by the lock holder type field.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">The record lock is being waited on. The waiter may be a job or
thread as indicated by the lock holder type field.</td>
</tr>
</table>
<br>
<p><strong>Lock state.</strong> The lock state to be processed. The possible
values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">The record lock is a shared read lock.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">The record lock is an exclusive update lock.</td>
</tr>
<tr>
<td valign="top"><em>2</em></td>
<td valign="top">The record lock is a shared internal lock.</td>
</tr>
</table>
<br>
<p><strong>Number of record locks available.</strong> The number of record lock
structures that are available to be returned. If this field is the same as the
number of record locks returned field, all the record lock information has been
returned.</p>
<p><strong>Number of record locks returned.</strong> The number of record lock
structures that were returned to the caller of the API. If enough space is
provided in the receiver variable, all record locks are returned. If there is
more record lock information than can fit in the space provided, the number of
record locks returned is less than the number of record locks available.</p>
<p><strong>Offset to list of record locks.</strong> The byte offset from the
beginning of the receiver variable to the first record lock information
structure.</p>
<p><strong>Relative record number.</strong> The relative record number for
which job record lock information is being returned.</p>
<p><strong>Reserved.</strong> An unused field.</p>
<p><strong>Size of information for each record lock returned.</strong> The
number of bytes of each of the returned record lock information structures. In
future releases, the amount of information returned for each record lock may be
expanded, so this value should be used to move from one record lock structure
to another.</p>
<p><strong>Thread handle.</strong> This is a value which is used to address a
particular thread holding a thread scope lock or the thread waiting for a lock.
If the holder type is not thread, this is zero.</p>
<p><strong>Thread identifier.</strong> The unique value that is used to
identify the thread holding a thread scope lock or the thread waiting for a
lock. If the holder type is not thread, this is hex zeros.</p>
<br>
<h3><a name="HDRRCDF">Format of Record Identification Information</a></h3>
<p>The format of the information that is to be used to identify the record or
records for which locks are to be retrieved. If this parameter is specified,
the member and relative record number parameters are ignored, and the member
and relative number specified in the format fields are used to identify the
records.</p>
<br>
<h3><a name="HDRRCDF1">RRRC0100 Format</a></h3>
<p>The following information is specified for the RRRC0100 format. For detailed
descriptions of the fields in the table, see <a href="#FLDRCDF1">RRRC0100
Format Field Descriptions</a></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 width="10%" align="center" valign="top">0</td>
<td width="10%" align="center" valign="top">0</td>
<td width="20%" align="left" valign="top">CHAR(10)</td>
<td width="60%" align="left" valign="top">File 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">Library name</td>
</tr>
</table>
<br>
<br>
<h3><a name="FLDRCDF1">RRRC0100 Format Field Descriptions</a></h3>
<p><strong>File name.</strong>&nbsp;&nbsp; The name of the file for which
record locks are to be retrieved.</p>
<p><strong>Library name.</strong>&nbsp;&nbsp; The name of the library where the
object is located. The library is assumed to be in the name space of the thread
that called the API. You can use these special values for the library name:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td width="15%" valign="top"><em>*CURLIB</em></td>
<td width="85%" 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 valign="top"><em>*LIBL</em></td>
<td valign="top">The library list is used to locate the object.</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRRCDF2">RRRC0200 Format</a></h3>
<p>The following information is specified for the RRRC0200 format. For detailed
descriptions of the fields in the table, see <a href="#FLDRCDF2">RRRC0200
Format Field Descriptions</a></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 width="10%" align="center" valign="top">0</td>
<td width="10%" align="center" valign="top">0</td>
<td width="20%" align="left" valign="top">BINARY(4)</td>
<td width="60%" align="left" valign="top">Record identification information
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">File name</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">Library name</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">Member name</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">Library ASP name</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">Relative record number</td>
</tr>
</table>
<br>
<br>
<h3><a name="FLDRCDF2">RRRC0200 Format Field Descriptions</a></h3>
<p><strong>File name.</strong>&nbsp;&nbsp; The name of the file for which
record locks are to be retrieved.</p>
<p><strong>Library ASP name.</strong>&nbsp;&nbsp; The name of the auxiliary
storage pool (ASP) device that contains the file's library. Special values used
are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top" width="15%">*</td>
<td align="left" valign="top" width="85%">Thread name space</td>
</tr>
<tr>
<td align="left" valign="top">*SYSBAS</td>
<td align="left" valign="top">System or basic user ASP</td>
</tr>
</table>
<br>
<p><strong>Library name.</strong>&nbsp;&nbsp; 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 width="15%" valign="top"><em>*CURLIB</em></td>
<td width="85%" 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 valign="top"><em>*LIBL</em></td>
<td valign="top">The library list is used to locate the object.</td>
</tr>
</table>
<br>
<p><strong>Member name.</strong>&nbsp;&nbsp; The name of the member in the
specified file that is to be checked for record locks.</p>
<p>The following special value is allowed:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top" width="15%"><em>*FIRST</em></td>
<td valign="top" width="85%">The first member of the specified file is
used.</td>
</tr>
</table>
<br>
<p><strong>Record identification information size.</strong>&nbsp;&nbsp; The
amount of data provided for the RRRC0200 format. This field must be set to
48.</p>
<p><strong>Relative record number.</strong>&nbsp;&nbsp; The record number in
the specified file and member for which lock information is to be returned. The
following special value is allowed:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td valign="top" width="5%"><em>0</em></td>
<td valign="top" width="95%">Record lock information for all records in the member should be
returned.
</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRLKFF"></a>Format of lock filters</h3>
<p>The format of the lock filters used on the returned lock information.</p>
<br>
<h3><a name="HDRLKFF1">RJFL0100 Format</a></h3>
<p>The following information is to be specified for the RJFL0100 format. For
detailed descriptions of the fields in the table, see <a href="#FLDLKFF1">
RJFL100 Format Field Descriptions</a>.</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%">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>
</table>
<br>
<br>
<h3><a name="FLDLKFF1">RJFL0100 Format Field Descriptions</a></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="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">Do not filter on lock scope value</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">Return only the job scope locks</td>
</tr>
<tr>
<td valign="top"><em>2</em></td>
<td valign="top">Return only the thread scope locks</td>
</tr>
<tr>
<td valign="top"><em>3</em></td>
<td valign="top">Return only the lock space scope locks</td>
</tr>
</table>
<p>Default: Do not filter on lock scope value</p>
<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="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">Do not filter on lock state value</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">Return only the shared locks</td>
</tr>
<tr>
<td valign="top"><em>2</em></td>
<td valign="top">Return only the exclusive locks</td>
</tr>
</table>
<p>Default: Do not filter on lock state value</p>
<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="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">Do not filter on lock status value</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">Return only locks with a status of held</td>
</tr>
<tr>
<td valign="top"><em>2</em></td>
<td valign="top">Return only locks with a status of waiting</td>
</tr>
<tr>
<td valign="top"><em>3</em></td>
<td valign="top">Return only locks with a status of requested.</td>
</tr>
</table>
<p>Default: Do not filter on lock status value</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 valign="top"><em>4</em></td>
<td valign="top">No filtering will be performed. The default values
will be used for each filter.</td>
</tr>
<tr>
<td valign="top"><em>16</em></td>
<td valign="top">All filters are required</td>
</tr>
</table>
<br>
<br>
<h3>Error Messages</h3>
<table width="100%">
<tr>
<th align="left" valign="top">Message ID</th>
<th align="left" valign="top">Error Message Text</th>
</tr>
<tr>
<td width="15%" valign="top">CPF24B4 E</td>
<td width="85%" valign="top">Severe error while addressing parameter list.</td>
</tr>
<tr>
<td valign="top">CPF3130 E</td>
<td valign="top">Member &amp;2 already in use.</td>
</tr>
<tr>
<td valign="top">CPF3210 E</td>
<td valign="top">File &amp;1 in library &amp;2 not correct type.</td>
</tr>
<tr>
<td valign="top">CPF3247 E</td>
<td valign="top">Record number &amp;4 does not exist in member &amp;3.</td>
</tr>
<tr>
<td valign="top">CPF3275 E</td>
<td valign="top">Member &amp;3 file &amp;1 in &amp;2 not found.</td>
</tr>
<tr>
<td valign="top">CPF3C19 E</td>
<td valign="top">Error occurred with receiver variable specified.</td>
</tr>
<tr>
<td valign="top">CPF3C1E E</td>
<td valign="top">Required parameter &amp;1 omitted.</td>
</tr>
<tr>
<td valign="top">CPF3C21 E</td>
<td valign="top">Format name &amp;1 is not valid.</td>
</tr>
<tr>
<td valign="top">CPF3CF1 E</td>
<td valign="top">Error code parameter not valid.</td>
</tr>
<tr>
<td valign="top">CPF9803 E</td>
<td valign="top">Cannot allocate object &amp;2 in library &amp;3.</td>
</tr>
<tr>
<td valign="top">CPF9810 E</td>
<td valign="top">Library &amp;1 not found.</td>
</tr>
<tr>
<td valign="top">CPF9812 E</td>
<td valign="top">File &amp;1 in library &amp;2 not found.</td>
</tr>
</table>
<br>
<br>
<hr>
API introduced: V5R1
<hr>
<center>
<table cellpadding="2" cellspacing="2">
<tr align="center">
<td valign="middle" align="center"><a href="#top_Of_Page">Top</a> | <a href=
"file1.htm">Database and File APIs</a> | <a href="aplist.htm">APIs by
category</a></td>
</tr>
</table>
</center>
<br>
</body>
</html>