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

4795 lines
155 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 Journal Entries (QjoRetrieveJournalEntries) 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. -->
<!-- JC1 SCRIPT A converted by B2H R4.1 (346) (CMS) by V2KEA304 -->
<!-- at RCHVMW2 on 17 Feb 1999 at 11:05:09 -->
<!-- Created for V5R3 by (Peg Levering) -->
<!-- Change history: -->
<!-- 021220 Levering:(changed rcvr range 256 to 1024, DCR 99207)-->
<!-- 030924 trschmid: changed note about MILLIS to "this key"-->
<!-- 031028 trschmid: changed MILLIS to "uuuuuu"-->
<!-- 031028 trschmid: added note about QLEAPADJ affecting granularity-->
<!--End Header Records -->
<!--Edited by Kersten Oct 2001 -->
<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 Journal Entries (QjoRetrieveJournalEntries) 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">Qualified journal name</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(20)</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="left" valign="top">Format name</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(8)</td>
</tr>
</table>
<br>
&nbsp;&nbsp;Omissible Parameter Group:<br>
<!-- iddvc RMBR -->
<br>
<table width="100%">
<tr>
<td align="center" valign="top" width="10%">5</td>
<td align="left" valign="top" width="50%">Journal entries to retrieve</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">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;Service Program Name: QJOURNAL<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Header File Name: QSYSINC/H.QJOURNAL<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Default Public Authority: *USE<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: No<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>The Retrieve Journal Entries (QjoRetrieveJournalEntries) API provides access
to journal entries. The journal entry information available is similar to what
is provided by using the Display Journal (DSPJRN), Receive Journal Entry
(RCVJRNE), and Retrieve Journal Entry (RTVJRNE) CL commands. Additionally,
journal entry data that cannot be retrieved through these CL interfaces because
of length or structure is available through this API as pointers to the
additional data.</p>
<p>See the <a href="../rzaki/rzakikickoff.htm">Journal management</a> topic for
more information about journaling and the various types of journal entries that
are available for retrieval.</p>
<p><strong>Note:</strong> Under certain conditions, even if an error message is
returned to this API, a partial list of journal entries may be retrieved into
the receiver variable. If you receive error messages CPF3CF1, CPF3C90, CPF6948,
CPF6949 or CPF9872, then the receiver variable has not yet been modified. For
all other error messages, a non-zero value for bytes returned indicates journal
entry information may be available and the number of entries retrieved field
will reflect how many entries are being returned prior to receiving the error
message.</p>
<br>
<h3>Restrictions</h3>
<ul>
<li>If the sequence number is reset in the range of the receivers specified,
the first occurrence of starting sequence number or ending sequence number is
used if these key fields are specified.</li>
<li>The job, program, and user profile keys cannot be used to specify selection
criteria if one or more journal receivers in the specified receiver range was
attached to a journal that had a RCVSIZOPT or FIXLENDTA option specified that
omitted the collection of that data.</li>
<li>The file,
<img src="delta.gif" alt="Start of change">
object, object path, object file identifier, directory subtree, name pattern,
<img src="deltaend.gif" alt="End of change">
journal code, entry type, job, program, user profile, commit
cycle identifier, and dependent entries keys can be used to specify a subset of
all available entries within a range of journal entries.
<ul>
<li>If no values are specified using these keys, all available journal entries
are retrieved.</li>
<li>If more than one of these keys are specified, then a journal entry must
satisfy all of the values specified on these keys, except when ignore file
selection (*IGNFILSLT) <img src="delta.gif" alt="Start of change">
or ignore object selection (*IGNOBJSLT)
<img src="deltaend.gif" alt="End of change">
is specified on the journal code key.</li>
<li>If a journal code is specified on the journal code key and *IGNFILSLT is
the second element of that journal code, then journal entries with the
specified journal code are selected if they satisfy all selection criteria
except what is specified on the file key.</li>
<li><img src="delta.gif" alt="Start of change">
If a journal code is specified on the journal code key and *IGNOBJSLT is
the second element of that journal code, then journal entries with the
specified journal code are selected if they satisfy all selection criteria
except what is specified on the object, object path, object file identifier,
directory subtree, and name pattern keys.
<img src="deltaend.gif" alt="End of change"></li>
</ul>
</li>
<li>If more than the maximum number of objects is identified (
<img src="delta.gif" alt="Start of change">
32767
<img src="deltaend.gif" alt="End of change">
objects),
an error occurs and no entries are converted for output. This restriction is
ignored if *ALLFILE is specified
<img src="delta.gif" alt="Start of change">
or no objects are specified. All journal entries are retrieved, regardless of
which objects, if any, the entries are associated with.
<img src="deltaend.gif" alt="End of change">
</li>
</ul>
<br>
<h3>Authorities and Locks</h3>
<dl>
<dt><em>Journal Authority</em></dt>
<dd>*USE</dd>
<dt><em>Journal Library Authority</em></dt>
<dd>*EXECUTE</dd>
<dt><em>Journal Receivers Authority</em></dt>
<dd>*USE</dd>
<dt><em>Journal Receivers Library's Authority</em></dt>
<dd>*EXECUTE</dd>
<dt><img src="delta.gif" alt="Start of change">
<em>Non-Integrated File System Object Authority (if specified)</em></dt>
<dd>*USE</dd>
<dt><em>Non-Integrated File System Object Library Authority</em></dt>
<dd>*EXECUTE</dd>
<dt><em>Integrated File System Object Authority (if specified)</em></dt>
<dd>*R (also *X if object is a directory and *ALL is specified
for the directory subtree key)</dd>
<dt><em>Directory Authority (for each directory preceding the last
component in the path name)</em></dt>
<dd>*X<img src="deltaend.gif" alt="End of change"></dd>
<dt><em>Journal Lock</em></dt>
<dd>*SHRRD</dd>
<dt><em>Journal Receiver Lock</em></dt>
<dd>*SHRRD</dd>
<dt><em><img src="delta.gif" alt="Start of change">
Non-Integrated File System Object Lock (if specified)</em></dt>
<dd>*SHRRD</dd>
<dt><em>Integrated File System Object Lock (if specified)</em></dt>
<dd>O_RDONLY | O_SHARE_RDWR<img src="deltaend.gif" alt="End of change"></dd>
</dl>
<p>*OBJEXIST is also required for the journal authority if any of the the
following are true:</p>
<ul>
<li>*ALLFILE has been specified for the file key
<img src="delta.gif" alt="Start of change">
or no objects were specified
<img src="deltaend.gif" alt="End of change">
</li>
<li>Specified object does not exist on the system</li>
<li>*IGNFILSLT <img src="delta.gif" alt="Start of change">
or *IGNOBJSLT <img src="deltaend.gif" alt="End of change">
is specified for the journal code selection value for any
selected journal codes</li>
<li>The journal is a remote journal</li>
</ul>
<br>
<h3>Required Parameter Group</h3>
<dl>
<dt><strong>Receiver variable</strong></dt>
<dd>OUTPUT; CHAR(*)
<p>The receiver variable that receives the entries requested. You can specify
the size of the area smaller than the format requested as long as you specify
the length of receiver variable parameter correctly. As a result, the API
returns only the data the area can hold. Only complete journal entries will be
returned.</p>
<p><strong>Note:</strong> This receiver variable must be aligned on a 16-byte
boundary since the journal entry specific data could include actual
pointers.</p>
<p>If the receiver variable was not large enough to hold the retrieved journal
entries, the API can be called again, specifying the same selection criteria
and specifying a starting sequence number one greater than the last sequence
number returned.</p>
</dd>
<dt><strong>Length of receiver variable</strong></dt>
<dd>INPUT; BINARY(4)
<p>The length of receiver variable specified in the user program. If the length
of receiver variable parameter specified is larger than the allocated size of
the receiver variable specified in the user program, the results are not
predictable.
<img src="delta.gif" alt="Start of change">
If the length of receiver variable parameter specified is smaller
than the journal entry to be returned, no journal entry will be returned and
no error will be signalled.
<img src="deltaend.gif" alt="End of change">
The minimum length is 13 bytes.</p>
</dd>
<dt><strong>Qualified journal name</strong></dt>
<dd>INPUT; CHAR(20)
<p>The name of the journal and its library from which the journal entries are
to be retrieved. The first 10 characters contain the journal name. The second
10 characters contain the library name. The special values supported for the
library name follow:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*LIBL</em></td>
<td valign="top">Library list</td>
</tr>
<tr>
<td valign="top"><em>*CURLIB</em></td>
<td valign="top">Current library</td>
</tr>
</table>
</dd>
<dt><strong>Format name</strong></dt>
<dd>INPUT; CHAR(8)
<p> The formats RJNE0100 and RJNE0200 are the only supported formats that are
used by this API. For more information, see the <a href="#HDRRJNEFMT">RJNE0100
Format</a> and the <a href="#HDRRJNEFMT2">RJNE0200 Format</a>.</p>
</dd>
</dl>
<br>
<h3>Omissible Parameter Group</h3>
<dl>
<dt><strong>Journal entries to retrieve</strong></dt>
<dd>INPUT; CHAR(*)
<p>The selection criteria, if any, to use for the journal entries to be
retrieved from the journal. If this parameter is not specified, all journal
entries in the currently attached journal receiver that fit in the length of
receiver variable parameter will be retrieved. Only complete journal entries
will be returned. The information must be in the following format:</p>
<dl>
<dt><em>Number of variable length records</em></dt>
<dd>BINARY(4)</dd>
<dd>The total number of all of the variable length records. If this field is
zero, no variable length records are processed, and no key information will be
retrieved.<br>
<br>
</dd>
<dt><em>Variable length records</em></dt>
<dd>CHAR(*)</dd>
<dd>The types of entries that should be retrieved. For the specific format of
the variable length record, see <a href="#HDRRJRNEVL">Format for Variable
Length Record</a>.
<p><img src="delta.gif" alt="Start of change">
<strong>Note:</strong> This receiver variable must be aligned on a 16-byte
boundary since the journal entry specific data could include actual
pointers.
<img src="deltaend.gif" alt="End of change"></p>
</dd>
</dl>
<br>
<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>. If this
parameter is omitted, diagnostic and escape messages are issued to the
application.</p>
</dd>
</dl>
<br>
<h3><a name="HDRRJRNEVL">Format for Variable Length Record</a></h3>
<p>The following table defines the format for the variable length records.</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%">Length of variable length record</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">Key</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">Length of data</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Data</td>
</tr>
</table>
<p>If you specify a length of data that is longer than the key field's required
data length, the data will be truncated at the right. No error message will be
returned.</p>
<p>If you specify a length of data that is shorter than the key field's
required data length, an error message will be returned.</p>
<p>You may specify a key more than once. If duplicate keys are specified, the
last specified value for that key is used.</p>
<p>Each variable length record must be 4-byte aligned. If not, unpredictable
results may occur.
<img src="delta.gif" alt="Start of change">
If any keys are specified which include pointers, e.g. Object Path or Name
Pattern, it is recommended that the length of each variable length record be a
mulitple of 16 bytes. If not, errors may occur.
<img src="deltaend.gif" alt="End of change">
</p>
<br>
<h3><a name="HDRRJRNE1">Field Descriptions</a></h3>
<p><strong>Data.</strong> The data that is used to determine how the journal
entries should be retrieved. All values are validity checked.</p>
<p><strong>Key.</strong> Identifies specific entries to be retrieved from the
journal. See <a href="#HDRRJRNEKY">Keys</a> for the list of valid keys.</p>
<p><strong>Length of data.</strong> The length of the key information.</p>
<p><strong>Length of variable length record.</strong> The length of the
variable length record. This field is used to get the addressability of the
next variable length record.</p>
<br>
<h3><a name="HDRRJRNEKY">Keys</a></h3>
<p>The following table lists the valid keys for the key field area of the
variable length record. For detailed descriptions of the keys, see the <a href=
"#HDRRJRNE2">Field Descriptions</a>.</p>
<p>Some messages for this API refer to parameters and values of the Receive
Journal Entry (RCVJRNE) command. This table also can be used to locate the key
names that correspond to the RCVJRNE command parameters.</p>
<table border width="80%">
<tr>
<th align="center" valign="bottom">Key</th>
<th align="left" valign="bottom">Input Type</th>
<th align="left" valign="bottom">Field</th>
<th align="left" valign="bottom">RCVJRNE Command Parameter</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">1</td>
<td align="left" valign="top" width="20%">CHAR(40)</td>
<td align="left" valign="top" width="40%">Range of journal receivers</td>
<td align="left" valign="top" width="30%">RCVRNG</td>
</tr>
<tr>
<td align="center" valign="top">2</td>
<td align="left" valign="top">CHAR(20)</td>
<td align="left" valign="top">Starting sequence number</td>
<td align="left" valign="top">FROMENT</td>
</tr>
<tr>
<td align="center" valign="top">3</td>
<td align="left" valign="top">CHAR(26)</td>
<td align="left" valign="top">Starting time stamp</td>
<td align="left" valign="top">FROMTIME</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(20)</td>
<td align="left" valign="top">Ending sequence number</td>
<td align="left" valign="top">TOENT</td>
</tr>
<tr>
<td align="center" valign="top">5</td>
<td align="left" valign="top">CHAR(26)</td>
<td align="left" valign="top">Ending time stamp</td>
<td align="left" valign="top">TOTIME</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of entries</td>
<td align="left" valign="top">NBRENT</td>
</tr>
<tr>
<td align="center" valign="top">7</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Journal codes</td>
<td align="left" valign="top">JRNCDE</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Journal entry types</td>
<td align="left" valign="top">ENTTYP</td>
</tr>
<tr>
<td align="center" valign="top">9</td>
<td align="left" valign="top">CHAR(26)</td>
<td align="left" valign="top">Job</td>
<td align="left" valign="top">JOB</td>
</tr>
<tr>
<td align="center" valign="top">10</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Program</td>
<td align="left" valign="top">PGM</td>
</tr>
<tr>
<td align="center" valign="top">11</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">User profile</td>
<td align="left" valign="top">USRPRF</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="left" valign="top">CHAR(20)</td>
<td align="left" valign="top">Commit cycle identifier</td>
<td align="left" valign="top">CMTCYCID</td>
</tr>
<tr>
<td align="center" valign="top">13</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Dependent entries</td>
<td align="left" valign="top">DEPENT</td>
</tr>
<tr>
<td align="center" valign="top">14</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Include entries</td>
<td align="left" valign="top">INCENT</td>
</tr>
<tr>
<td align="center" valign="top">15</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Null value indicators length</td>
<td align="left" valign="top">NULLINDLEN</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">File</td>
<td align="left" valign="top">FILE</td>
</tr>
<tr>
<td align="center" valign="top">
<img src="delta.gif" alt="Start of change">17</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Object</td>
<td align="left" valign="top">OBJ</td>
</tr>
<tr>
<td align="center" valign="top">18</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Object path</td>
<td align="left" valign="top">OBJPATH</td>
</tr>
<tr>
<td align="center" valign="top">19</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Object file identifier</td>
<td align="left" valign="top">OBJFID</td>
</tr>
<tr>
<td align="center" valign="top">20</td>
<td align="left" valign="top">CHAR(5)</td>
<td align="left" valign="top">Directory subtree</td>
<td align="left" valign="top">SUBTREE</td>
</tr>
<tr>
<td align="center" valign="top">21</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Name pattern</td>
<td align="left" valign="top">PATTERN
</tr>
<tr>
<td align="center" valign="top">22</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Format Minimized Data</td>
<td align="left" valign="top">FMTMINDTA
<img src="deltaend.gif" alt="End of change"></td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRRJRNE2">Field Descriptions</a></h3>
<p><strong>Commit cycle identifier.</strong> The commit cycle identifier of the
specific journal that participated in a logical unit of work for which the
journal entries are to be retrieved. This Char(20) field is treated as
Zoned(20,0) except when the special value *ALL is specified. The default is
*ALL. The possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*ALL</em></td>
<td valign="top">The journal entries for all commit cycle identifiers are to be
retrieved.</td>
</tr>
<tr>
<td valign="top"><em>commit cycle identifier</em></td>
<td valign="top">The identifier for the commit cycle whose journaled changes
are to be retrieved.</td>
</tr>
</table>
<p><strong>Dependent entries</strong> Whether the journal entries to be
retrieved include the journal entries recording actions</p>
<ul>
<li>that occur as a result of a trigger program.</li>
<li>on records that are part of a referential constraint.</li>
<li>that will be ignored during an apply journaled changes (APYJRNCHG) or
remove journaled changes (RMVJRNCHG) operation.</li>
</ul>
<p>The default is *ALL. The possible values are:</p>
<br>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*ALL</em></td>
<td valign="top">The journal entries relating to trigger programs, referential
constraints, and the entries that will be ignored by an apply journaled changes
or remove journaled changes operation are retrieved.</td>
</tr>
<tr>
<td valign="top"><em>*NONE</em></td>
<td valign="top">The journal entries relating to trigger programs, referential
constraints, and the entries that will be ignored by an apply journaled changes
or remove journaled changes operation are not retrieved.</td>
</tr>
</table>
<img src="delta.gif" alt="Start of change">
<p><strong>Directory subtree.</strong> Whether the directory subtrees are
included in the retrieve operation. The default is *NONE.</p>
<p><strong>Note:</strong> This key is ignored if Key 18 (object path)
is not specified or if the object is not a directory.</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*NONE</em></td>
<td align="left" valign="top">Only the objects that match the selection
criteria are processed. The objects within selected directories are not
processed implicitly.<br>
<br>
</td>
</tr>
<tr>
<td align="left" valign="top"><em>*ALL</em></td>
<td align="left" valign="top">All objects that meet the selection criteria are
processed in addition to the entire subtree of each directory that matches the
selection criteria. The subtree includes all subdirectories and the objects
within those subdirectories.</td>
</tr>
</table>
<img src="deltaend.gif" alt="End of change">
<p><strong>Ending sequence number.</strong> The last journal entry considered
for retrieval. This Char(20) field is treated as Zoned(20,0) except when the
special value *LAST is specified. The default is *LAST. The possible
values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*LAST</em></td>
<td valign="top">The last journal entry in the specified journal receiver range
is the last entry considered for retrieval.</td>
</tr>
<tr>
<td valign="top"><em>sequence number</em></td>
<td valign="top">The sequence number of the journal entry that is the last
entry considered for retrieval.</td>
</tr>
</table>
<p><img src="delta.gif" alt="Start of change">
<strong>Note:</strong> If this key is specified, Key 5 (ending time stamp)
cannot also be specified.
<img src="deltaend.gif" alt="End of change"></p>
<p><strong>Ending time stamp.</strong> The time stamp of the last journal entry
considered for retrieval. This Char(26) field is in the format YYYY-MM-DD-HH.MM.SS.UUUUUU where</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>YYYY</em></td>
<td valign="top">Year</td>
</tr>
<tr>
<td valign="top"><em>MM</em></td>
<td valign="top">Month</td>
</tr>
<tr>
<td valign="top"><em>DD</em></td>
<td valign="top">Day</td>
</tr>
<tr>
<td valign="top"><em>HH</em></td>
<td valign="top">Hours</td>
</tr>
<tr>
<td valign="top"><em>MM</em></td>
<td valign="top">Minutes</td>
</tr>
<tr>
<td valign="top"><em>SS</em></td>
<td valign="top">Seconds</td>
</tr>
<tr>
<td valign="top"><em>UUUUUU</em></td>
<td valign="top">Microseconds</td>
</tr>
</table>
<p><strong>Notes:</strong>
<ol>
<li>If this key is specified, Key 4 (ending sequence number) cannot also be
specified.<br>
<br>
</li>
<li>If the system value QLEAPADJ (Leap year adjustment) is zero, then the
result returned will be in 1 microsecond granularity. If the system value
QLEAPADJ is greater than zero, then the result returned will be in
8 microsecond granularity.
</li>
</ol>
<p><strong>File.</strong> A list of files and members for which journal entries
are to be retrieved. For the format of this field, see <a href="#HDRFILE">File
Format</a>. If *ALLFILE is specified for the file name, the list cannot contain
other entries.</p>
<p>To determine which journal entries are to be retrieved, based on the
specified file member name, the following is done:</p>
<ul>
<li>If the journal is a local journal, and if the specified file member
currently exists on the system, the journal identifier is determined from the
specified file member. All journal entries in the specified receiver range for
that journal identifier are retrieved.</li>
<li>If the journal is a remote journal, or if the specified file member does
not currently exist on the system, the specified receiver range is searched to
determine all possible journal identifiers that are associated with the
specified file member. All journal entries in the specified receiver range for
those journal identifiers are retrieved. Specify the
library name or *CURLIB to have entries returned for a file.
<p><img src="delta.gif" alt="Start of change">
There may be more than one journal identifier associated with a specified
object within the specified receiver range. This can happen when a journaled
object is deleted, and then a new object is created with the same name and
journaled to the same journal.
<img src="deltaend.gif" alt="End of change"></p>
</li>
</ul>
<strong>Notes:</strong>
<ol>
<li>The journal identifier is the unique identifier associated with the object
when journaling is started for that object. The journal identifier stays
constant, even if the object is renamed, moved or restored. See the <a href=
"../rzaki/rzakikickoff.htm">Journal management</a> topic for more
information.<br>
<br>
</li>
<li>When specifying a database file on this key, journal entries with the
following journal code values are retrieved only if they satisfy the values
specified on the other keys:
<ul>
<li>Journal code D (database file-level information entries).</li>
<li>Journal code F (file member-level information entries).</li>
<li>Journal code R (record-level information entries).</li>
<li>Journal code U (user-generated entries).</li>
<li>Other journal codes if *IGNFILSLT is the second element of the journal code
key. If *ALLSLT is the second element of the journal code key, no journal
entries with that code are retrieved.</li>
</ul>
<br>
<li><img src="delta.gif" alt="Start of change">
Either Key 16 (file) may be specified, or one or more of the object keys,
Key 17 (object), Key 18 (object path), or Key 19 (object file identifier) may be
specified, but not both.
<img src="deltaend.gif" alt="End of change"><br>
</li>
</ol>
<img src="delta.gif" alt="Start of change">
<p><strong>Format minimized data.</strong> Specifies whether entry specific data
which has been minimized on field boundaries will be returned in a readable
format. The default is *NO. The possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*NO</em></td>
<td valign="top">The journal entries which have entry specific data that has
been minimized on field boundaries will not be returned in a readable format.
Therefore, the entry specific data may not be viewable.</td>
</tr>
<tr>
<td valign="top"><em>*YES</em></td>
<td valign="top">The journal entries which have entry specific data that has
been minimized on field boundaries will be returned in a readable format.
Therefore, the entry specific data is viewable and may be used for auditing
purposes. The fields that were changed are accurately reflected. The fields
that were not changed and were not recorded return default data and are
indicated by a value of '9' in the null value indicators field.</td>
</tr>
</table>
<img src="deltaend.gif" alt="End of change"><br>
<p><strong>Include entries.</strong> Whether only the confirmed or both the
confirmed and unconfirmed journal entries are retrieved. This key only applies
when retrieving journal entries from a remote journal. The default is
*CONFIRMED.</p>
<p>Confirmed entries are those journal entries that have been sent to this
remote journal, and the state of the input/output (I/O) to auxiliary storage
for the same journal entries on the local journal is known.</p>
<p>Unconfirmed entries can occur for two reasons. First, the journal entries
have been sent to the remote journal, but the state of the input/output (I/O)
to auxiliary storage for the same journal entries on the local journal is not
yet known. If the connection to the source system is lost, these entries will
be deleted from the remote system and will never become confirmed. This
situation only occurs if synchronous delivery mode is being used for the remote
journal. Secondly, unconfirmed entries may exist because the object name
information for those journal entries is not yet known to the remote journal.
Even if the connection to the source system is lost, these entries will
eventually become confirmed. This situation can occur for either synchronous or
asynchronous delivery mode to a remote journal.</p>
<p>The possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*CONFIRMED</em></td>
<td valign="top">Only those journal entries that have been confirmed are
retrieved.</td>
</tr>
<tr>
<td valign="top"><em>*ALL</em></td>
<td valign="top">All confirmed and unconfirmed journal entries are
retrieved.</td>
</tr>
</table>
<p><strong>Job.</strong> Whether the journal entries being retrieved are
limited to the journal entries for a specified job. Only journal entries for
the specified job are considered for retrieval. The default is *ALL. The
possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*ALL</em></td>
<td valign="top">The retrieval is not limited to entries for a specific
job.</td>
</tr>
<tr>
<td valign="top"><em>job</em></td>
<td valign="top">The retrieval is limited to entries for a specific job where
the first 10 characters are the job name, the second 10 characters are the user
name, and the last 6 characters are the job number.</td>
</tr>
</table>
<p><strong>Journal codes.</strong> A list of journal codes for which entries
are to be retrieved. For the format of this field, see <a href="#HDRJRNCDE">
Journal Code Format</a>. If *ALL or *CTL is specified for the journal code
value, the list cannot contain other entries and the journal code selection
field must be blank. The default is *ALL for the journal code value.</p>
<p><strong>Journal entry types.</strong> A list of journal entry types for
which entries are to be retrieved. For the format of this field, see <a href=
"#HDRENTTYP">Journal Entry Type Format</a>. If *ALL or *RCD is specified for
the journal entry type, the list cannot contain other entries. The default is
*ALL for the journal entry type.</p>
<img src="delta.gif" alt="Start of change">
<p><strong>Name pattern.</strong> The patterns to be used to include or omit
objects for which journal entries are to be retrieved. The default will be to include all
patterns that match. For the format of this field, see <a href="#HDRPATTERN">Name
Pattern Format</a>.</p>
<p><strong>Notes:</strong>
<ol>
<li>This key is ignored if Key 18 (object path)
is not specified.<br>
<br>
</li>
<li>The sum of the lengths of all the variable length records that precede
this key must be a multiple of 16 bytes. If not, errors will occur. For ease
of implementation, it is recommended that the length of each variable length
record be a mulitple of 16 bytes.
<br>
</li>
</ol>
<img src="deltaend.gif" alt="End of change">
<p><strong>Null value indicators length.</strong> The length, in bytes, used
for the null value indicators portion of the journal entry retrieved by the
user. This Char(10) field is treated as Zoned(10,0) except when the special
value *VARLEN is specified. The default is *VARLEN. The possible values
are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*VARLEN</em></td>
<td valign="top">The null value indicators field is a variable-length field.
The received journal entry has the format shown in <a href="#TBLJENVIV">This
journal entry's null value indicators if Null Value Indicators (*VARLEN)
specified</a>. All possible null value indicators will be retrieved.</td>
</tr>
<tr>
<td valign="top"><em>field length</em></td>
<td valign="top">The null value indicators field is a fixed-length field of the
specified field length. Valid values range from 1 to 8000 characters. The
format of the retrieved journal entry is shown in <a href="#TBLJENVIF">This
journal entry's null value indicators if Null Value Indicators (field length)
specified</a>.</td>
</tr>
</table>
<p>If the journal entry being retrieved has fewer null value indicators than
the length specified, the trailing bytes are set to 'F0'X. Conversely, if a
journal entry retrieved has more null value indicators than the specified field
length and truncation will result in the loss of a significant
null value indicator (either a 'F1'X or a 'F9'X),
the request is ended.</p>
<p><strong>Number of entries.</strong> The maximum number of journal entries
that are requested to be retrieved. Less than this maximum could be retrieved
if fewer entries meet all the other selection criteria or if there is not
enough space for all the requested entries.</p>
<img src="delta.gif" alt="Start of change">
<p><strong>Object.</strong> A list of objects for which journal entries
are to be retrieved. For the format of this field, see <a href="#HDROBJ">Object
Format</a>. Only objects of type *DTAARA, *DTAQ, and *FILE are supported.</p>
<p>To determine which journal entries are to be retrieved, based on the
specified object name, the following is done:</p>
<ul>
<li>If the journal is a local journal, and if the specified object
currently exists on the system, the journal identifier is determined from the
specified object. All journal entries in the specified receiver range for
that journal identifier are retrieved.</li>
<li>If the journal is a remote journal, or if the specified object does
not currently exist on the system, the specified receiver range is searched to
determine all possible journal identifiers that are associated with the
specified object. All journal entries in the specified receiver range for
those journal identifiers are retrieved. Specify the
library name or *CURLIB to have entries returned for an object.
<p>There may be more than one journal identifier associated with a specified
object within the specified receiver range. This can happen when a journaled
object is deleted, and then a new object is created with the same name and
journaled to the same journal.</p>
</li>
</ul>
<strong>Notes:</strong>
<ol>
<li>The journal identifier is the unique identifier associated with the object
when journaling is started for that object. The journal identifier stays
constant, even if the object is renamed, moved or restored. See the <a href=
"../rzaki/rzakikickoff.htm">Journal management</a> topic for more
information.<br>
<br>
</li>
<li>When specifying an object on this key, journal entries with the
following journal code values are retrieved only if they satisfy the values
specified on the other keys:
<ul>
<li>Journal code D (database file-level information entries).</li>
<li>Journal code E (data area information entries).</li>
<li>Journal code F (file member-level information entries).</li>
<li>Journal code R (record-level information entries).</li>
<li>Journal code Q (data queue information entries).</li>
<li>Journal code U (user-generated entries).</li>
<li>Other journal codes if *IGNOBJSLT is the second element of the journal code
key. If *ALLSLT is the second element of the journal code key, no journal
entries with that code are retrieved.</li>
</ul>
<br>
</li>
<li>
Either Key 16 (file) may be specified, or one or more of the object keys,
Key 17 (object), Key 18 (object path), or Key 19 (object file identifier) may be
specified, but not both.
</li>
</ol>
<p><strong>Object file identifier.</strong> A list of file identifiers (FIDs) for
which journal entries are to be retrieved. FIDs are unique identifiers
associated with integrated file system objects. Only objects whose FID
identifies an object of type *STMF, *DIR, or *SYMLNK that is in the "root" ('/'),
QOpenSys, and user-defined file systems are supported. All other objects are
ignored. For the format of this field, see
<a href="#HDROBJFID">Object File Identifier Format</a>. </p>
<p>To determine which journal entries are to be retrieved, based on the
specified file identifier, the following is done:</p>
<ul>
<li>If the journal is a local journal, and if the specified object
currently exists on the system, the journal identifier is determined from the
specified object. All journal entries in the specified receiver range for
that journal identifier are retrieved.</li>
<li>If the journal is a remote journal, or if the specified object does
not currently exist on the system, the specified receiver range is searched to
determine all possible journal identifiers that are associated with the
specified object. All journal entries in the specified receiver range for
those journal identifiers are retrieved.
</li>
</ul>
<strong>Notes:</strong>
<ol>
<li>The journal identifier is the unique identifier associated with the object
when journaling is started for that object. The journal identifier stays
constant, even if the object is renamed, moved or restored. See the <a href=
"../rzaki/rzakikickoff.htm">Journal management</a> topic for more
information.<br>
<br>
</li>
<li>When specifying an object on this key, journal entries with the
following journal code values are retrieved only if they satisfy the values
specified on the other keys:
<ul>
<li>Journal code B (integrated file system information entries).</li>
<li>Journal code U (user-generated entries).</li>
<li>Other journal codes if *IGNOBJSLT is the second element of the journal code
key. If *ALLSLT is the second element of the journal code key, no journal
entries with that code are retrieved.</li>
</ul>
<br>
</li>
<li>Either Key 16 (file) may be specified, or one or more of the object keys,
Key 17 (object), Key 18 (object path), or Key 19 (object file identifier) may be
specified, but not both.</li>
</ol>
<p><strong>Object path.</strong> A list of integrated file system objects,
entered via path name, for which journal entries are to be retrieved. Only
objects of type *STMF, *DIR, or *SYMLNK that are in the "root" ('/'),
QOpenSys, and user-defined file systems are supported. All other objects
are ignored. For the format of this field, see
<a href="#HDROBJPATH">Object Path Format</a>. </p>
<p>Only objects that are currently linked with the specified path name and
have a journal identifier associated with them are used in journal
entry selection. If the specified object does exist, the journal
identifier associated with that link is used for journal entry
selection. If a specified object does not exist or does not have a
journal identifier associated with it, that link is not used in
selecting journal entries and no error is sent.</p>
<strong>Notes:</strong>
<ol>
<li>The sum of the lengths of all the variable length records that precede
this key must be a multiple of 16 bytes. If not, errors will occur. For ease
of implementation, it is recommended that the length of each variable length
record be a mulitple of 16 bytes.<br>
<br>
</li>
<li>The journal identifier is the unique identifier associated with the object
when journaling is started for that object. The journal identifier stays
constant, even if the object is renamed, moved or restored. See the <a href=
"../rzaki/rzakikickoff.htm">Journal management</a> topic for more
information.<br>
<br>
</li>
<li>When specifying an object on this key, journal entries with the
following journal code values are retrieved only if they satisfy the values
specified on the other keys:
<ul>
<li>Journal code B (integrated file system information entries).</li>
<li>Journal code U (user-generated entries).</li>
<li>Other journal codes if *IGNOBJSLT is the second element of the journal code
key. If *ALLSLT is the second element of the journal code key, no journal
entries with that code are retrieved.</li>
</ul>
<br>
</li>
<li>Either Key 16 (file) may be specified, or one or more of the object keys,
Key 17 (object), Key 18 (object path), or Key 19 (object file identifier) may be
specified, but not both.</li>
</ol>
<img src="deltaend.gif" alt="End of change">
<p><strong>Program.</strong> Whether the journal entries being retrieved are
limited to the journal entries for a specified program. Only journal entries
for the specified program name are considered for retrieval. The default is
*ALL. The possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*ALL</em></td>
<td valign="top">The retrieval is not limited to entries for a specific
program.</td>
</tr>
<tr>
<td valign="top"><em>program</em></td>
<td valign="top">The name of the program whose journal entries are considered
for retrieval. Only journal entries for this program are considered for
retrieval.</td>
</tr>
</table>
<p><strong>Range of journal receivers.</strong> The qualified names of the
starting (first) and ending (last) journal receivers used in the search for a
journal entry to be retrieved. For the format of this field, see <a href=
"#HDRRCVRNG">Receiver Range Format</a>. The system starts the search with the
starting journal receiver and proceeds through the receiver chain until the
ending journal receiver is processed.</p>
<p>If *CURCHAIN or *CURRENT is specified for the starting journal receiver, the
remaining fields should be set to blanks. The default is *CURRENT for the
starting journal receiver. If the total number of receivers in the range is
larger than
<img src="delta.gif" alt="Start of change">
2045,
<img src="deltaend.gif" alt="End of change">
an error message is sent and no journal entry is
retrieved.</p>
<p><strong>Starting sequence number.</strong> The first journal entry
considered for retrieval. This Char(20) field is treated as Zoned(20,0) except
when the special value *FIRST is specified. The default is *FIRST. The
possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*FIRST</em></td>
<td valign="top">The first journal entry in the specified journal receiver
range is the first entry considered for retrieval.</td>
</tr>
<tr>
<td valign="top"><em>sequence number</em></td>
<td valign="top">The sequence number of the journal entry that is the first
entry considered for retrieval.</td>
</tr>
</table>
<p><img src="delta.gif" alt="Start of change">
<strong>Note:</strong> If this key is specified, Key 3 (starting time stamp) cannot also be
specified.<img src="deltaend.gif" alt="End of change"></p>
<p><strong>Starting time stamp.</strong> The time stamp of the first journal
entry considered for retrieval. This Char(26) field is in the format YYYY-MM-DD-HH.MM.SS.UUUUUU where</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>YYYY</em></td>
<td valign="top">Year</td>
</tr>
<tr>
<td valign="top"><em>MM</em></td>
<td valign="top">Month</td>
</tr>
<tr>
<td valign="top"><em>DD</em></td>
<td valign="top">Day</td>
</tr>
<tr>
<td valign="top"><em>HH</em></td>
<td valign="top">Hours</td>
</tr>
<tr>
<td valign="top"><em>MM</em></td>
<td valign="top">Minutes</td>
</tr>
<tr>
<td valign="top"><em>SS</em></td>
<td valign="top">Seconds</td>
</tr>
<tr>
<td valign="top"><em>UUUUUU</em></td>
<td valign="top">Microseconds</td>
</tr>
</table>
<strong>Notes:</strong>
<ol>
<li>If this key is specified, Key 2 (starting sequence number) cannot also be
specified.<br>
<br>
</li>
<li>Note: If the system value QLEAPADJ (Leap year adjustment) is zero, then the
result returned will be in 1 microsecond granularity. If the system value
QLEAPADJ is greater than zero, then the result returned will be in
8 microsecond granularity.</li>
</ol>
<p><strong>User profile.</strong> Whether the journal entries being retrieved
are limited to the journal entries for a specified user profile name. The user
profile name is the user profile under which the job is run that deposited the
journal entries. Only journal entries for the specified user profile are
considered for retrieval. The default is *ALL. The possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*ALL</em></td>
<td valign="top">The retrieval is not limited to entries for a specific user
profile.</td>
</tr>
<tr>
<td valign="top"><em>user profile</em></td>
<td valign="top">The name of the user profile whose journal entries are
considered for retrieval. Only journal entries for this user profile are
considered for retrieval.</td>
</tr>
</table>
<h3><a name="HDRFILE">File Format</a></h3>
<table border width="80%">
<tr>
<th align="center" colspan="2" valign="bottom">Offset</th>
<th align="left" rowspan="2" valign="bottom">Type</th>
<th align="left" rowspan="2" valign="bottom">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%">&nbsp;</td>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Number in array</td>
</tr>
<tr>
<td align="left" colspan="4" valign="top"><strong>Note:</strong> These fields
repeat for each file member.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">File name</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Library name</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Member name</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</h3>
<p><strong>File name.</strong> The file name for which journal entries are to
be retrieved. The possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*ALLFILE</em></td>
<td valign="top">The search for the journal entries retrieved is not limited to
a specified file name.
All journal entries are converted for output,
regardless of which objects, if any, the entries are associated with.
If *ALLFILE is specified, the associated library name
and member name fields should be blank.</td>
</tr>
<tr>
<td valign="top"><em>*ALL</em></td>
<td valign="top">Journal entries for all physical files in the specified
library (the library name must be specified) for which journaled changes
currently in the specified journal receiver range are retrieved. If *ALL is
specified and the user does not have the required authority to all of the
files, an error occurs and the command ends.</td>
</tr>
<tr>
<td valign="top"><em>file name</em></td>
<td valign="top">The name of the physical database file for which journaled
changes are being retrieved.</td>
</tr>
</table>
<p><strong>Library name.</strong> The library name associated with the file
name for which journal entries are to be retrieved. The possible values
are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*LIBL</em></td>
<td valign="top">All libraries in the job's library list are searched until the
first match is found.</td>
</tr>
<tr>
<td valign="top"><em>*CURLIB</em></td>
<td valign="top">The current library for the job is searched. If no library is
specified as the current library for the job, the QGPL library is used.</td>
</tr>
<tr>
<td valign="top"><em>library name</em></td>
<td valign="top">The name of the library to be searched.</td>
</tr>
<tr>
<td valign="top"><em>blank</em></td>
<td valign="top">The library name field must be blank if *ALLFILE is specified
for the file name.</td>
</tr>
</table>
<p><strong>Member name.</strong> The file member name for which journal entries
are to be retrieved. The possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*FIRST</em></td>
<td valign="top">Entries for <img src="delta.gif" alt="Start of change">
the database file and <img src="deltaend.gif" alt="End of change">
the first member in the file are retrieved.</td>
</tr>
<tr>
<td valign="top"><em>*ALL</em></td>
<td valign="top">Entries for <img src="delta.gif" alt="Start of change">
the database file and all the <img src="deltaend.gif" alt="End of change">
currently existing members of the file are retrieved.</td>
</tr>
<tr>
<td valign="top"><img src="delta.gif" alt="Start of change"><em>*NONE</em>
</td>
<td valign="top">Only entries for the database file are retrieved. Entries
for members of the file are not retrieved.
<img src="deltaend.gif" alt="End of change"></td>
</tr>
<tr>
<td valign="top"><em>member name</em></td>
<td valign="top">The name of the file member for which entries are retrieved.
If the specified physical file does not exist on the system, specify either
*ALL or a specific file member name.
<p>If *ALL is specified for the file name, this member name is used for all
applicable files in the library.</p>
</td>
</tr>
<tr>
<td valign="top"><em>blank</em></td>
<td valign="top">The member name field must be blank if *ALLFILE is specified
for the file name.</td>
</tr>
</table>
<p><strong>Number in array.</strong> The number of file codes that are
specified for this key. The possible values are 1 through 300. The value must
be 1 if *ALLFILE or *ALL is specified for file name.</p>
<br>
<h3><a name="HDRJRNCDE">Journal Code Format</a></h3>
<table border width="80%">
<tr>
<th align="center" colspan="2" valign="bottom">Offset</th>
<th align="left" rowspan="2" valign="bottom">Type</th>
<th align="left" rowspan="2" valign="bottom">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%">&nbsp;</td>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Number in array</td>
</tr>
<tr>
<td align="left" colspan="4" valign="top"><strong>Note:</strong> These fields
repeat for each journal code.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Journal code value</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Journal code selection</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</h3>
<p><strong>Journal code value.</strong> The journal code for which journal
entries are to be retrieved. The possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*ALL</em></td>
<td valign="top">The retrieval of journal entries is not limited to entries
with a particular journal code.</td>
</tr>
<tr>
<td valign="top"><em>*CTL</em></td>
<td valign="top">Only journal entries deposited to control the journal
functions are to be retrieved (journal codes = J and F).</td>
</tr>
<tr>
<td valign="top"><em>code</em></td>
<td valign="top">The 1-character journal code for which journal entries are to
be retrieved.
<p>A list of journal codes that can be specified is provided in the <a href=
"../rzaki/rzakikickoff.htm">Journal management</a> topic. The 1-character code
should be left-justified.</p>
</td>
</tr>
</table>
<p><strong>Journal code selection.</strong> Whether other selection criteria
apply to this specified journal code. The possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*ALLSLT</em></td>
<td valign="top">The journal entries with the specified journal code are to be
retrieved only if all selection keys are satisfied.</td>
</tr>
<tr>
<td valign="top"><em>*IGNFILSLT</em></td>
<td valign="top">The journal entries with the specified journal code are to be
retrieved only if all selection keys except the file key are satisfied.
<strong>Note:</strong> This value is not valid for journal codes D, F, and R.
<img src="delta.gif" alt="Start of change">
This value is not valid if Key 17 (object), Key 18 (object path), or Key 19
(object file identifier) is specified.
<img src="deltaend.gif" alt="End of change"></td>
</tr>
<tr>
<td valign="top">
<em><img src="delta.gif" alt="Start of change">*IGNOBJSLT</em></td>
<td valign="top">The journal entries with the specified journal code are to be
retrieved only if all selection keys are satisfied except the object, object path,
object file identifier, directory subtree, and name pattern keys.
<strong>Note:</strong> This value is not valid for journal codes
B, D, E, F, Q, and R. This value is not valid if Key 16 (file) is specified.
<img src="deltaend.gif" alt="End of change"></td>
</tr>
<tr>
<td valign="top"><em>blank</em></td>
<td valign="top">The journal code selection must be blank if *ALL or *CTL is
specified for the journal code value.</td>
</tr>
</table>
<p><strong>Number in array.</strong> The number of journal codes that are
specified for this key. The possible values are 1 through 16. The value must be
1 if *ALL or *CTL is specified for the journal code value.</p>
<br>
<h3><a name="HDRENTTYP">Journal Entry Type Format</a></h3>
<table border width="80%">
<tr>
<th align="center" colspan="2" valign="bottom">Offset</th>
<th align="left" rowspan="2" valign="bottom">Type</th>
<th align="left" rowspan="2" valign="bottom">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%">&nbsp;</td>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Number in array</td>
</tr>
<tr>
<td align="left" colspan="4" valign="top"><strong>Note:</strong> These fields
repeat for each entry type.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Journal entry type</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</h3>
<p><strong>Journal entry types.</strong> The journal entry types for which
journal entries are to be retrieved. The possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*ALL</em></td>
<td valign="top">The retrieval of journal entries is not limited to entries
with a particular journal entry type.</td>
</tr>
<tr>
<td valign="top"><em>*RCD</em></td>
<td valign="top">Only journal entries that have an entry type for record level
operations are retrieved. The following entry types are valid: BR, DL, DR, IL,
PT, PX, UB, UP, and UR.</td>
</tr>
<tr>
<td valign="top"><em>entry type</em></td>
<td valign="top">The 2-character entry type that limits the search for the
journal entries to retrieve. Only journal entries that contain the specified
entry type are considered for retrieval. A list of valid entry types is in the
<a href="../rzaki/rzakikickoff.htm">Journal management</a> topic. The
2-character entry type should be left-justified.</td>
</tr>
</table>
<p><strong>Number in array.</strong> The number of journal entry types that are
specified for this key. The possible values are 1 through 300. The value must
be 1 if *ALL or *RCD is specified for journal entry type.</p>
<img src="delta.gif" alt="Start of change">
<br>
<h3><a name="HDRPATTERN">Name Pattern Format</a></h3>
<table border="1" width="80%" cellpadding="5">
<!-- cols="15 40 25 20" -->
<tr>
<th align="center" colspan="2" valign="bottom">Offset</th>
<th align="left" rowspan="2" valign="bottom">Type</th>
<th align="left" rowspan="2" valign="bottom">Field</th>
</tr>
<tr>
<th align="left" valign="bottom">Dec</th>
<th align="left" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Number in array</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(12)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="left" colspan="4" valign="top"><strong>Note:</strong> These fields
repeat for each pattern.</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">Length of this pattern entry</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Include or omit</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">PTR(16)</td>
<td align="left" valign="top">Pointer to pattern path structure</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</h3>
<p><strong>Include or omit.</strong> Whether the name pattern is included or
omitted from the retrieve operation.</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*INCLUDE</em></td>
<td valign="top">The objects that match the object name pattern are to be
included in determining what journal entries are retrieved, unless overridden
by an *OMIT specification.</td>
</tr>
<tr>
<td valign="top"><em>*OMIT</em></td>
<td valign="top">The objects that match the object name pattern are not to be
included in determining what journal entries are retrieved. This overrides an
*INCLUDE specification and is intended to be used to omit a subset of a
previously selected pattern.</td>
</tr>
</table>
<p><strong>Length of this pattern entry.</strong> The length of the current
pattern entry that can be used as the displacement from the start of this
pattern entry to the next pattern entry. The length must be a minimum of 32
bytes and must be a multiple of 16.</p>
<p><strong>Number in array.</strong> The number of patterns that are
specified for this key. The possible values are 1 through 20.</p>
<p><strong>Pointer to pattern path structure.</strong> A pointer to a path
structure.</p>
<p>This pointer must be 16-byte aligned. If not, unpredictable results may
occur.</p>
<p>Additional information about path name patterns is in the
<a href="../ifs/rzaaxkickoff.htm">Integrated file system</a> information
in the Files and file systems topic.</p>
<p>The pointer given points to a path name structure. If that path name
structure contains a pointer, it must be 16-byte aligned. If not, unpredictable
results may occur.</p>
<p>For more information on the pattern path name format, see <a href=
"../apiref/pns.htm">Path name format</a>.</p>
<p><strong>Reserved.</strong> A reserved field that must be set to hexadecimal
zeros.</p>
<br>
<h3><a name="HDROBJ">Object Format</a></h3>
<table border="1" width="80%" cellpadding="5">
<!-- cols="15 40 25 20" -->
<tr>
<th align="center" colspan="2" valign="bottom">Offset</th>
<th align="left" rowspan="2" valign="bottom">Type</th>
<th align="left" rowspan="2" valign="bottom">Field</th>
</tr>
<tr>
<th align="left" valign="bottom">Dec</th>
<th align="left" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Number in array</td>
</tr>
<tr>
<td align="left" colspan="4" valign="top"><strong>Note:</strong> These fields
repeat for each object.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object name</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Library name</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object type</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Member name, if *FILE specified</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</h3>
<p><strong>Library name.</strong> The library name associated with the object
for which journal entries are to be retrieved. The possible values
are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*LIBL</em></td>
<td valign="top">All libraries in the job's library list are searched until the
first match is found.</td>
</tr>
<tr>
<td valign="top"><em>*CURLIB</em></td>
<td valign="top">The current library for the job is searched. If no library is
specified as the current library for the job, the QGPL library is used.</td>
</tr>
<tr>
<td valign="top"><em>library name</em></td>
<td valign="top">The name of the library to be searched.</td>
</tr>
</table>
<p><strong>Member name, if *FILE specified.</strong> The file member name for
which journal entries are to be retrieved. If the specified object type was
not *FILE, the member name is ignored. The possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*FIRST</em></td>
<td valign="top">Entries for the database file and
the first member in the file are retrieved.</td>
</tr>
<tr>
<td valign="top"><em>*ALL</em></td>
<td valign="top">Entries for the database file and all the
currently existing members of the file are retrieved.</td>
</tr>
<tr>
<td valign="top"><em>*NONE</em>
</td>
<td valign="top">Only entries for the database file are retrieved. Entries
for members of the file are not retrieved.</td>
</tr>
<tr>
<td valign="top"><em>member name</em></td>
<td valign="top">The name of the file member for which entries are retrieved.
If the specified physical file does not exist on the system, specify either
*ALL or a specific file member name.
<p>If *ALL is specified for the file name, this member name is used for all
applicable files in the library.</p>
</td>
</tr>
</table>
<p><strong>Number in array.</strong> The number of object names that are
specified for this key. The possible values are 1 through 300.</p>
<p><strong>Object name.</strong> The object name for which journal entries are to
be retrieved. The possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*ALL</em></td>
<td valign="top">Journal entries for all objects of the specified object type
in the specified
library (the library name must be specified) for which journaled changes
currently in the specified journal receiver range are retrieved. If *ALL is
specified and the user does not have the required authority to all of the
objects, an error occurs and the command ends.</td>
</tr>
<tr>
<td valign="top"><em>object name</em></td>
<td valign="top">The name of the object for which journaled
changes are being retrieved.</td>
</tr>
</table>
<p><strong>Object type.</strong> The object type associated with the object for
which journal entries are to be retrieved. The possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*FILE</em></td>
<td valign="top">Entries for database files and database file members are
retrieved.</td>
</tr>
<tr>
<td valign="top"><em>*DTAARA</em></td>
<td valign="top">Entries for data areas are retrieved.</td>
</tr>
<tr>
<td valign="top"><em>*DTAQ</em></td>
<td valign="top">Entries for data queues are retrieved.</td>
</tr>
</table>
<br>
<h3><a name="HDROBJFID">Object File Identifier Format</a></h3>
<table border="1" width="80%" cellpadding="5">
<!-- cols="15 40 25 20" -->
<tr>
<th align="center" colspan="2" valign="bottom">Offset</th>
<th align="left" rowspan="2" valign="bottom">Type</th>
<th align="left" rowspan="2" valign="bottom">Field</th>
</tr>
<tr>
<th align="left" valign="bottom">Dec</th>
<th align="left" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Number in array</td>
</tr>
<tr>
<td align="left" colspan="4" valign="top"><strong>Note:</strong> These fields
repeat for each object.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(16)</td>
<td align="left" valign="top">File identifier</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</h3>
<p><strong>File identifier.</strong> The file identifier of the object
for which journal entries are to be retrieved.</p>
<p><strong>Number in array.</strong> The number of file identifiers that
are specified for this key. The possible values are 1 through 300.</p>
<br>
<h3><a name="HDROBJPATH">Object Path Format</a></h3>
<table border="1" width="80%" cellpadding="5">
<!-- cols="15 40 25 20" -->
<tr>
<th align="center" colspan="2" valign="bottom">Offset</th>
<th align="left" rowspan="2" valign="bottom">Type</th>
<th align="left" rowspan="2" valign="bottom">Field</th>
</tr>
<tr>
<th align="left" valign="bottom">Dec</th>
<th align="left" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Number in array</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(12)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="left" colspan="4" valign="top"><strong>Note:</strong> These fields
repeat for each object path name.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of this object path name entry</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Include or omit</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">PTR(16)</td>
<td align="left" valign="top">Pointer to an object path name</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</h3>
<p><strong>Include or omit.</strong> Whether names that match the path name
should be included or omitted from the operation. Note that in
determining whether a name matches a pattern, relative name patterns are always
treated as relative to the current working directory.</p>
<p><strong>Note:</strong> Key 20 (directory subtree) specifies whether the
subtrees are included or omitted.</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*INCLUDE</em></td>
<td valign="top">The objects that match the object name pattern are to be
included in determining what journal entries are retrieved, unless overridden
by an *OMIT specification.</td>
</tr>
<tr>
<td valign="top"><em>*OMIT</em></td>
<td valign="top">The objects that match the object name pattern are not to be
included in determining what journal entries are retrieved. This overrides an
*INCLUDE specification and is intended to be used to omit a subset of a
previously selected pattern.</td>
</tr>
</table>
<p><strong>Length of this object path name entry.</strong> The length of the
current object path name entry that can be used as the displacement from the
start of this path name entry to the next path name entry. The length must be a
minimum of 32 bytes and must be a multiple of 16.</p>
<p><strong>Number in array.</strong> The number of object path names that are
specified for this key. The possible values are 1 through 300.</p>
<p><strong>Pointer to an object path name.</strong> A pointer to the object path name
of the object for which journal entries are to be retrieved. All path names
are relative to the current directory at the time of the call.</p>
<p>In the last component of the path name, an asterisk (*) or a question mark
(?) can be used to search for patterns of names. The * tells the system to
search for names that have any number of characters in the position of the *
character. The ? tells the system to search for names that have a single
character in the position of the ? character. Symbolic links within the path
name will not be followed. If the path name begins with the tilde (~)
character, then the path is assumed to be relative to the appropriate home
directory.</p>
<p>Additional information about path name patterns is in the
<a href="../ifs/rzaaxkickoff.htm">Integrated file system</a> information
in the Files and file systems topic.</p>
<p>The pointer given points to a path name structure. If that path name
structure contains a pointer, it must be 16-byte aligned. If not, unpredictable
results may occur.</p>
<p>For more information on the path name format, see <a href="../apiref/pns.htm">Path
name format</a>.</p>
<p><strong>Reserved.</strong> A reserved field that must be set to hexadecimal
zeros.</p>
<img src="deltaend.gif" alt="End of change">
<br>
<h3><a name="HDRRCVRNG">Receiver Range Format</a></h3>
<table border width="80%">
<tr>
<th align="center" colspan="2" valign="bottom">Offset</th>
<th align="left" rowspan="2" valign="bottom">Type</th>
<th align="left" rowspan="2" valign="bottom">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%">&nbsp;</td>
<td align="center" valign="top" width="10%">&nbsp;</td>
<td align="left" valign="top" width="20%">CHAR(10)</td>
<td align="left" valign="top" width="60%">Starting journal receiver name</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Starting journal receiver library</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Ending journal receiver name</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Ending journal receiver library</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</h3>
<p><strong>Ending journal receiver library.</strong> The ending journal
receiver library for which journal entries are to be retrieved. The possible
values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*LIBL</em></td>
<td valign="top">All libraries in the job's library list are searched until the
first match is found.</td>
</tr>
<tr>
<td valign="top"><em>*CURLIB</em></td>
<td valign="top">The current library for the job is searched. If no library is
specified as the current library for the job, the QGPL library is used.</td>
</tr>
<tr>
<td valign="top"><em>library</em></td>
<td valign="top">The name of the library to be searched.</td>
</tr>
<tr>
<td valign="top"><em>blank</em></td>
<td valign="top">This field can be blank only if *CURCHAIN or *CURRENT is
specified.</td>
</tr>
</table>
<p><strong>Ending journal receiver name.</strong> The ending journal receiver
name for which journal entries are to be retrieved. The possible values
are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*CURRENT</em></td>
<td valign="top">The journal receiver that is attached when starting to
retrieve journal entries is used. If *CURRENT is specified, the associated
library name field should be blank.</td>
</tr>
<tr>
<td valign="top"><em>name</em></td>
<td valign="top">The name of the last journal receiver that contains entries to
be retrieved. If a name is specified, the ending journal receiver name field
must be specified also. If the end of the receiver chain is reached before a
receiver of this name is found, an error message is sent and no journal entry
is retrieved.</td>
</tr>
<tr>
<td valign="top"><em>blank</em></td>
<td valign="top">This field can be blank only if *CURCHAIN or *CURRENT is
specified.</td>
</tr>
</table>
<p><strong>Starting journal receiver library.</strong> The starting journal
receiver library for which journal entries are to be retrieved. The possible
values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*LIBL</em></td>
<td valign="top">All libraries in the job's library list are searched until the
first match is found.</td>
</tr>
<tr>
<td valign="top"><em>*CURLIB</em></td>
<td valign="top">The current library for the job is searched. If no library is
specified as the current library for the job, the QGPL library is used.</td>
</tr>
<tr>
<td valign="top"><em>library</em></td>
<td valign="top">The name of the library to be searched.</td>
</tr>
<tr>
<td valign="top"><em>blank</em></td>
<td valign="top">This field can be blank only if *CURCHAIN or *CURRENT is
specified.</td>
</tr>
</table>
<p><strong>Starting journal receiver name.</strong> The starting journal
receiver name for which journal entries are to be retrieved. The possible
values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*CURRENT</em></td>
<td valign="top">The journal receiver that is attached when starting to
retrieve journal entries is used. If *CURRENT is specified, the associated
library name and ending journal receiver fields should be blank.</td>
</tr>
<tr>
<td valign="top"><em>*CURCHAIN</em></td>
<td valign="top">The journal receiver chain that includes the journal receiver
that is attached when starting to retrieve journal entries is used. This
receiver chain does not cross a break in the chain. If there is a break in the
chain, the receiver range is from the most recent break in the chain through
the receiver that is attached when starting to retrieve journal entries. If
*CURCHAIN is specified, the associated library name and ending journal receiver
fields should be blank.</td>
</tr>
<tr>
<td valign="top"><em>name</em></td>
<td valign="top">The name of the first journal receiver that contains entries
to be retrieved.</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRRJNEFMT">RJNE0100 Format</a></h3>
<p>The structure of the information returned is determined by the specified
format name. For detailed descriptions of the fields, see <a href=
"#HDRRJRNEFL">Field Descriptions</a>. The retrieved data is composed of four
different sections as follows:<br>
<br>
</p>
<ul>
<li>A header section. Only one header section is returned per call. See <a
href="#TBLJHDR">Header</a>.</li>
<li>Journal entry sections. These three sections will be repeated for each
journal entry retrieved.
<ul>
<li>Header section of journal entry. See <a href="#TBLJEHDR">This journal
entry's header with format RJNE0100</a>.</li>
<li>Null value indicators section of journal entry. This section will be one of
the two following formats, depending on what was specified for the null value
indicators key.<br>
<br>
<ul>
<li>If the user did not specify the null value indicators key or specified null
value indicators length(*VARLEN), see <a href="#TBLJENVIV">This journal entry's
null value indicators if Null Value Indicators (*VARLEN) specified</a>.</li>
<li>If the user specified null value indicators length(field length), see <a
href="#TBLJENVIF">This journal entry's null value indicators if Null Value
Indicators (field length) specified</a>.
<p><strong>Note:</strong> If a null value indicators length of 0 was specified,
then this section will not appear in the journal entry data.</p>
</li>
</ul>
<br>
<br>
</li>
<li>Entry specific data section of journal entry. See <a href="#TBLJEESD">This
journal entry's entry specific data</a>.</li>
</ul>
</li>
</ul>
<br>
<p><strong><a name="TBLJHDR">Header</a></strong><br>
</p>
<table border width="80%">
<tr>
<th align="center" colspan="2" valign="bottom">Offset</th>
<th align="left" rowspan="2" valign="bottom">Type</th>
<th align="left" rowspan="2" valign="bottom">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">Offset to first journal entry header</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 entries retrieved</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Continuation handle</td>
</tr>
</table>
<br>
<p><strong> <a name="TBLJEHDR">This journal entry's header with format
RJNE0100</a></strong><br>
</p>
<table border width="80%">
<tr>
<th align="center" colspan="2" valign="bottom">Offset</th>
<th align="left" rowspan="2" valign="bottom">Type</th>
<th align="left" rowspan="2" valign="bottom">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%">Displacement to next journal entry's
header</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">Displacement to this journal entry's null value
indicators</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">Displacement to this journal entry's entry
specific data</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Pointer handle</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">CHAR(20)</td>
<td align="left" valign="top">Sequence number</td>
</tr>
<tr>
<td align="center" valign="top">36</td>
<td align="center" valign="top">24</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Journal code</td>
</tr>
<tr>
<td align="center" valign="top">37</td>
<td align="center" valign="top">25</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Entry type</td>
</tr>
<tr>
<td align="center" valign="top">39</td>
<td align="center" valign="top">27</td>
<td align="left" valign="top">CHAR(26)</td>
<td align="left" valign="top">Time stamp</td>
</tr>
<tr>
<td align="center" valign="top">65</td>
<td align="center" valign="top">41</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Job name</td>
</tr>
<tr>
<td align="center" valign="top">75</td>
<td align="center" valign="top">4B</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">User name</td>
</tr>
<tr>
<td align="center" valign="top">85</td>
<td align="center" valign="top">55</td>
<td align="left" valign="top">CHAR(6)</td>
<td align="left" valign="top">Job number</td>
</tr>
<tr>
<td align="center" valign="top">91</td>
<td align="center" valign="top">5B</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Program name</td>
</tr>
<tr>
<td align="center" valign="top">101</td>
<td align="center" valign="top">65</td>
<td align="left" valign="top">CHAR(30)</td>
<td align="left" valign="top">Object</td>
</tr>
<tr>
<td align="center" valign="top">131</td>
<td align="center" valign="top">83</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Count/relative record number</td>
</tr>
<tr>
<td align="center" valign="top">141</td>
<td align="center" valign="top">8D</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Indicator flag</td>
</tr>
<tr>
<td align="center" valign="top">142</td>
<td align="center" valign="top">8E</td>
<td align="left" valign="top">CHAR(20)</td>
<td align="left" valign="top">Commit cycle identifier</td>
</tr>
<tr>
<td align="center" valign="top">162</td>
<td align="center" valign="top">A2</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">User profile</td>
</tr>
<tr>
<td align="center" valign="top">172</td>
<td align="center" valign="top">AC</td>
<td align="left" valign="top">CHAR(8)</td>
<td align="left" valign="top">System name</td>
</tr>
<tr>
<td align="center" valign="top">180</td>
<td align="center" valign="top">B4</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Journal identifier</td>
</tr>
<tr>
<td align="center" valign="top">190</td>
<td align="center" valign="top">BE</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Referential constraint</td>
</tr>
<tr>
<td align="center" valign="top">191</td>
<td align="center" valign="top">BF</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Trigger</td>
</tr>
<tr>
<td align="center" valign="top">192</td>
<td align="center" valign="top">C0</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Incomplete data</td>
</tr>
<tr>
<td align="center" valign="top">193</td>
<td align="center" valign="top">C1</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Object name indicator</td>
</tr>
<tr>
<td align="center" valign="top">194</td>
<td align="center" valign="top">C2</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Ignore during APYJRNCHG or RMVJRNCHG</td>
</tr>
<tr>
<td align="center" valign="top">195</td>
<td align="center" valign="top">C3</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Minimized entry specific data</td>
</tr>
</table>
<p><strong><a name="TBLJENVIV">This journal entry's null value indicators if
Null Value Indicators (*VARLEN) specified</a></strong><br>
</p>
<table border width="80%">
<tr>
<th align="center" colspan="2" valign="bottom">Offset</th>
<th align="left" rowspan="2" valign="bottom">Type</th>
<th align="left" rowspan="2" valign="bottom">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%">Length of null value indicators</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Null value indicators</td>
</tr>
</table>
<p><strong><a name="TBLJENVIF">This journal entry's null value indicators if
Null Value Indicators (field length) specified</a></strong><br>
</p>
<table border width="80%">
<tr>
<th align="center" colspan="2" valign="bottom">Offset</th>
<th align="left" rowspan="2" valign="bottom">Type</th>
<th align="left" rowspan="2" valign="bottom">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(specified Null value indicators
field length)</td>
<td align="left" valign="top" width="60%">Null value indicators</td>
</tr>
</table>
<br>
<p><strong><a name="TBLJEESD">This journal entry's entry specific
data</a></strong><br>
</p>
<table border width="80%">
<tr>
<th align="center" colspan="2" valign="bottom">Offset</th>
<th align="left" rowspan="2" valign="bottom">Type</th>
<th align="left" rowspan="2" valign="bottom">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(5)</td>
<td align="left" valign="top" width="60%">Length of entry specific data</td>
</tr>
<tr>
<td align="center" valign="top">5</td>
<td align="center" valign="top">5</td>
<td align="left" valign="top">CHAR(11)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="center" valign="top">16</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Entry specific data</td>
</tr>
</table>
<br><br>
<h3><a name="HDRRJNEFMT2">RJNE0200 Format</a></h3>
<p>The structure of the information returned is determined by the specified
format name. For detailed descriptions of the fields, see <a href=
"#HDRRJRNEFL">Field Descriptions</a>. The retrieved data is composed as
follows:<br>
</p>
<ul>
<li>A header section. Only one header section is returned per call. See <a
href="#TBLJHDR6">Header</a>.</li>
<li>Journal entry sections. These optional sections will be repeated for each
journal entry retrieved.
<ul>
<li>Header section of journal entry. See <a href="#TBLJEHDR2">This journal
entry's header with format RJNE0200</a>.</li>
<li>Transaction identifier section of journal entry if the displacement to
transaction identifier is not 0. See the QSYSINC/H.XA header file for the
layout of this data.</li>
<li>Logical unit of work section of journal entry if the displacement to
logical unit of work is not 0. See <a href="#TBLJELUW">This journal entry's
Logical unit of work if the displacement to logical unit of work is not
0</a>.</li>
<li>Receiver information section of journal entry if the displacement to
receiver information is not 0. See <a href="#TBLJERCV">This journal entry's
receiver information if the displacement to receiver information is not
0</a>.</li>
<li>Null value indicators section of journal entry if the displacement to null
values indicators is not 0. This section will be one of the two following
formats, depending on what was specified for the null value indicators key
<ul>
<li>If the user did not specify the null value indicators key or specified null
value indicators length(*VARLEN), see <a href="#TBLJENVIV">This journal entry's
null value indicators if Null Value Indicators (*VARLEN) specified</a>.</li>
<li>If the user specified null value indicators length(field length), see <a
href="#TBLJENVIF">This journal entry's null value indicators if Null Value
Indicators (field length) specified</a>.
<p><strong>Note:</strong> If a null value indicators length of 0 was specified,
then this section will not appear in the journal entry data.</p>
</li>
</ul>
</li>
<li>Entry specific data section of journal entry if the displacement to entry
specific data is not 0. See <a href="#TBLJEESD">This journal entry's entry
specific data</a>.</li>
</ul>
</li>
</ul>
<p><strong><a name="TBLJHDR6">Header</a></strong><br>
</p>
<table border width="80%">
<tr>
<th align="center" colspan="2" valign="bottom">Offset</th>
<th align="left" rowspan="2" valign="bottom">Type</th>
<th align="left" rowspan="2" valign="bottom">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">Offset to first journal entry header</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 entries retrieved</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Continuation indicator</td>
</tr>
<tr>
<td align="center" valign="top">13</td>
<td align="center" valign="top">D</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Continuation starting receiver</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">Continuation starting receiver library</td>
</tr>
<tr>
<td align="center" valign="top">33</td>
<td align="center" valign="top">21</td>
<td align="left" valign="top">CHAR(20)</td>
<td align="left" valign="top">Continuation starting sequence number</td>
</tr>
<tr>
<td align="center" valign="top">53</td>
<td align="center" valign="top">35</td>
<td align="left" valign="top">CHAR(11)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<p><strong><a name="TBLJEHDR2">This journal entry's header with format
RJNE0200</a></strong><br>
</p>
<table border width="80%">
<tr>
<th align="center" colspan="2" valign="bottom">Offset</th>
<th align="left" rowspan="2" valign="bottom">Type</th>
<th align="left" rowspan="2" valign="bottom">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), UNSIGNED</td>
<td align="left" valign="top" width="60%">Displacement to next journal entry's
header</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Displacement to this journal entry's null value
indicators</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Displacement to this journal entry's entry
specific data</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Displacement to this journal entry's transaction
identifier</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Displacement to this journal entry's logical unit
of work</td>
</tr>
<tr>
<td align="center" valign="top">20</td>
<td align="center" valign="top">14</td>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Displacement to this journal entry's receiver
information</td>
</tr>
<tr>
<td align="center" valign="top">24</td>
<td align="center" valign="top">18</td>
<td align="left" valign="top">BINARY(8), UNSIGNED</td>
<td align="left" valign="top">Sequence number</td>
</tr>
<tr>
<td align="center" valign="top">32</td>
<td align="center" valign="top">20</td>
<td align="left" valign="top">BINARY(8), UNSIGNED</td>
<td align="left" valign="top">Unformatted Time stamp</td>
</tr>
<tr>
<td align="center" valign="top">40</td>
<td align="center" valign="top">28</td>
<td align="left" valign="top">BINARY(8), UNSIGNED</td>
<td align="left" valign="top">Thread identifier</td>
</tr>
<tr>
<td align="center" valign="top">48</td>
<td align="center" valign="top">30</td>
<td align="left" valign="top">BINARY(8), UNSIGNED</td>
<td align="left" valign="top">System sequence number</td>
</tr>
<tr>
<td align="center" valign="top">56</td>
<td align="center" valign="top">38</td>
<td align="left" valign="top">BINARY(8), UNSIGNED</td>
<td align="left" valign="top">Count/relative record number</td>
</tr>
<tr>
<td align="center" valign="top">64</td>
<td align="center" valign="top">40</td>
<td align="left" valign="top">BINARY(8), UNSIGNED</td>
<td align="left" valign="top">Commit cycle indentifier</td>
</tr>
<tr>
<td align="center" valign="top">72</td>
<td align="center" valign="top">48</td>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Pointer handle</td>
</tr>
<tr>
<td align="center" valign="top">76</td>
<td align="center" valign="top">4C</td>
<td align="left" valign="top">BINARY(2), UNSIGNED</td>
<td align="left" valign="top">Remote port</td>
</tr>
<tr>
<td align="center" valign="top">78</td>
<td align="center" valign="top">4E</td>
<td align="left" valign="top">BINARY(2), UNSIGNED</td>
<td align="left" valign="top">Arm number</td>
</tr>
<tr>
<td align="center" valign="top">80</td>
<td align="center" valign="top">50</td>
<td align="left" valign="top">BINARY(2), UNSIGNED</td>
<td align="left" valign="top">Program library ASP number</td>
</tr>
<tr>
<td align="center" valign="top">82</td>
<td align="center" valign="top">52</td>
<td align="left" valign="top">CHAR(16)</td>
<td align="left" valign="top">Remote Address</td>
</tr>
<tr>
<td align="center" valign="top">98</td>
<td align="center" valign="top">62</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Journal code</td>
</tr>
<tr>
<td align="center" valign="top">99</td>
<td align="center" valign="top">63</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Entry type</td>
</tr>
<tr>
<td align="center" valign="top">101</td>
<td align="center" valign="top">65</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Job name</td>
</tr>
<tr>
<td align="center" valign="top">111</td>
<td align="center" valign="top">6F</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">User name</td>
</tr>
<tr>
<td align="center" valign="top">121</td>
<td align="center" valign="top">79</td>
<td align="left" valign="top">CHAR(6)</td>
<td align="left" valign="top">Job number</td>
</tr>
<tr>
<td align="center" valign="top">127</td>
<td align="center" valign="top">7F</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Program name</td>
</tr>
<tr>
<td align="center" valign="top">137</td>
<td align="center" valign="top">89</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Program library name</td>
</tr>
<tr>
<td align="center" valign="top">147</td>
<td align="center" valign="top">93</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Program library ASP device name</td>
</tr>
<tr>
<td align="center" valign="top">157</td>
<td align="center" valign="top">9D</td>
<td align="left" valign="top">CHAR(30)</td>
<td align="left" valign="top">Object</td>
</tr>
<tr>
<td align="center" valign="top">187</td>
<td align="center" valign="top">BB</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">User profile</td>
</tr>
<tr>
<td align="center" valign="top">197</td>
<td align="center" valign="top">C5</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Journal identifier</td>
</tr>
<tr>
<td align="center" valign="top">207</td>
<td align="center" valign="top">CF</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Address family</td>
</tr>
<tr>
<td align="center" valign="top">208</td>
<td align="center" valign="top">D0</td>
<td align="left" valign="top">CHAR(8)</td>
<td align="left" valign="top">System name</td>
</tr>
<tr>
<td align="center" valign="top">216</td>
<td align="center" valign="top">D8</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Indicator flag</td>
</tr>
<tr>
<td align="center" valign="top">217</td>
<td align="center" valign="top">D9</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Object name indicator</td>
</tr>
<tr>
<td align="center" valign="top">218(0)</td>
<td align="center" valign="top">DA(0)</td>
<td align="left" valign="top">BIT(1)</td>
<td align="left" valign="top">Referential constraint</td>
</tr>
<tr>
<td align="center" valign="top">218(1)</td>
<td align="center" valign="top">DA(1)</td>
<td align="left" valign="top">BIT(1)</td>
<td align="left" valign="top">Trigger</td>
</tr>
<tr>
<td align="center" valign="top">218(2)</td>
<td align="center" valign="top">DA(2)</td>
<td align="left" valign="top">BIT(1)</td>
<td align="left" valign="top">Incomplete data</td>
</tr>
<tr>
<td align="center" valign="top">218(3)</td>
<td align="center" valign="top">DA(3)</td>
<td align="left" valign="top">BIT(1)</td>
<td align="left" valign="top">Ignored during APYJRNCHG or RMVJRNCHG</td>
</tr>
<tr>
<td align="center" valign="top">218(4)</td>
<td align="center" valign="top">DA(4)</td>
<td align="left" valign="top">BIT(1)</td>
<td align="left" valign="top">Minimized entry specific data</td>
</tr>
<tr>
<td align="center" valign="top">
<img src="delta.gif" alt="Start of change">
218(5)</td>
<td align="center" valign="top">DA(5)</td>
<td align="left" valign="top">BIT(1)</td>
<td align="left" valign="top">File type indicator</td>
</tr>
<tr>
<td align="center" valign="top">218(6)</td>
<td align="center" valign="top">DA(6)</td>
<td align="left" valign="top">BIT(1)</td>
<td align="left" valign="top">Minimized on field boundaries</td>
</tr>
<tr>
<td align="center" valign="top">218(7)</td>
<td align="center" valign="top">DA(7)</td>
<td align="left" valign="top">BIT(1)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">219</td>
<td align="center" valign="top">DB</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object type</td>
</tr>
<tr>
<td align="center" valign="top">229</td>
<td align="center" valign="top">E5</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">229</td>
<td align="center" valign="top">E8</td>
<td align="left" valign="top">BINARY(4), UNSIGNED</td>
<td align="left" valign="top">Nested commit level
<img src="deltaend.gif" alt="End of change"></td>
</tr>
</table>
<p><strong><a name="TBLJELUW">This journal entry's Logical unit of work if the
displacement to logical unit of work is not 0</a></strong><br>
</p>
<table border width="80%">
<tr>
<th align="center" colspan="2" valign="bottom">Offset</th>
<th align="left" rowspan="2" valign="bottom">Type</th>
<th align="left" rowspan="2" valign="bottom">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(39)</td>
<td align="left" valign="top" width="60%">Logical unit of work</td>
</tr>
</table>
<p><strong><a name="TBLJERCV">This journal entry's receiver information if the
displacement to receiver information is not 0</a></strong><br>
</p>
<table border width="80%">
<tr>
<th align="center" colspan="2" valign="bottom">Offset</th>
<th align="left" rowspan="2" valign="bottom">Type</th>
<th align="left" rowspan="2" valign="bottom">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%">Receiver name</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">10</td>
<td align="center" valign="top" width="10%">A</td>
<td align="left" valign="top" width="20%">CHAR(10)</td>
<td align="left" valign="top" width="60%">Receiver library name</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">20</td>
<td align="center" valign="top" width="10%">14</td>
<td align="left" valign="top" width="20%">CHAR(10)</td>
<td align="left" valign="top" width="60%">Receiver library ASP device name</td>
</tr>
<tr>
<td align="center" valign="top" width="10%">30</td>
<td align="center" valign="top" width="10%">1E</td>
<td align="left" valign="top" width="20%">BINARY(2)</td>
<td align="left" valign="top" width="60%">Receiver library ASP number</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRRJRNEFL">Field Descriptions</a></h3>
<p> <strong>Address family.</strong> The address family identifies the format
of the remote address for this journal entry. If RCVSIZOPT(*MINFIXLEN) was in
effect or FIXLENDTA(*RMTADR) was not in effect for the journal when the journal
receiver that contains this journal entry was attached, then 0 will be returned
for the address family.</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">This entry was not associated with any remote address.</td>
</tr>
<tr>
<td valign="top"><em>4</em></td>
<td valign="top">The format of the remote address is internet protocol version
4. <img src="delta.gif" alt="Start of change">
The remote address is returned as a 16-byte character field.
<img src="deltaend.gif" alt="End of change">
</td>
</tr>
<tr>
<td valign="top"><em>6</em></td>
<td valign="top">The format of the remote address is internet protocol version
6. <img src="delta.gif" alt="Start of change">
The remote address is returned as a 128-bit binary number.
<img src="deltaend.gif" alt="End of change">
</td>
</tr>
</table>
<p><strong>Arm number.</strong> The number of the disk arm that contains the
journal entry.</p>
<p><strong>Bytes returned.</strong> The number of bytes of data returned.</p>
<p>If an error message is returned, other than error messages CPF3CF1, CPF3C90,
CPF6948, CPF6949 or CPF9872, this field should be checked to determine if
partial journal entry information has been returned.</p>
<p><strong>Commit cycle identifier.</strong> A number that identifies the
commit cycle. This is either a Char(20) or Binary(8) field and if Char(20), it
is treated as Zoned(20,0). A commit cycle is from one commit or rollback
operation to another.</p>
<p>The commit cycle identifier is found in every journal entry that is
associated with a commitment transaction. If the journal entry was not made as
part of a commitment transaction, this field is zero.</p>
<p><strong>Continuation handle.</strong> An indicator for more journal entries
available that meet any specified selection criteria. The possible values
are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">All the journal entries that match the search criteria are
returned to this structure.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">There are more journal entries available in the specified
receiver range that match the search criteria, but there is no room available
in the return structure. You may request more data by calling the API again,
and by specifying one more than the sequence number of the last journal entry
returned as the starting sequence number on the next API call as long as there
has been no reset of the sequence number within the receiver range.</td>
</tr>
</table>
<p><strong>Note:</strong> If an error message was returned and partial journal
entry information was returned, this field may not correctly indicate whether
additional journal entries are available.</p>
<p><strong>Continuation indicator.</strong> An indicator for more journal
entries available that meet the specified selection criteria. The possible
values are:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">All the journal entries that match the search criteria are
returned to this structure.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">There are more journal entries available in the specified
receiver range that match the search criteria, but there is no room available
in the return structure. You may request more data by calling the API again,
and by specifying the following as part of your selection criteria:
<table cellpadding="5">
<tr>
<td valign="top"><em>Starting receiver name</em></td>
<td valign="top">Set from the value returned in Continuation starting
receiver.</td>
</tr>
<tr>
<td valign="top"><em>Starting receiver library name</em></td>
<td valign="top">Set from the value returned in Continuation starting receiver
library.</td>
</tr>
<tr>
<td valign="top"><em>Starting sequence number</em></td>
<td valign="top">Set from the value returned in Continuation starting sequence
number.</td>
</tr>
</table>
</td>
</tr>
</table>
<p><strong>Note:</strong> If an error message was returned and partial journal
entry information was returned, this field may not correctly indicate whether
additional journal entries are available.</p>
<p><strong>Continuation starting receiver library.</strong> When the
continuation indicator is <em>1</em>, then this field will identify the name of
the library that contains the receiver that holds the next journal entry that
could be retrieved with the same selection criteria on a subsequent call to
this API. When used in conjunction with the continuation starting receiver name
and the continuation starting sequence number, a subsequent API call will
ensure that no journal entries in the given receiver range will be skipped,
irrespective of any reset of sequence numbers that may have taken place within
the given receiver range. When the continuation indicator is <em>0</em>, then
this field will be blanks.</p>
<p><strong>Continuation starting receiver.</strong> When the continuation
indicator is <em>1</em>, then this field will identify the name of the receiver
that holds the next journal entry that could be retrieved with the same
selection criteria on a subsequent call to this API. When used in conjunction
with the continuation starting receiver library name and the continuation
starting sequence number, a subsequent API call will ensure that no journal
entries in the given receiver range will be skipped, irrespective of any reset
of sequence numbers that may have taken place within that receiver range. When
the continuation indicator is <em>0</em>, then this field will be blanks.</p>
<p><strong>Continuation starting sequence number.</strong> When the
continuation indicator is <em>1</em>, then this field will identify the
sequence number of the next journal entry that could be retrieved with the same
selection criteria on a subsequent call to this API. When used in conjunction
with the continuation starting receiver library name and the continuation
starting receiver name, a subsequent API call will ensure that no journal
entries in the given receiver range will be skipped, irrespective of any reset
of sequence numbers that may have taken place within that receiver range. When
the continuation indicator is <em>0</em>, then this field will be blanks. This
is a Char(20) field that is treated as Zoned(20,0).</p>
<p><strong>Count/relative record number.</strong> Contains either the relative
record number (RRN) of the record that caused the journal entry or a count that
is pertinent to the specific type of journal entry. See the Journal Entry
Information appendix in the <a href="../rzaki/rzakikickoff.htm">Journal
management</a> topic to see specific values for this field, if applicable. This
is either a Char(10) or a unsigned Binary(8) field and if Char(10), it is
treated as Zoned(10,0).</p>
<p><strong>Displacement to next journal entry's header.</strong> The
displacement from the start of this journal entry's header section to the start
of the journal entry header section for the next journal entry.</p>
<p><strong>Displacement to this journal entry's entry specific data.</strong>
The displacement from the start of this journal entry's header section to the
start of the entry specific data section for this journal entry. A value of 0
indicates that this data is not returned for this journal entry.</p>
<p> <strong>Displacement to this journal entry's logical unit of work.</strong>
The displacement from the start of this journal entry's header section to the
start of the logical unit of work section for this journal entry. A value of 0
indicates that this data is not returned for this journal entry.</p>
<p><strong>Displacement to this journal entry's receiver information.</strong>
The displacement from the start of this journal entry's header section to the
start of the receiver information section for this journal entry. A value of 0
indicates that this data is not returned for this journal entry. Journal
receiver information is returned only for the first entry in a buffer and when
the receiver information changes from one journal entry to the next. If no
journal receiver information is returned, it can be assumed that the receiver
information from the previous entry will apply to the current journal
entry.</p>
<p><strong>Displacement to this journal entry's null value indicators.</strong>
The displacement from the start of this journal entry's header section to the
start of the null value indicators section for this journal entry. A value of 0
indicates that this data is not returned for this journal entry.</p>
<p> <strong>Displacement to this journal entry's transaction
identifier.</strong> The displacement from the start of this journal entry's
header section to the start of the transaction identifier section for this
journal entry. A value of 0 indicates that this data is not returned for this
journal entry.</p>
<p><strong>Entry specific data.</strong> The entry specific data returned for
this journal entry. See the <a href="../rzaki/rzakikickoff.htm">Journal
management</a> topic for the layouts of this information for each journal entry
type.</p>
<p>If the incomplete data indicator is on, then this data contains pointers to
additional journal entry data. See <a href="#HDRENTPTR">Use of Pointers within
Entry Specific Data</a> for a discussion on the use of these pointers.</p>
<p><strong>Entry type.</strong> Further identifies the type of user-created or
system-created entry. See the Journal Entry Information in the <a href=
"../rzaki/rzakikickoff.htm">Journal management</a> topic for descriptions of
the entry types.</p>
<p><strong>Entry type.</strong> Further identifies the type of user-created or
system-created entry. See the Journal Entry Information in the <a href=
"../rzaki/rzakikickoff.htm">Journal management</a> topic for descriptions of
the entry types.</p>
<img src="delta.gif" alt="Start of change">
<p><strong>File type indicator.</strong> Identifies whether or not this
journal entry is associated with a logical file. The value
will be 0 if the value for object type is not *FILE.
The possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">This entry is not associated with a logical file.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">This entry is associated with a logical file.</td>
</tr>
</table>
<img src="deltaend.gif" alt="End of change">
<p><strong>Ignore during APYJRNCHG or RMVJRNCHG.</strong> Whether this entry is
ignored during a Apply Journaled Changes (APYJRNCHG) or Remove Journaled
Changed (RMVJRNCHG) command. The possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">This entry will not be ignored during APYJRNCHG or
RMVJRNCHG</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">This entry will be ignored during APYJRNCHG or RMVJRNCHG</td>
</tr>
</table>
<p><strong>Incomplete data.</strong> Whether this entry has data that must be
additionally retrieved using a pointer returned for the missing information.
See <a href="#HDRENTPTR">Use of Pointers within Entry Specific Data</a> for
more information. The possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">This entry does not have any pointers included.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">This entry does have pointers included.</td>
</tr>
</table>
<p><strong>Indicator flag.</strong> An indicator for the operation. See the
Journal Entry Information appendix in the <a href="../rzaki/rzakikickoff.htm">
Journal management</a> topic to see specific values for this field, if
applicable.</p>
<p><strong>Job name.</strong> The name of the job that added the entry.</p>
<p><strong>Notes:</strong></p>
<ol>
<li>If RCVSIZOPT(*MINFIXLEN) was in effect or FIXLENDTA(*JOB) was not in effect
for the journal when the journal receiver that contains this journal entry was
attached, then *OMITTED is returned for the job name.</li>
<li>If the journal entry was deposited by a system task that was not associated
with a job, then *TDE will be returned for the job name.</li>
<li>If the job name was not available when the journal entry was deposited,
then *NONE is returned for the job name.</li>
</ol>
<p><strong>Job number.</strong> The job number of the job that added the
entry.</p>
<p><strong>Notes:</strong></p>
<ol>
<li>If the RCVSIZOPT(*MINFIXLEN) was in effect or FIXLENDTA(*JOB) was not was
in effect for the journal when the journal receiver that contains the journal
entry was attached, then zeros are returned for the job number.</li>
<li>If the journal entry was deposited by a system task that was not associated
with a job, then zeros will be returned for the job number.</li>
<li>If the job name was not available when the journal entry was deposited,
then zeros are returned for the job number.</li>
</ol>
<p><strong>Journal code.</strong> The primary category of the journal entry.
See the Journal Entry Information section in the <a href=
"../rzaki/rzakikickoff.htm">Journal management</a> topic for descriptions of
the journal codes.</p>
<p><strong>Journal identifier.</strong> The journal identifier (JID) for the
object. When journaling is started for an object, the system assigns a unique
JID to that object. The JID remains constant even if the object is renamed or
moved. If journaling is stopped, however, there is no guarantee that the JID
will be the same when journaling is started again for the same object.</p>
<p>If no JID is associated with the entry, this field has hexadecimal
zeros.</p>
<p><strong>Length of entry specific data.</strong> The length of the entry
specific data returned for this journal entry. This Char(5) field is treated as
Zoned(5,0). If the entry specific data includes any pointers to additional
data, the length of that additional data in not included in this value. See <a
href="#HDRENTPTR">Use of Pointers within Entry Specific Data</a> for more
information.</p>
<p><strong>Length of null value indicators.</strong> The length of the null
value indicators returned for this journal entry.</p>
<p> <strong>Logical unit of work.</strong> The logical unit of work identifies
entries to be associated with a given unit of work, usually within a commit
cycle. If RCVSIZOPT(*MINFIXLEN) was in effect or FIXLENDTA(*LUW) was not in
effect for the journal when the journal receiver that contains this journal
entry was attached, then no logical unit of work will be returned for this
entry and the displacement to this entry's logical unit of work will be
0.</p>
<p><strong>Minimized entry specific data.</strong> Whether this entry has
minimized entry specific data as a result of the journal having specified
MINENTDTA for the object type of the entry. The possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">This entry has complete entry specific data.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">This entry has minimized entry specific data.</td>
</tr>
</table>
<img src="delta.gif" alt="Start of change">
<p><strong>Minimized on field boundaries.</strong> Whether this entry
has minimized entry specific data on field boundaries as a result of
the journal having been specified with MINENTDTA(*FLDBDY). The possible
values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">This entry does not have minimized entry specific data
on field boundaries.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">This entry has minimized entry specific data on field
boundaries. Therefore, the entry specific data can be viewable and may
be used for auditing purposes. In order for the entry specific data to
be viewable, a value of *YES must have be specified on Key 22 (format
minimized data). If a value of *YES was specified on Key 22, then the
fields that were changed are accurately reflected. The fields that were
not changed and were not recorded return default data and are indicated
by a value of '9' in the null value indicators field.</td>
</tr>
</table>
<p><strong>Nested commit level.</strong> Indicates the nesting level
of the commit cycle that was open when a journal entry representing an
object level change was deposited. The primary commit cycle is considered
the first level of nesting and subsequent save point entries that were
deposited prior to this entry correspond to additional levels of nesting.
This field will be zero if any of the following are true:</p>
<ul>
<li>This journal entry does not represent an object level change (object
level changes are the result of using commands like:
CRTPF, CHGPF, MOVOBJ, and RNMOBJ).</li>
<li>This journal entry was not deposited under commitment control.</li>
<li>This journal entry was deposited on a release prior to V5R4M0.</li>
</ul>
<img src="deltaend.gif" alt="End of change">
<p><strong>Null value indicators.</strong> The null value indicators returned
for this journal entry. If the record image has not been minimized or has been
minimized on field boundaries in the entry specific data, then there is one
null value indicator for each field in the physical file. Each indicator is
one character long and has one of the following values:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">Corresponding field is not null.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">Corresponding field is null.</td>
</tr>
<tr>
<td valign="top"><em>9</em></td>
<td valign="top">Corresponding field was not collected and is represented with
default data.</td>
</tr>
</table>
<p><strong>Number of entries retrieved.</strong> The number of journal entries
that were retrieved.</p>
<p>If an error message is returned, other than error messages CPF3CF1, CPF3C90,
CPF6948, CPF6949 or CPF9872, a non-zero bytes returned field will reflect how
much data was returned prior to the sending of the error message.</p>
<p><strong>Object.</strong> The name of the object for which the journal entry
was added. If the entry is not associated with a journaled object, this field
is blank.</p>
<p>If the object associated with the journal entry is a file object the format
of this field is:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>Char(10)</em></td>
<td valign="top">File name</td>
</tr>
<tr>
<td valign="top"><em>Char(10)</em></td>
<td valign="top">File library name</td>
</tr>
<tr>
<td valign="top"><em>Char(10)</em></td>
<td valign="top">Member name</td>
</tr>
</table>
<p><strong>Note:</strong> If the journal receiver was attached prior to
installing V4R2M0 on your system, the following items are true:<br>
</p>
<ul>
<li>If *ALLFILE is specified for the file key, then the fully qualified name is
the most recent name of the file when the newest receiver in the receiver range
was the attached receiver and when the file was still being journaled.</li>
<li>If a file name is specified or if library *ALL is specified on the file
key, the current fully qualified name of the file appears in the retrieved
journal entry.</li>
</ul>
<p>If the journal receiver was attached while V4R2M0 or a later release was
running on the system, the fully qualified name is the name of the object at
the time the journal entry was deposited.</p>
<p>If the object associated with the journal entry is an integrated file system
object, the format of this field is:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>Char(16)</em></td>
<td valign="top">File identifier</td>
</tr>
<tr>
<td valign="top"><em>Char(14)</em></td>
<td valign="top">Blanks</td>
</tr>
</table>
<p>For all other entries associated with journaled objects, the format of this
information is:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>Char(10)</em></td>
<td valign="top">Object name</td>
</tr>
<tr>
<td valign="top"><em>Char(10)</em></td>
<td valign="top">Object library name</td>
</tr>
<tr>
<td valign="top"><em>Char(10)</em></td>
<td valign="top">Blanks</td>
</tr>
</table>
<p><strong>Object name indicator.</strong> An indicator with respect to the
information in the object field. The valid values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">Either the journal entry has no object information or the
object information in the journal entry header does not necessarily reflect the
name of the object at the time the journal entry was deposited into the
journal.
<p><strong>Note:</strong> This value is returned only when retrieving journal
entries from a journal receiver that was attached to a journal prior to
V4R2M0.</p>
</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">The object information in the journal entry header reflects
the name of the object at the time the journal entry was deposited into the
journal.</td>
</tr>
<tr>
<td valign="top"><em>2</em></td>
<td valign="top">The object information in the journal entry header does not
necessarily reflect the name of the object at the time the journal entry was
deposited into the journal. The object information may be returned as a
previously known name for the object prior to the journal entry being deposited
into the journal or be returned as *UNKNOWN.
<p><strong>Note:</strong> This value will be returned only when retrieving
journal entries from a remote journal and the remote journal is currently being
caught up from its source journal. A remote journal is being caught up from its
source journal when the Change Remote Journal (CHGRMTJRN) command or Change
Journal State (QjoChangeJournalState) API is called and is currently
replicating journal entries to the remote journal. After the call to the
CHGRMTJRN command or QjoChangeJournalState API returns, the remote journal is
maintained with a synchronous or asynchronous delivery mode, and the remote
journal is no longer being caught up.</p>
</td>
</tr>
</table>
<img src="delta.gif" alt="Start of change">
<p><strong>Object type.</strong> The type of object in the entry. The possible
values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*DIR</em></td>
<td valign="top">This entry is for an integrated file system directory.</td>
</tr>
<tr>
<td valign="top"><em>*DTAARA</em></td>
<td valign="top">This entry is for a data area.</td>
</tr>
<tr>
<td valign="top"><em>*DTAQ</em></td>
<td valign="top">This entry is for a data queue.</td>
</tr>
<tr>
<td valign="top"><em>*FILE</em></td>
<td valign="top">This entry is for a database file.</td>
</tr>
<tr>
<td valign="top"><em>*JRNRCV</em></td>
<td valign="top">This entry is for a journal receiver.</td>
</tr>
<tr>
<td valign="top"><em>*QDDS</em></td>
<td valign="top">This entry is for the data portion of a database member.</td>
</tr>
<tr>
<td valign="top"><em>*QDDSI</em></td>
<td valign="top">This entry is for an access path of a database member.</td>
</tr>
<tr>
<td valign="top"><em>*STMF</em></td>
<td valign="top">This entry is for an integrated file system stream file.</td>
</tr>
<tr>
<td valign="top"><em>*SYMLNK</em></td>
<td valign="top">This entry is for an integrated file system symbolic link.</td>
</tr>
</table>
<img src="deltaend.gif" alt="End of change">
<p><strong>Offset to first journal entry header.</strong> The offset from the
start of the format to the journal entry header section for the first journal
entry that is retrieved. If no entries are retrieved, this value is 0.</p>
<p><strong>Pointer handle.</strong> If the entry specific data returned for
this journal entry returned any pointers, this is the handle associated with
those pointers. Otherwise, it is 0.</p>
<p>See <a href="#HDRENTPTR">Use of Pointers within Entry Specific Data</a> for
a discussion on the use of these pointers and what you must do with this
pointer handle.</p>
<p> <strong>Program library ASP device name.</strong> The name of the ASP
device that contains the program.</p>
<p><strong>Notes:</strong></p>
<ol>
<li>If the program library ASP is not an independent ASP, then *SYSBAS will be
returned for the program library ASP device name.</li>
<li>If the program library ASP device name was not available when the journal
entry was deposited, or if RCVSIZOPT(*MINFIXLEN) was in effect or
FIXLENDTA(*PGMLIB) was not in effect for the journal when the journal receiver
that contains this journal entry was attached, then *OMITTED is returned for
the program library ASP device name.</li>
</ol>
<p><strong>Program library ASP number.</strong> The number for the auxiliary
storage pool that contains the program that added the journal entry. If
RCVSIZOPT(*MINFIXLEN) was in effect or FIXLENDTA(*PGMLIB) was not in effect for
the journal when the journal receiver that contains this journal entry was
attached, then Hex 0 will be returned for program ASP number.</p>
<p><strong>Program library name.</strong> The name of the library that contains
the program that added the journal entry. If RCVSIZOPT(*MINFIXLEN) was in
effect or FIXLENDTA(*PGMLIB) was not in effect for the journal when the journal
receiver that contains this journal entry was attached, then *OMITTED will be
returned for the program library name.</p>
<p><strong>Program name.</strong> The name of the program that added the entry.
If an application or CL program did not add the entry, the field contains the
name of a system-supplied program such as QCMD or QPGMMENU. If the program name
is the special value *NONE, then one of the following is true:</p>
<ul>
<li>The program name does not apply to this journal entry.</li>
<li>The program name was not available when the journal entry was made. For
example, the program name is not available if the program was destroyed.</li>
</ul>
<p>If the program that deposited the journal entry is an original program model
program, this data will be complete. Otherwise, this data is unpredictable.</p>
<p>If RCVSIZOPT(*MINFIXLEN) was in effect or FIXLENDTA(*PGM) was not in effect
for the journal when the journal receiver that contains this journal entry was
attached, *OMITTED is returned as the program name.</p>
<p><strong>Receiver library ASP device name.</strong> The name of the ASP
device that contains the receiver.</p>
<p><strong>Notes:</strong></p>
<ol>
<li>If the receiver library ASP is not an independent ASP, then *SYSBAS will be
returned for the receiver library ASP device name.</li>
<li>If the receiver library ASP device name was not available when the journal
entry was deposited, then *OMITTED is returned for the receiver library ASP
device name.</li>
</ol>
<p><strong>Receiver library ASP number.</strong> The number for the auxiliary
storage pool containing the receiver holding the journal entry.</p>
<p><strong>Receiver library name.</strong> The name of the library containing
the receiver holding the journal entry.</p>
<p><strong>Receiver name.</strong> The name of the receiver holding the journal
entry.</p>
<p><strong>Referential constraint.</strong> Whether this entry was recorded for
actions that occurred on records that are part of a referential constraint.</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">This entry was not created as part of a referential
constraint.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">This entry was created as part of a referential
constraint.</td>
</tr>
</table>
<p> <strong>Remote address.</strong> The remote address associated with the
journal entry. The format of the address is dependent on the value of the
address family for this journal entry. If RCVSIZOPT(*MINFIXLEN) was in effect
or FIXLENDTA(*RMTADR) was not in effect for the journal when the journal
receiver that contains this journal entry was attached, then Hex 0 will be
returned for remote address.</p>
<p><strong>Remote port.</strong> The port number of the remote address
associate with this journal entry. If RCVSIZOPT(*MINFIXLEN) was in effect or
FIXLENDTA(*RMTADR) was not in effect for the journal when the journal receiver
that contains this journal entry was attached, then Hex 0 will be returned for
remote port.</p>
<p><strong>Reserved.</strong> Reserved area. It always contains hexadecimal
zeros.</p>
<p><strong>Sequence number.</strong> A number assigned by the system to each
journal entry. This is either a Char(20) or Binary(8) field and if Char(20), it
is treated as Zoned(20,0). It is initially set to 1 for each new or restored
journal and is incremented until you request that it be reset when you attach a
new receiver. There are occasional gaps in the sequence numbers because the
system uses internal journal entries for control purposes. These gaps occur if
you use commitment control, journal physical files, or journal access
paths.</p>
<p><strong>System name.</strong> The name of the system on which the entry is
being retrieved, if the journal receiver was attached prior to installing
V4R2M0 on the system. If the journal receiver was attached while the system was
running V4R2M0 or a later release, the system name is the system where the
journal entry was actually deposited.</p>
<p> <strong>System sequence number.</strong> The system sequence number
indicates the relative sequence of when this journal entry was deposited into
the journal. The system sequence number could be used to sequentially order
journal entries that are in separate journal receivers. If
RCVSIZOPT(*MINFIXLEN) was in effect or FIXLENDTA(*SYSSEQ) was not in effect for
the journal when the journal receiver that contains this journal entry was
attached, then Hex 0 will be returned for the system sequence number.</p>
<p><strong>Thread identifier.</strong> Identifies the thread within the process
that added the journal entry. If RCVSIZOPT(*MINFIXLEN) was in effect or
FIXLENDTA(*THD) was not in effect for the journal when the journal receiver
that contains this journal entry was attached, then hex 0 will be returned for
the thread identifier.</p>
<p><strong>Time stamp.</strong> The system date and time when the journal entry
was added to the journal receiver. The time stamp is in the format YYYY-MM-DD-HH.MM.SS.UUUUUU where</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td valign="top"><em>YYYY</em></td>
<td valign="top">Year</td>
</tr>
<tr>
<td valign="top"><em>MM</em></td>
<td valign="top">Month</td>
</tr>
<tr>
<td valign="top"><em>DD</em></td>
<td valign="top">Day</td>
</tr>
<tr>
<td valign="top"><em>HH</em></td>
<td valign="top">Hours</td>
</tr>
<tr>
<td valign="top"><em>MM</em></td>
<td valign="top">Minutes</td>
</tr>
<tr>
<td valign="top"><em>SS</em></td>
<td valign="top">Seconds</td>
</tr>
<tr>
<td valign="top"><em>UUUUUU</em></td>
<td valign="top">Microseconds</td>
</tr>
</table>
<p>The system cannot assure that the time stamp is always in ascending order
for sequential journal entries because the value of the system time could have
been changed.</p>
<p>Note: If the system value QLEAPADJ (Leap year adjustment) is zero, then the
result returned will be in 1 microsecond granularity. If the system value
QLEAPADJ is greater than zero, then the result returned will be in
8 microsecond granularity.</p>
<p> <strong>Transaction identifier.</strong>
<img src="delta.gif" alt="Start of change">
The transaction identifier associated with this journal entry. The
transaction identifier identifies transactions related to specific
commit cycles.
<img src="deltaend.gif" alt="End of change">
See the QSYSINC/H.XA header file
for the layout of this data. If RCVSIZOPT(*MINFIXLEN) was in effect or
FIXLENDTA(*XID) was not in effect for the journal when the journal receiver
that contains the journal entry was attached, then the displacement to
transaction identifier will be 0 and no transaction identifier will be
returned.</p>
<p><strong>Trigger.</strong> Whether this entry was created as result of a
trigger program.</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">This entry was not created as the result of a trigger
program.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">This entry was created as the result of a trigger
program.</td>
</tr>
</table>
<p><strong>Unformatted time stamp.</strong> The system date and time when the
journal entry was added to the journal receiver. The time stamp is in machine
readable format and can be used as input to a time conversion API, which will
convert it to a human readable format.</p>
<p><strong>User name.</strong> The user profile name of the user that started
the job.</p>
<p><strong>Notes:</strong></p>
<ol>
<li>If RCVSIZOPT(*MINFIXLEN) was in effect or FIXLENDTA(*JOB) was not in effect
for the journal when the journal receiver that contains the journal entry was
attached, then blanks are returned for the user name.</li>
<li>If the job name was not available when the journal entry was deposited,
then blanks are returned for the user name.</li>
</ol>
<p><strong>User profile.</strong> The name of the effective user profile under
which the job was running when the entry was created.</p>
<p><strong>Notes:</strong></p>
<ol>
<li>If RCVSIZOPT(*MINFIXLEN) was in effect or FIXLENDTA(*JOB) was not in effect
for the journal when the journal receiver that contains this journal entry was
attached, *OMITTED is returned for the effective user profile.</li>
<li>If the journal entry was deposited by a system task that was not associated
with a job, then a character representation of the task description entry
number will be returned for the user profile.</li>
</ol>
<br>
<h3><a name="HDRENTPTR">Use of Pointers within Entry Specific Data</a></h3>
<p>There are some journal entries that require additional handling of the
journal receiver entry specific data using pointers. This was done to minimize
movement of large amounts of data and to facilitate support of tables or
database files with large object (LOB) fields. The types of entries that may
require pointer support are:</p>
<ul>
<li>Any operations on specific records or files (journal code R or F) of tables
or database files that include any fields of data type BLOB (binary large
object), CLOB (character large object), or DBCLOB (double-byte character large
object). See the <a href="../sqlp/rbafykickoff.htm">DB2 UDB for iSeries SQL
Programming Concepts</a> and <a href="../db2/rbafzmst02.htm">DB2 UDB for
iSeries SQL Reference</a> books for more information on these data types.</li>
<li>Operations related to byte stream file write operations, Journal Code B,
Entry type WA. See the <a href="../ifs/rzaaxkickoff.htm">Integrated file
system</a> information for more information about these journal entries.</li>
<li>Operations related to data queue send operations, Journal Code Q, Entry
types QK and QS. See the <a href="../rzaki/rzakikickoff.htm">Journal
management</a> topic for more information on these journal entries.</li>
<li>Any operations on specific records or files (journal code R or F) of tables
or database files resulting in minimized entry specific data when the journal
has MINENTDTA specified for the corresponding object type. See the <a href=
"../rzaki/rzakikickoff.htm">Journal management</a> topic for restrictions and
usage of journal entries with minimized entry specific data.</li>
</ul>
<p>If the incomplete data indicator is returned as a 1, then that indicates
that the journal-entry specific data includes a pointer to additional data.
Additionally, a pointer handle will be returned with the journal entry. This
handle is associated with any allocations required to support the pointer
processing.</p>
<p>The pointer must be used by the same process that called this API; it cannot
be stored and used by a different process. The pointer can be used for read
access only. See the <a href="../rzaki/rzakikickoff.htm">Journal management</a>
topic for descriptions of the entry types that may include pointer data. The
pointer can be used in the following way:</p>
<ul>
<li>It can be used directly to copy the data addressed to some other storage
space.</li>
<li>If the journal entry is a record entry (journal code R), the journal-entry
specific data could be used for an update or insert operation to the database
file through SQL. See the <a href="../db2/rbafzmst02.htm">DB2 UDB for iSeries
SQL Reference</a> book for more information.</li>
</ul>
<p>The pointer handles will be implicitly deleted when the process that
requested the journal entries is ended.</p>
<p>These pointers can be used only with the V4R4M0 or later versions of the
following languages:</p>
<ul>
<li>ILE COBOL</li>
<li>ILE RPG</li>
<li>ILE C if the TERASPACE parameter is used when compiling the program. See
the <a href="../books/sc092712.pdf" target="_blank">WebSphere Development
Studio: ILE C/C++ Programmer's Guide</a><img alt="Link to PDF" src="wbpdf.gif">
book for more information.</li>
</ul>
<p>Once the pointer data is used, you must delete the pointer handle to free
the handle and any allocations associated with that handle. This can be done by
using the <a href="QJODLTPH.htm">Delete Pointer Handle</a>
(QjoDeletePointerHandle) API. If the handles are not deleted, the maximum
number allowed can be reached, which will prevent further retrieval of journal
entries. The deletion must occur from the same process that called the Retrieve
Journal Entries (QjoRetrieveJournalEntries) API.</p>
<p>Even if the journal entry data is not used, all pointer handles returned to
the user through this interface should be deleted. This is also true when
partial journal entry information is returned, even though an error message was
returned.</p>
<p><strong>Note:</strong> No system function will prevent the deletion of
journal receivers that may have outstanding pointer handles. If you want to
prevent the journal receivers from being deleted prior to your use of the
pointers, you may want to consider using the <a href="XDLTRCV.htm">Delete
Journal Receiver</a> exit point, QIBM_QJO_DLT_JRNRCV.</p>
<br>
<h3>Error Messages</h3>
<table cellpadding="3" width="100%">
<tr>
<th align="left" valign="top">Message ID</th>
<th align="left" valign="top">Error Message Text</th>
</tr>
<tr>
<td valign="top" width="15%">CPF24B4 E</td>
<td valign="top" width="85%">Severe error while addressing parameter list.</td>
</tr>
<tr>
<td valign="top">CPF3CF1 E</td>
<td valign="top">Error code parameter not valid.</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">CPF3C4D E</td>
<td valign="top">Length &amp;1 for key &amp;2 not valid.</td>
</tr>
<tr>
<td valign="top">CPF3C82 E</td>
<td valign="top">Key &amp;1 not valid for API &amp;2.</td>
</tr>
<tr>
<td valign="top">CPF3C88 E</td>
<td valign="top">Number of variable length records &amp;1 is not valid.</td>
</tr>
<tr>
<td valign="top">CPF3C90 E</td>
<td valign="top">Literal value cannot be changed.</td>
</tr>
<tr>
<td valign="top">CPF694A E</td>
<td valign="top">Number of fields &amp;1 for key &amp;2 is not valid.</td>
</tr>
<tr>
<td valign="top">CPF694B E</td>
<td valign="top">Length &amp;1 of variable record for key &amp;2 not
valid.</td>
</tr>
<tr>
<td valign="top">CPF694C E</td>
<td valign="top">Variable length record data for key &amp;1 not valid.</td>
</tr>
<tr>
<td valign="top">CPF6946 E</td>
<td valign="top">Number &amp;1 specified for key &amp;2 not valid.</td>
</tr>
<tr>
<td valign="top">CPF6948 E</td>
<td valign="top">Length of the receiver variable &amp;1 is not valid.</td>
</tr>
<tr>
<td valign="top">CPF6949 E</td>
<td valign="top">Pointer to a receiver variable is not valid.</td>
</tr>
<tr>
<td valign="top">CPD7061 E</td>
<td valign="top">FROMENT and FROMTIME parameters cannot be used together.</td>
</tr>
<tr>
<td valign="top">CPD7062 E</td>
<td valign="top">TOENT and TOTIME parameters cannot be used together.</td>
</tr>
<tr>
<td valign="top">CPD7076 E</td>
<td valign="top">Value specified for JRNCDE not valid.</td>
</tr>
<tr>
<td valign="top">CPD7078 E</td>
<td valign="top">Duplicate journal code not valid.</td>
</tr>
<tr>
<td valign="top">CPF7002 E</td>
<td valign="top">File &amp;1 in library &amp;2 not a physical file.</td>
</tr>
<tr>
<td valign="top">CPF7006 E</td>
<td valign="top">Member &amp;3 not found in file &amp;1 in &amp;2.</td>
</tr>
<tr>
<td valign="top">CPF7007 E</td>
<td valign="top">Cannot allocate member &amp;3 file &amp;1 in &amp;2.</td>
</tr>
<tr>
<td valign="top">CPF701B E</td>
<td valign="top">Journal recovery of interrupted operation failed.</td>
</tr>
<tr>
<td valign="top">CPF705C E</td>
<td valign="top">INCENT(*ALL) not allowed for a local journal.</td>
</tr>
<tr>
<td valign="top">CPF7053 E</td>
<td valign="top">Values for RCVRNG parameter not correct; reason code
&amp;1.</td>
</tr>
<tr>
<td valign="top">CPF7054 E</td>
<td valign="top">FROM and TO values not valid.</td>
</tr>
<tr>
<td valign="top">CPF7055 E</td>
<td valign="top">Maximum number of files and members exceeded.</td>
</tr>
<tr>
<td valign="top">CPF7057 E</td>
<td valign="top">*LIBL not allowed with FILE(*ALL).</td>
</tr>
<tr>
<td valign="top">CPF706A E</td>
<td valign="top">Significant null value indicator truncated.</td>
</tr>
<tr>
<td valign="top">CPF7060 E</td>
<td valign="top"><img src="delta.gif" alt="Start of change">
Object not found and not journaled in specified receiver range.
<img src="deltaend.gif" alt="End of change"></td>
</tr>
<tr>
<td valign="top">CPF7061 E</td>
<td valign="top">Conversion of journal entries failed.</td>
</tr>
<tr>
<td valign="top">CPF7062 E</td>
<td valign="top">No entries converted or received from journal &amp;1.</td>
</tr>
<tr>
<td valign="top">CPF7065 E</td>
<td valign="top">Entry type (ENTTYP) not valid for journal code (JRNCDE).</td>
</tr>
<tr>
<td valign="top">CPF7074 E</td>
<td valign="top">RCVRNG for specified SEARCH not valid.</td>
</tr>
<tr>
<td valign="top">CPF708D E</td>
<td valign="top">Journal receiver found logically damaged.</td>
</tr>
<tr>
<td valign="top">CPF709C E</td>
<td valign="top">JOB, PGM, and USRPRF not valid for receiver range.</td>
</tr>
<tr>
<td valign="top"><img src="delta.gif" alt="Start of change">
CPF70A9 E</td>
<td valign="top">OBJPATH parameter not valid for a remote journal.</td>
</tr>
<tr>
<td valign="top">CPF70AC E</td>
<td valign="top">FID &amp;1 not found.
<img src="deltaend.gif" alt="End of change"></td>
</tr>
<tr>
<td valign="top">CPF8100 E</td>
<td valign="top">All CPF81xx messages could be returned. xx is from 01 to
FF.</td>
</tr>
<tr>
<td valign="top">CPF9801 E</td>
<td valign="top">Object &amp;2 in library &amp;3 not found.</td>
</tr>
<tr>
<td valign="top">CPF9802 E</td>
<td valign="top">Not authorized to object &amp;2 in &amp;3.</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">CPF9809 E</td>
<td valign="top">Library &amp;1 cannot be accessed.</td>
</tr>
<tr>
<td valign="top">CPF9810 E</td>
<td valign="top">Library &amp;1 not found.</td>
</tr>
<tr>
<td valign="top">CPF9820 E</td>
<td valign="top">Not authorized to use library &amp;1.</td>
</tr>
<tr>
<td valign="top">CPF9822 E</td>
<td valign="top">Not authorized to file &amp;1 in library &amp;2.</td>
</tr>
<tr>
<td valign="top">CPF9872 E</td>
<td valign="top">Program or service program &amp;1 in library &amp;2 ended.
Reason code &amp;3.</td>
</tr>
</table>
<br>
<h3>Example</h3>
<p>See <a href="../apiref/aboutapis.htm#codedisclaimer">Code disclaimer information</a>
for information pertaining to code examples.</p>
<p>The following example retrieves one journal entry based on four keys that
we will pass in the Variable Length Record structure.</p>
<pre>
/**********************************************************************/
/* Setup instructions: */
/* CRTLIB RJESAMPLE */
/* CRTJRNRCV JRNRCV(RJESAMPLE/R1) */
/* CRTJRN JRN(RJESAMPLE/J1) JRNRCV(RJESAMPLE/R1) */
/* CRTPF FILE(RJESAMPLE/F1) RCDLEN(12) */
/* STRJRNPF FILE(RJESAMPLE/F1) JRN(RJESAMPLE/J1) IMAGES(*BOTH) */
/* Create some journal entries: */
/* STRSQL */
/* INSERT INTO RJESAMPLE/F1 VALUES ('REC1') */
/* INSERT INTO RJESAMPLE/F1 VALUES ('REC2') */
/* INSERT INTO RJESAMPLE/F1 VALUES ('REC3') */
/* DELETE FROM RJESAMPLE/F1 WHERE F1 = 'REC2' */
/* F3 to exit, then ENTER */
/* */
/* In this example, we are only going to retrieve one journal entry. */
/* When you retrieve more than one, you can just increase the size */
/* of the receiver variable and then work through the data using the */
/* displacement values returned in the structure. All of the */
/* structures used here are based on structures defined or are */
/* structures defined in QSYSINC/QJOURNAL. */
/**********************************************************************/
/* Some include files we will need */
#include &lt;stdio.h&gt;
#include &lt;string.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;ctype.h&gt;
#include &lt;qusec.h&gt;
#include &lt;qmhsndpm.h&gt;
#include &lt;qjournal.h&gt;
/* Some constants we should define */
#define LIB "RJESAMPLE "
#define JRN "J1 "
#define RCV "R1 "
#define FILE "F1 "
#define SEQ "00000000000000000014"
/* These are declares for the Variable Length Record structure
for the keys */
typedef _Packed struct
{
Qjo_JE_Fmt_Var_Len_Rcrd_t base_structure;
Qjo_JE_Data_t Data[9004];
} Qjo_JE_Fmt_Var_Len_Rcrd_varlen_t;
typedef _Packed struct
{
Qjo_JE_Jrn_Info_Retrieve_t base_structure;
Qjo_JE_Fmt_Var_Len_Rcrd_varlen_t Fmt_Var_Len_Rcrd[4];
} Qjo_JE_Jrn_Info_Retrieve_varlen_t;
/* Function prototypes */
void buildKey1(Qjo_JE_Data_Key_1_t*);
void buildKey2(Qjo_JE_Data_Key_2_t*);
void buildKey4(Qjo_JE_Data_Key_4_t*);
void buildKey6(Qjo_JE_Data_Key_6_t*);
void copyKeysToVLR(Qjo_JE_Data_Key_1_t*, Qjo_JE_Data_Key_2_t*,
Qjo_JE_Data_Key_4_t*, Qjo_JE_Data_Key_6_t*,
Qjo_JE_Jrn_Info_Retrieve_varlen_t*);
void printEntryInfo(Qjo_RJNE0100_Hdr_t*);
void sendMsg(int, char*);
const short VLRSize = sizeof(Qjo_JE_Fmt_Var_Len_Rcrd_varlen_t);
void main()
{
/* declare the key structures - we will input keys 1, 2, 4, and 6 */
Qjo_JE_Data_Key_1_t key1;
Qjo_JE_Data_Key_2_t key2;
Qjo_JE_Data_Key_4_t key4;
Qjo_JE_Data_Key_6_t key6;
/* declare the structure that will hold the keys */
Qjo_JE_Jrn_Info_Retrieve_varlen_t infoRetrieve;
/* Misc variables */
char qualJrnName[20];
Qus_EC_t *errCode;
char errorbuffer[17];
long int lenRcvVar = 2048;
/* declare the header structure for format RJNE0100 */
Qjo_RJNE0100_Hdr_t *rjne0100Hdr;
/* build the key structures */
buildKey1(&amp;key1);
buildKey2(&amp;key2);
buildKey4(&amp;key4);
buildKey6(&amp;key6);
/* Copy the key structures into Format variable length records */
memset(&amp;(infoRetrieve), 0x00,
sizeof(Qjo_JE_Jrn_Info_Retrieve_varlen_t));
infoRetrieve.base_structure.Num_Var_Len_Rcrds = 0;
copyKeysToVLR(&amp;key1, &amp;key2, &amp;key4, &amp;key6, &amp;infoRetrieve);
/* Set up the qualified journal name */
memcpy(qualJrnName, JRN, sizeof(JRN));
memcpy(qualJrnName+10, LIB, sizeof(LIB));
/* Tell the error code structure we want data returned to the
job log */
errCode = (Qus_EC_t *) errorbuffer;
errCode->Bytes_Provided = 0;
/* Allocate the receiver space */
if((rjne0100Hdr = (Qjo_RJNE0100_Hdr_t *) malloc(lenRcvVar)) != NULL)
{
rjne0100Hdr->Bytes_Returned = 0;
/* Call the API */
QjoRetrieveJournalEntries(rjne0100Hdr,
&amp;lenRcvVar,
qualJrnName,
"RJNE0100",
&amp;infoRetrieve,
errCode);
/* Display the entry information returned (send to job log) */
printEntryInfo(rjne0100Hdr);
free(rjne0100Hdr);
}
/* That's it :) */
}
void buildKey1(Qjo_JE_Data_Key_1_t *key1)
{
/* Initialize to all blanks */
memset(key1, ' ', sizeof(Qjo_JE_Data_Key_1_t));
/* We will use R1 as both the starting and ending receiver */
/* Do the starting receiver and receiver lib first */
memcpy(&amp;(key1->Receiver_Range.Starting_Jrn_Rcv_Name),
RCV, sizeof(Qjo_Jrn_Rcv_Name_t));
memcpy(&amp;(key1->Receiver_Range.Starting_Jrn_Rcv_Lib_Name),
LIB, sizeof(Qjo_Jrn_Rcv_Lib_Name_t));
/* Then do the ending receiver and receiver lib */
memcpy(&amp;(key1->Receiver_Range.Ending_Jrn_Rcv_Name),
RCV, sizeof(Qjo_Jrn_Rcv_Name_t));
memcpy(&amp;(key1->Receiver_Range.Ending_Jrn_Rcv_Lib_Name),
LIB, sizeof(Qjo_Jrn_Rcv_Lib_Name_t));
}
void buildKey2(Qjo_JE_Data_Key_2_t *key2)
{
/* We will look for the sequence number of the delete entry (R DL).
On a V5R2 system, that is journal sequence number 14 based on
the instructions above. Starting seq num is 14. */
/* Initialize key2 structure to NULL */
memset(key2, 0x00, sizeof(Qjo_JE_Data_Key_2_t));
memcpy(&amp;(key2->Starting_Seq_Num), SEQ, sizeof(Qjo_Seq_Num_t));
}
void buildKey4(Qjo_JE_Data_Key_4_t *key4)
{
/* We will look for the sequence number of the delete entry (R DL).
On a V5R2 system, that is journal sequence number 14 based on
the instructions above. Ending seq num is 14. */
/* Initialize key4 structure to NULL */
memset(key4, 0x00, sizeof(Qjo_JE_Data_Key_4_t));
memcpy(&amp;(key4->Ending_Seq_Num), SEQ, sizeof(Qjo_Seq_Num_t));
}
void buildKey6(Qjo_JE_Data_Key_6_t *key6)
{
/* Initialize key6 to NULL */
memset(key6, 0x00, sizeof(Qjo_JE_Data_Key_6_t));
/* We will only look for one entry - the R DL entry */
key6->Number_Entries = 1;
}
void copyKeysToVLR(Qjo_JE_Data_Key_1_t *key1, Qjo_JE_Data_Key_2_t *key2,
Qjo_JE_Data_Key_4_t *key4, Qjo_JE_Data_Key_6_t *key6,
Qjo_JE_Jrn_Info_Retrieve_varlen_t *infoRetrieve)
{
short i = infoRetrieve->base_structure.Num_Var_Len_Rcrds;
/* Key 1 copy */
infoRetrieve->Fmt_Var_Len_Rcrd[i].base_structure.Len_Var_Len_Rcrd
= VLRSize;
infoRetrieve->Fmt_Var_Len_Rcrd[i].base_structure.Key = 1;
infoRetrieve->Fmt_Var_Len_Rcrd[i].base_structure.Len_Of_Data =
sizeof(Qjo_JE_Data_Key_1_t);
memcpy(&amp;(infoRetrieve->Fmt_Var_Len_Rcrd[i].Data),
key1, sizeof(Qjo_JE_Data_Key_1_t));
infoRetrieve->base_structure.Num_Var_Len_Rcrds++;
i++;
/* Key 2 copy */
infoRetrieve->Fmt_Var_Len_Rcrd[i].base_structure.Len_Var_Len_Rcrd
= VLRSize;
infoRetrieve->Fmt_Var_Len_Rcrd[i].base_structure.Key = 2;
infoRetrieve->Fmt_Var_Len_Rcrd[i].base_structure.Len_Of_Data =
sizeof(Qjo_JE_Data_Key_2_t);
memcpy(&amp;(infoRetrieve->Fmt_Var_Len_Rcrd[i].Data),
key2, sizeof(Qjo_JE_Data_Key_2_t));
infoRetrieve->base_structure.Num_Var_Len_Rcrds++;
i++;
/* Key 4 copy */
infoRetrieve->Fmt_Var_Len_Rcrd[i].base_structure.Len_Var_Len_Rcrd
= VLRSize;
infoRetrieve->Fmt_Var_Len_Rcrd[i].base_structure.Key = 4;
infoRetrieve->Fmt_Var_Len_Rcrd[i].base_structure.Len_Of_Data =
sizeof(Qjo_JE_Data_Key_4_t);
memcpy(&amp;(infoRetrieve->Fmt_Var_Len_Rcrd[i].Data),
key4, sizeof(Qjo_JE_Data_Key_4_t));
infoRetrieve->base_structure.Num_Var_Len_Rcrds++;
i++;
/* Key 6 copy */
infoRetrieve->Fmt_Var_Len_Rcrd[i].base_structure.Len_Var_Len_Rcrd
= VLRSize;
infoRetrieve->Fmt_Var_Len_Rcrd[i].base_structure.Key = 6;
infoRetrieve->Fmt_Var_Len_Rcrd[i].base_structure.Len_Of_Data =
sizeof(Qjo_JE_Data_Key_6_t);
memcpy(&amp;(infoRetrieve->Fmt_Var_Len_Rcrd[i].Data),
key6, sizeof(Qjo_JE_Data_Key_6_t));
infoRetrieve->base_structure.Num_Var_Len_Rcrds++;
}
void printEntryInfo(Qjo_RJNE0100_Hdr_t *rjne0100Hdr)
{
char msg[50];
Qjo_RJNE0100_JE_Hdr_t *entry_ptr;
/* get a pointer to the entry */
entry_ptr = (Qjo_RJNE0100_JE_Hdr_t *)((char *)rjne0100Hdr +
rjne0100Hdr->Offset_First_Jrn_Entry);
/* Access the data of interest - we will just print the header,
sequence number, journal code, and entry type to ensure
we got the R DL entry */
memset(msg, ' ', sizeof(msg));
sprintf(msg, "JH:Bytes Rtrnd:%d\n", rjne0100Hdr->Bytes_Returned);
sendMsg(sizeof(msg), msg);
memset(msg, ' ',sizeof(msg));
sprintf(msg, "JH:Dsp to 1st JEH:%d\n",
rjne0100Hdr->Offset_First_Jrn_Entry);
sendMsg(sizeof(msg), msg);
memset(msg, ' ',sizeof(msg));
sprintf(msg, "JH:Num ent rtrv:%d\n",
rjne0100Hdr->Number_Entries_Retreived);
sendMsg(sizeof(msg), msg);
memset(msg, ' ',sizeof(msg));
sprintf(msg, "JH:Cont Hndl:%1.1s\n",
(char *)&amp;rjne0100Hdr->Continuation_Handle);
sendMsg(sizeof(msg), msg);
memset(msg, ' ',sizeof(msg));
sprintf(msg, "Seq #:%-20.20s\n", entry_ptr->Seq_Number);
sendMsg(sizeof(msg), msg);
memset(msg, ' ',sizeof(msg));
sprintf(msg, "Jrn code:%1.1s\n", (char *)&amp;entry_ptr->Jrn_Code);
sendMsg(sizeof(msg), msg);
memset(msg, ' ',sizeof(msg));
sprintf(msg, "Entry type:%-2.2s\n", entry_ptr->Entry_Type);
sendMsg(sizeof(msg), msg);
}
void sendMsg(int length, char *message)
{
char msgid[8] = "CPF9897";
char path[21] = "QCPFMSG *LIBL ";
char msgtype[11] = "*INFO ";
char callstcken[11] = "* ";
int callstckco = 1;
char msgkey[5] = " ";
Qus_EC_t *errCode;
char errorbuffer[512];
errCode = (Qus_EC_t *) errorbuffer;
errCode->Bytes_Provided = 0;
QMHSNDPM(msgid, path, message, length,
msgtype, callstcken, callstckco, msgkey,
errCode);
}
</pre>
<br>
<hr>
API introduced: V4R4
<hr>
<table cellpadding="2" cellspacing="2" align="center">
<tr align="center">
<td valign="middle" align="center"><a href="#Top_Of_Page">Top</a> | <a href=
"jc1.htm">Journal and Commit APIs</a> | <a href="aplist.htm">APIs by
category</a></td>
</tr>
</table>
</body>
</html>