ibm-information-center/dist/eclipse/plugins/i5OS.ic.cl_5.4.0.1/rmvjrnchg.htm

993 lines
46 KiB
HTML
Raw Permalink Normal View History

2024-04-02 14:02:31 +00:00
<!doctype html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Remove Journaled Changes (RMVJRNCHG)</title>
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body bgcolor="white">
<script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<a name="RMVJRNCHG.Top_Of_Page"></a>
<h2>Remove Journaled Changes (RMVJRNCHG)</h2>
<table width="100%">
<tr>
<td valign="top" align="left"><b>Where allowed to run: </b>All environments (*ALL)<br>
<b>Threadsafe: </b>No
</td>
<td valign="top" align="right">
<a href="#RMVJRNCHG.PARAMETERS.TABLE">Parameters</a><br>
<a href="#RMVJRNCHG.COMMAND.EXAMPLES">Examples</a><br>
<a href="#RMVJRNCHG.ERROR.MESSAGES">Error messages</a></td>
</tr>
</table>
<div> <a name="RMVJRNCHG"></a>
<p>The Remove Journaled Changes (RMVJRNCHG) command removes the changes that have been journaled for a particular journaled object. The journaled changes are removed from the object from the specified starting point to the ending point. The journal entries are processed in reverse of the order in which they were placed into the journal receiver, from the most recent to the oldest. The starting point can be identified as the last journal entry in the specified journal receiver range, the point at which an object was last saved, or a particular entry in the receiver range. The ending point can be the first journal entry or a particular entry in the specified journal receiver range, or the point at which an object was opened by a specified job. The CMTBDY parameter can be used for handling changes that are pending.
</p>
<p>
<b>Note: </b>No database object level changes are processed by RMVJRNCHG.
</p>
<p>
<b>Note: </b>The Display Journal (DSPJRN) command can be used to help determine the desired starting and ending points.
</p>
<p>A list of journaled objects may be specified. The journaled changes for all objects are removed in the order that the journal entries are found on the journal (the reverse of the order that the changes were originally made to the objects).
</p>
<p>If a journal code J entry type SX (Exit JRNSTATE(*STANDBY)) entry is found, the operation ends for all objects specified regardless of the OBJERROPT value specified. Objects may be only partially updated from the journal entries.
</p>
<p>Additionally, the command can end for an individual object when journal entries list operations which cannot be replayed by the command. If this happens, the operation will continue for the other objects specified if OBJERROPT(*CONTINUE) is used. For example, the command ends for an object when a journal entry is found that indicates one of the following has occurred:
</p>
<ul>
<li>A physical database file is cleared
</li>
<li>A physical database file member is saved and its storage is freed
</li>
<li>Journal initial program load (IPL) synchronization fails
</li>
<li>The system has already applied or removed the changes through the Apply Journal Changes (APYJRNCHG) command or the RMVJRNCHG command.
</li>
</ul>
<p>See the Journal Management information in the iSeries Information Center at http://www.ibm.com/eserver/iseries/infocenter for a complete listing of the various entries and how they are handled by this command including those entries which can stop the command.
</p>
<p>The command also ends for an object on illogical conditions. If the command ends due to illogical conditions and it is logically possible to restart the operation, you can issue the command again for that object, specifying a new starting sequence number. Be aware though, that most illogical conditions are the result of starting the remove at the wrong journal entry.
</p>
<p>Journal entry changes can be removed even if the sequence numbers have been reset. The system handles this condition, sends an informational message, and continues the removal of journaled changes.
</p>
<p><b>Restrictions:</b>
</p>
<ul>
<li>This command is shipped with public *EXCLUDE authority and the QPGMR and QSRV user profiles have private authorities to use the command.
</li>
<li>The objects specified on this command must currently be having their changes journaled, and they must have been journaled to the specified journal throughout the period indicated on the command.
</li>
<li>Before images are required for the objects. See the appropriate start journaling command.
</li>
<li>The objects indicated on the command are allocated exclusively while the changes are being removed. If an object cannot be allocated exclusively, the command ends and no journaled changes are removed from the objects.
</li>
<li>If there is no journal entry that represents the entry specified on the FROMENTLRG, FROMENT, TOENTLRG, or TOENT parameter, the command ends and no journaled changes are removed from the objects.
</li>
<li>If the journal sequence numbers have been reset in the range of the receivers specified, and a sequence number is specified on the FROMENTLRG, FROMENT, TOENTLRG, or TOENT parameter, the first occurrence of the sequence number specified on either parameter is used.
</li>
<li>The TOJOBO parameter cannot be used to specify when the remove journaled changes operation is to end if one or more journal receivers in the specified receiver range was attached to the journal when a receiver size option (RCVSIZOPT) or a fixed length data option (FIXLENDTA) that would have omitted this data was in effect.
</li>
<li>The TOJOBO parameter cannot be used if the object for which changes are being removed from was not recording open and close entries. For further clarification, refer to the Omit journal entry (OMTJRNE) parameter for the STRJRN, STRJRNPF, and CHGJRNOBJ commands.
</li>
<li>This command cannot be used on or with a remote journal.
</li>
<li>The maximum number of objects that can have changes removed with this command is 12,000,000. If more than 12,000,000 objects are included in the specifications, an error message is sent and no changes are removed. You can change the values specified on this parameter so that the limit is not exceeded.
</li>
</ul>
</div>
<table width="100%">
<tr><td align="right"><a href="#RMVJRNCHG.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div>
<h3><a name="RMVJRNCHG.PARAMETERS.TABLE">Parameters</a></h3>
<table border="1" cellpadding="4" cellspacing="0">
<!-- col1="10" col2="15" col3="30" col4="10" -->
<tr>
<th bgcolor="aqua" valign="bottom" align="left">Keyword</th>
<th bgcolor="aqua" valign="bottom" align="left">Description</th>
<th bgcolor="aqua" valign="bottom" align="left">Choices</th>
<th bgcolor="aqua" valign="bottom" align="left">Notes</th>
</tr>
<tr>
<td valign="top" rowspan="3"><a href="#RMVJRNCHG.JRN"><b>JRN</b></a></td>
<td valign="top">Journal</td>
<td valign="top"><i>Qualified object name</i></td>
<td valign="top" rowspan="3">Required, Positional 1</td>
</tr>
<tr>
<td valign="top">Qualifier 1: Journal</td>
<td valign="top"><i>Name</i></td>
</tr><tr>
<td valign="top">Qualifier 2: Library</td>
<td valign="top"><i>Name</i>, <b><u>*LIBL</u></b>, *CURLIB</td>
</tr><tr>
<td valign="top" rowspan="5"><a href="#RMVJRNCHG.FILE"><b>FILE</b></a></td>
<td valign="top">Journaled file identification</td>
<td valign="top">Values (up to 300 repetitions): <i>Element list</i></td>
<td valign="top" rowspan="5">Optional, Positional 2</td>
</tr>
<tr>
<td valign="top">Element 1: Journaled physical file</td>
<td valign="top">
<i>Qualified object name</i></td>
</tr>
<tr>
<td valign="top" style="padding-left:10pt">Qualifier 1: Journaled physical file</td>
<td valign="top"><i>Name</i>, *ALL</td>
</tr><tr>
<td valign="top" style="padding-left:10pt">Qualifier 2: Library</td>
<td valign="top"><i>Name</i>, <b><u>*LIBL</u></b>, *CURLIB</td>
</tr><tr>
<td valign="top">Element 2: Member</td>
<td valign="top">
<i>Name</i>, <b><u>*ALL</u></b>, *FIRST</td>
</tr>
<tr>
<td valign="top" rowspan="6"><a href="#RMVJRNCHG.OBJ"><b>OBJ</b></a></td>
<td valign="top">Objects</td>
<td valign="top">Values (up to 300 repetitions): <i>Element list</i></td>
<td valign="top" rowspan="6">Optional</td>
</tr>
<tr>
<td valign="top">Element 1: Object</td>
<td valign="top">
<i>Qualified object name</i></td>
</tr>
<tr>
<td valign="top" style="padding-left:10pt">Qualifier 1: Object</td>
<td valign="top"><i>Name</i>, *ALL</td>
</tr><tr>
<td valign="top" style="padding-left:10pt">Qualifier 2: Library</td>
<td valign="top"><i>Name</i>, <b><u>*LIBL</u></b>, *CURLIB</td>
</tr><tr>
<td valign="top">Element 2: Object type</td>
<td valign="top">
*FILE, *DTAARA</td>
</tr>
<tr>
<td valign="top">Element 3: Member, if data base file</td>
<td valign="top">
<i>Name</i>, <b><u>*ALL</u></b>, *FIRST</td>
</tr>
<tr>
<td valign="top" rowspan="7"><a href="#RMVJRNCHG.RCVRNG"><b>RCVRNG</b></a></td>
<td valign="top">Range of journal receivers</td>
<td valign="top">Single values: <b><u>*CURRENT</u></b>, *LASTSAVE<br>Other values: <i>Element list</i></td>
<td valign="top" rowspan="7">Optional, Positional 3</td>
</tr>
<tr>
<td valign="top">Element 1: Starting journal receiver</td>
<td valign="top">
<i>Qualified object name</i></td>
</tr>
<tr>
<td valign="top" style="padding-left:10pt">Qualifier 1: Starting journal receiver</td>
<td valign="top"><i>Name</i></td>
</tr><tr>
<td valign="top" style="padding-left:10pt">Qualifier 2: Library</td>
<td valign="top"><i>Name</i>, <b><u>*LIBL</u></b>, *CURLIB</td>
</tr><tr>
<td valign="top">Element 2: Ending journal receiver</td>
<td valign="top">
<i>Qualified object name</i></td>
</tr>
<tr>
<td valign="top" style="padding-left:10pt">Qualifier 1: Ending journal receiver</td>
<td valign="top"><i>Name</i></td>
</tr><tr>
<td valign="top" style="padding-left:10pt">Qualifier 2: Library</td>
<td valign="top"><i>Name</i>, <b><u>*LIBL</u></b>, *CURLIB</td>
</tr><tr>
<td valign="top"><a href="#RMVJRNCHG.FROMENTLRG"><b>FROMENTLRG</b></a></td>
<td valign="top">Starting large sequence number</td>
<td valign="top"><i>Character value</i>, <b><u>*LAST</u></b>, *LASTSAVE</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#RMVJRNCHG.TOENTLRG"><b>TOENTLRG</b></a></td>
<td valign="top">Ending large sequence number</td>
<td valign="top"><i>Character value</i>, <b><u>*FIRST</u></b>, *COMMITSTART</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top" rowspan="4"><a href="#RMVJRNCHG.TOJOBO"><b>TOJOBO</b></a></td>
<td valign="top">Fully qualified job name</td>
<td valign="top"><i>Qualified job name</i></td>
<td valign="top" rowspan="4">Optional</td>
</tr>
<tr>
<td valign="top">Qualifier 1: Fully qualified job name</td>
<td valign="top"><i>Name</i></td>
</tr><tr>
<td valign="top">Qualifier 2: User</td>
<td valign="top"><i>Name</i></td>
</tr><tr>
<td valign="top">Qualifier 3: Number</td>
<td valign="top">000000-999999</td>
</tr><tr>
<td valign="top"><a href="#RMVJRNCHG.CMTBDY"><b>CMTBDY</b></a></td>
<td valign="top">Commitment boundary</td>
<td valign="top"><b><u>*YES</u></b>, *NO</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#RMVJRNCHG.OPTION"><b>OPTION</b></a></td>
<td valign="top">Option</td>
<td valign="top"><b><u>*NONE</u></b>, *IGNINQMSG</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#RMVJRNCHG.OBJERROPT"><b>OBJERROPT</b></a></td>
<td valign="top">Object error option</td>
<td valign="top"><b><u>*CONTINUE</u></b>, *END</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#RMVJRNCHG.OUTPUT"><b>OUTPUT</b></a></td>
<td valign="top">Output</td>
<td valign="top"><b><u>*NONE</u></b>, *OUTFILE</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top" rowspan="3"><a href="#RMVJRNCHG.OUTFILE"><b>OUTFILE</b></a></td>
<td valign="top">File to receive output</td>
<td valign="top"><i>Qualified object name</i></td>
<td valign="top" rowspan="3">Optional</td>
</tr>
<tr>
<td valign="top">Qualifier 1: File to receive output</td>
<td valign="top"><i>Name</i></td>
</tr><tr>
<td valign="top">Qualifier 2: Library</td>
<td valign="top"><i>Name</i>, <b><u>*LIBL</u></b>, *CURLIB</td>
</tr><tr>
<td valign="top" rowspan="3"><a href="#RMVJRNCHG.OUTMBR"><b>OUTMBR</b></a></td>
<td valign="top">Output member options</td>
<td valign="top"><i>Element list</i></td>
<td valign="top" rowspan="3">Optional</td>
</tr>
<tr>
<td valign="top">Element 1: Member to receive output</td>
<td valign="top">
<i>Name</i>, <b><u>*FIRST</u></b></td>
</tr>
<tr>
<td valign="top">Element 2: Replace or add records</td>
<td valign="top">
<b><u>*REPLACE</u></b>, *ADD</td>
</tr>
<tr>
<td valign="top"><a href="#RMVJRNCHG.DETAIL"><b>DETAIL</b></a></td>
<td valign="top">Detail</td>
<td valign="top"><b><u>*ALL</u></b>, *ERR</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#RMVJRNCHG.FROMENT"><b>FROMENT</b></a></td>
<td valign="top">Starting sequence number</td>
<td valign="top">1-9999999999, <b><u>*LAST</u></b>, *LASTSAVE</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#RMVJRNCHG.TOENT"><b>TOENT</b></a></td>
<td valign="top">Ending sequence number</td>
<td valign="top">1-9999999999, <b><u>*FIRST</u></b>, *COMMITSTART</td>
<td valign="top">Optional</td>
</tr>
</table>
<table width="100%">
<tr><td align="right"><a href="#RMVJRNCHG.Top_Of_Page">Top</a></td></tr>
</table>
</div>
<div> <a name="RMVJRNCHG.JRN"></a>
<h3>Journal (JRN)</h3>
<p>Specifies the journal that contains the journal entries being removed.
</p>
<p>This is a required parameter.
</p>
<p><b>Qualifier 1: Journal</b>
</p>
<dl>
<dt><b><i>journal-name</i></b></dt>
<dd>Specify the name of the journal.
</dd>
</dl>
<p><b>Qualifier 2: Library</b>
</p>
<dl>
<dt><b><u>*LIBL</u></b></dt>
<dd>All libraries in the library list for the current thread are searched until the first match is found.
</dd>
</dl>
<dl>
<dt><b>*CURLIB</b></dt>
<dd>The current library for the job is searched. If no library is specified as the current library for the job, QGPL is used.
</dd>
<dt><b><i>library-name</i></b></dt>
<dd>Specify the name of the library to be searched.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#RMVJRNCHG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="RMVJRNCHG.FILE"></a>
<h3>Journaled file identification (FILE)</h3>
<p>Specifies a maximum of 300 physical database files whose journal entries are to be removed. The member in the physical file whose journaled changes are to be removed can also be specified.
</p>
<p>Either the <b>Journaled file identification (FILE)</b> parameter or the <b>Objects (OBJ)</b> parameter must be specified, but not both.
</p>
<p><b>Element 1: Journaled physical file</b>
</p>
<p><b>Qualifier 1: Journaled physical file</b>
</p>
<dl>
<dt><b>*ALL</b></dt>
<dd>Journaled changes are removed from all physical files in the specified library whose changes have been journaled to the specified journal. The library name <i>must</i> be specified. If *ALL is specified and you do not have the required authority to all of the objects, an error message is sent and the command ends.
</dd>
<dt><b><i>file-name</i></b></dt>
<dd>Specify the name of the database physical file whose journaled changes are to be removed.
</dd>
</dl>
<p><b>Qualifier 2: Library</b>
</p>
<dl>
<dt><b><u>*LIBL</u></b></dt>
<dd>All libraries in the library list for the current thread are searched until the first match is found.
</dd>
</dl>
<dl>
<dt><b>*CURLIB</b></dt>
<dd>The current library for the job is searched. If no library is specified as the current library for the job, QGPL is used.
</dd>
<dt><b><i>library-name</i></b></dt>
<dd>Specify the name of the library to be searched.
</dd>
</dl>
<p><b>Element 2: Member</b>
</p>
<p>Specifies the name of the member in the file whose journaled changes are removed. If *ALL is specified for the first element of this parameter, the value specified for the member name is used for all applicable files in the library. For example, if *FIRST is specified for the member name, journal changes are removed from the first member of all applicable files in the library.
</p>
<dl>
<dt><b><u>*ALL</u></b></dt>
<dd>Journaled changes are removed from all members in the file.
</dd>
<dt><b>*FIRST</b></dt>
<dd>Journaled changes are removed from the first member in the file.
</dd>
<dt><b><i>member-name</i></b></dt>
<dd>Specify the name of the member in the file whose journaled changes are removed.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#RMVJRNCHG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="RMVJRNCHG.OBJ"></a>
<h3>Objects (OBJ)</h3>
<p>Specifies a maximum of 300 objects whose journal entries are being removed. The name of the member in the file whose journal entries are being removed can also be specified.
</p>
<p>Either the <b>Journaled file identification (FILE)</b> parameter or the <b>Objects (OBJ)</b> parameter must be specified, but not both.
</p>
<p><b>Element 1: Object</b>
</p>
<p><b>Qualifier 1: Object</b>
</p>
<dl>
<dt><b>*ALL</b></dt>
<dd>All objects in the specified library of the specified type whose changes are being journaled to the specified journal have their journal entries removed. The library name must be specified. If *ALL is specified and you do not have the required authority to all of the objects, an error message is sent and the command ends.
</dd>
<dt><b><i>object-name</i></b></dt>
<dd>Specify the name of the object whose journal entries are being removed.
</dd>
</dl>
<p><b>Qualifier 2: Library</b>
</p>
<dl>
<dt><b><u>*LIBL</u></b></dt>
<dd>All libraries in the library list for the current thread are searched until the first match is found.
</dd>
</dl>
<dl>
<dt><b>*CURLIB</b></dt>
<dd>The current library for the job is searched. If no library is specified as the current library for the job, QGPL is used.
</dd>
<dt><b><i>library-name</i></b></dt>
<dd>Specify the name of the library to be searched.
</dd>
</dl>
<p><b>Element 2: Object type</b>
</p>
<p>Specifies the object type of the object that has its journal entries removed.
</p>
<dl>
<dt><b>*FILE</b></dt>
<dd>Entries for database file members are removed.
</dd>
<dt><b>*DTAARA</b></dt>
<dd>Entries for data areas are removed.
</dd>
</dl>
<p><b>Element 3: Member, if data base file</b>
</p>
<p>Specifies the name of the member in the file that has its journal entries removed. If *ALL is specified for the first element of this parameter, the value specified for the member name is used for all applicable files in the library. For example, if *FIRST is specified for the member name, journal changes are removed from the first member of all applicable files in the library.
</p>
<p>
<b>Note: </b>If the specified object type is not *FILE, the member name element value is ignored.
</p>
<dl>
<dt><b><u>*ALL</u></b></dt>
<dd>Journal entries are removed from all members in the file.
</dd>
<dt><b>*FIRST</b></dt>
<dd>Journal entries are removed from the first member of the file.
</dd>
<dt><b><i>member-name</i></b></dt>
<dd>Specify the name of the member in the file whose journal entries are to be removed.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#RMVJRNCHG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="RMVJRNCHG.RCVRNG"></a>
<h3>Range of journal receivers (RCVRNG)</h3>
<p>Specifies the starting and ending journal receivers used in removing the journaled changes. The system begins the removal operation with the starting journal receiver (specified by the first value) and proceeds through the chain of receivers until the ending receiver (specified by the last value) is processed. The values specified on the parameter represent journal receivers in reverse order from the order in which they were attached to the journal.
</p>
<p>
<b>Note: </b>The maximum number of receivers that can be included in a range of receivers is 1024. If more than 1024 receivers are included in the range specified, an error message is sent and no changes are applied. You can change the values specified on this parameter so that the limit is not exceeded.
</p>
<p><b>Single values</b>
</p>
<dl>
<dt><b><u>*CURRENT</u></b></dt>
<dd>The journal receiver that is currently attached when starting to remove journal entries is used.
</dd>
<dt><b>*LASTSAVE</b></dt>
<dd>The range of journal receivers used is determined by the system, as a result of save information for the objects that have their recorded changes removed. This parameter value is only valid if *LASTSAVE is also specified on the <b>Starting sequence number (FROMENT)</b> parameter, and on the <b>Starting large sequence number (FROMENTLRG)</b> parameter.
</dd>
</dl>
<p><b>Element 1: Starting journal receiver</b>
</p>
<p><b>Qualifier 1: Starting journal receiver</b>
</p>
<dl>
<dt><b><i>starting-journal-receiver</i></b></dt>
<dd>Specify the name of the journal receiver used as the first (newest) receiver whose journaled changes are to be removed.
</dd>
</dl>
<p><b>Qualifier 2: Library</b>
</p>
<dl>
<dt><b><u>*LIBL</u></b></dt>
<dd>All libraries in the library list for the current thread are searched until the first match is found.
</dd>
</dl>
<dl>
<dt><b>*CURLIB</b></dt>
<dd>The current library for the job is used to locate the journal receiver. If no library is specified as the current library for the job, QGPL is used.
</dd>
<dt><b><i>library-name</i></b></dt>
<dd>Specify the library where the journal receiver is located.
</dd>
</dl>
<p><b>Element 2: Ending journal receiver</b>
</p>
<p><b>Qualifier 1: Ending journal receiver</b>
</p>
<dl>
<dt><b><i>ending-journal-receiver</i></b></dt>
<dd>Specify the name of the journal receiver used as the last (oldest) receiver whose journaled changes are to be removed. If the end of the receiver chain is reached before a receiver of this name is found, the operation ends.
</dd>
</dl>
<p><b>Qualifier 2: Library</b>
</p>
<dl>
<dt><b><u>*LIBL</u></b></dt>
<dd>All libraries in the library list for the current thread are searched until the first match is found.
</dd>
</dl>
<dl>
<dt><b>*CURLIB</b></dt>
<dd>The current library for the job is used to locate the journal receiver. If no library is specified as the current library for the job, QGPL is used.
</dd>
<dt><b><i>library-name</i></b></dt>
<dd>Specify the library where the journal receiver is located.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#RMVJRNCHG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="RMVJRNCHG.FROMENTLRG"></a>
<h3>Starting large sequence number (FROMENTLRG)</h3>
<p>Specifies the journal entry used as the starting point for removing file changes that were journaled.
</p>
<p>
<b>Note: </b>You can specify a value for either the <b>Starting sequence number (FROMENT)</b> parameter or the <b>Starting large sequence number (FROMENTLRG)</b> parameter, but not for both.
</p>
<dl>
<dt><b><u>*LAST</u></b></dt>
<dd>Specifies that journaled changes are removed starting with the last journal entry in the specified receiver range.
</dd>
<dt><b>*LASTSAVE</b></dt>
<dd>Journal entries are removed starting with the last journal entry before the last save operation. The system determines the actual starting position for each of the objects specified on the command. The parameter value implies that the object was just restored on the system.
<p>If the restored version of the object was a version that was saved using the save-while-active function, then the system will start removing changes from the corresponding start-of-save entry whether or not this was actually the last save of the object. When using save-while-active, information needed for removing journaled changes is saved with the object and restored. When all objects specified on the remove command have been restored from save versions that used save-while-active, the system does not need to scan all the journal receivers to find the save points for the objects. This can improve the performance of the remove processing.
</p>
<p>If the restored version of the object was a version that was saved when it was not in use (normal save), then the system also verifies that the date and time of the saved version of the object that is restored on the system is the same as the date and time that the object was last saved, as indicated on the journal.
</p>
<p>If the dates and times do not match, no entries are removed and an inquiry message is sent to the user or system operator requesting a cancel or ignore response. If an ignore response is given to the message, the operation is attempted. A cancel response causes the operation to end, and no journal changes are removed.
</p>
<p>If the object was last saved with the save-while-active function, the saved copy of each object includes all changes in the journal entries up to the corresponding start-of-save journal entry. In this case, the system removes changes beginning with the first journal entry preceding the start-of-save entry.
</p>
<p>If the object was last saved when it was not in use (normal save), the saved copy of each object includes all changes in the journal entries up to the corresponding object saved journal entry. In this case, the system removes changes beginning with the first journal entry preceding the object saved entry.
</p>
<p>
<b>Note: </b>If any database file members were saved specifying *NOCMTBDY as the second element of the SAVACTWAIT parameter on the save command and are currently in a state where apply journaled changes is required, then *LASTSAVE must be specified.
</p>
</dd>
<dt><b><i>starting-sequence-number</i></b></dt>
<dd>Specify the sequence number of the first journal entry that is processed when removing journaled changes from the specified objects. The acceptable range is 1 to 18,446,744,073,709,551,600.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#RMVJRNCHG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="RMVJRNCHG.TOENTLRG"></a>
<h3>Ending large sequence number (TOENTLRG)</h3>
<p>Specifies the journal entry used as the ending point for removing changes that were journaled.
</p>
<p>
<b>Note: </b>You can specify a value for either the <b>Ending sequence number (TOENT)</b> parameter or the <b>Ending large sequence number (TOENTLRG)</b> parameter, but not for both.
</p>
<dl>
<dt><b><u>*FIRST</u></b></dt>
<dd>Journal entries are removed until the first entry in the specified receiver range is processed.
</dd>
<dt><b>*COMMITSTART</b></dt>
<dd>Either FROMENTLRG(*LASTSAVE) or FROMENT(*LASTSAVE) must be specified, along with CMTBDY(*YES) to specify this value. Starting with the last save journal entry, only changes for journal entries for any partial transactions are removed, back to the start of the commit transaction. This option can be used when the version of the object that was restored was a version that was saved with partial transactions and Apply Journaled Changes (APYJRNCHG) is not desired.
</dd>
<dt><b><i>ending-sequence-number</i></b></dt>
<dd>Specify the sequence number of the last journaled change that is removed from the specified objects. The acceptable range is 1 to 18,446,744,073,709,551,600.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#RMVJRNCHG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="RMVJRNCHG.TOJOBO"></a>
<h3>Fully qualified job name (TOJOBO)</h3>
<p>Specifies the job identifier of the job that, when it opens an object that is specified, ends the removing of journal entries by this command. For example, the specified job could be a job suspected of causing errors when the job opens a file member. The first job open entry found for any of the specified objects, is the ending point for all the objects specified.
</p>
<p>This parameter cannot be used to remove a specific job's journal entries; all entries for all jobs are removed.
</p>
<p>Only objects of type *FILE have journal entries related to job opens. The TOJOBO parameter cannot be used if the object for which changes are being removed from was not recording open and close entries. For further clarification, refer to the Omit journal entry (OMTJRNE) parameter for the STRJRN, STRJRNPF, and CHGJRNOBJ commands.
</p>
<p><b>Other values</b>
</p>
<dl>
<dt><b><i>job-identifier</i></b></dt>
<dd>Specify the job name, the user name, and the job number of the job to use. You can also specify that the job name only, or that the job name and the user name be used.
<dl>
<dt><b><i>job-name</i></b></dt>
<dd>Specify the job name of the job.
</dd>
<dt><b><i>user-name</i></b></dt>
<dd>Specify the user name of the job.
</dd>
<dt><b><i>job-number</i></b></dt>
<dd>Specify the system-assigned job number.
</dd>
</dl>
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#RMVJRNCHG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="RMVJRNCHG.CMTBDY"></a>
<h3>Commitment boundary (CMTBDY)</h3>
<p>Specifies whether commitment boundaries are honored when the journal entries from which journaled changes are to be removed are part of a commitment control logical unit of work (LUW). More information on the use of commitment control is in the Database information in the iSeries Information Center at http://www.ibm.com/eserver/iseries/infocenter.
</p>
<p>
<b>Note: </b>For purposes of this parameter description, the TO option is used to describe either the TOENTLRG, the TOENT, or the TOJOBO parameter, whichever is specified.
</p>
<dl>
<dt><b><u>*YES</u></b></dt>
<dd>The journal entries are removed from the entry specified on the FROMENTLRG or FROMENT parameter to the entry indicated on the TO option, honoring commitment boundaries. The FROMENTLRG or FROMENT parameter must identify a point that is at a commitment boundary.
<ul>
<li>If the journal entry specified on the FROMENTLRG or FROMENT parameter is in the middle of the LUW of which it is a participant, an error message is sent and the operation is not attempted.
</li>
<li>If the journal entry indicated on the TO option is in the middle of the LUW of which it is a participant, the operation stops at the commitment boundary before that journal entry. A diagnostic message is sent at the end of the operation.
</li>
</ul>
<p>
<b>Note: </b>If a journal entry is encountered that causes the operation to end before the entry indicated on the TO option, commitment boundaries might not be honored.
</p>
</dd>
<dt><b>*NO</b></dt>
<dd>The journal entries are removed from the entry specified on the FROMENTLRG or FROMENT parameter to the entry indicated on the TO option, regardless of commitment boundaries. Even if a journal entry within this range is a participant of the LUW, the operation is attempted.
<p>
<b>Note: </b>If CMTBDY(*NO) is specified and any object being applied to has been restored from a saved version that contains partial transactions, the changes pending for those partial transactions will not be removed if the transactions do not complete within the specified range. The object will only be usable if all pending transactions complete within the specified range.
</p>
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#RMVJRNCHG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="RMVJRNCHG.OPTION"></a>
<h3>Option (OPTION)</h3>
<p>Specifies whether additional checking should be done prior to removing journal changes.
</p>
<dl>
<dt><b><u>*NONE</u></b></dt>
<dd>All protective checks are performed before any journal changes are removed.
</dd>
<dt><b>*IGNINQMSG</b></dt>
<dd>Ignore inquiry message. Inquiry message CPA7050 is not presented to the user, even if the object that is being applied to is not from the last save of the object. The remove operation continues.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#RMVJRNCHG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="RMVJRNCHG.OBJERROPT"></a>
<h3>Object error option (OBJERROPT)</h3>
<p>Specifies how the processing of journal entries should proceed when an error situation is encounterd.
</p>
<dl>
<dt><b><u>*CONTINUE</u></b></dt>
<dd>When a journal entry for a specific object is encountered that cannot be processed, the remaining journal entries for that object will not be processed. Processing of journal entries for other objects will continue. A diagnostic message will be sent indicating that the processing of journaled changes for that object was not successful. An indication is also placed in any output file record to indicate processing ended early for the specific object.
</dd>
<dt><b>*END</b></dt>
<dd>When the first journal entry is encountered that cannot be successfully processed, processing will end for all objects.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#RMVJRNCHG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="RMVJRNCHG.OUTPUT"></a>
<h3>Output (OUTPUT)</h3>
<p>Specifies whether a list of information about the objects to whom changes were removed is created. The information can be directed to a database file.
</p>
<dl>
<dt><b><u>*NONE</u></b></dt>
<dd>No data base file is created with the output. Messages are sent to the job log for the first 512 objects for which processing failed to complete successfully.
</dd>
<dt><b>*OUTFILE</b></dt>
<dd>Output information about the remove operation will be directed to the database file specified on the <b>File to receive output (OUTFILE)</b> parameter.
<p>
<b>Note: </b>You must specify the database file name on the <b>File to receive output (OUTFILE)</b> parameter when OUTPUT(*OUTFILE) is specified.
</p>
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#RMVJRNCHG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="RMVJRNCHG.OUTFILE"></a>
<h3>File to receive output (OUTFILE)</h3>
<p>Specifies the database file to which the information is directed when *OUTFILE is specified on <b>Output (OUTPUT)</b> parameter. If the file does not exist, this command creates a database file in the specified library. If a new file is created, the system uses QAJRNCHG in QSYS with the format name QJOAPYRM as a model.
</p>
<p><b>Qualifier 1: File to receive output</b>
</p>
<dl>
<dt><b><i>database-file-name</i></b></dt>
<dd>Specify the name of the database file to which output from the command is directed. If this file does not exist, it is created in the specified library.
</dd>
</dl>
<p><b>Qualifier 2: Library</b>
</p>
<dl>
<dt><b><u>*LIBL</u></b></dt>
<dd>All libraries in the library list for the current thread are searched until the first match is found.
</dd>
</dl>
<dl>
<dt><b>*CURLIB</b></dt>
<dd>The current library for the job is searched. If no library is specified as the current library for the job, QGPL is used.
</dd>
<dt><b><i>library-name</i></b></dt>
<dd>Specify the name of the library to be searched.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#RMVJRNCHG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="RMVJRNCHG.OUTMBR"></a>
<h3>Output member options (OUTMBR)</h3>
<p>Specifies the name of the database file member to which the output is directed when *OUTFILE is specified for the <b>Output (OUTPUT)</b> parameter.
</p>
<p><b>Element 1: Member to receive output</b>
</p>
<dl>
<dt><b><u>*FIRST</u></b></dt>
<dd>The first member in the file receives the output. If OUTMBR(*FIRST) is specified and the member does not exist, the system creates a member with the name of the file specified for the <b>File to receive output (OUTFILE)</b> parameter.
</dd>
<dt><b><i>name</i></b></dt>
<dd>Specify the name of the file member that receives the output. If OUTMBR(member-name) is specified and the member does not exist, the system creates it.
<p>If the member exists, you can add records to the end of the existing member or clear the existing member and add the records.
</p>
</dd>
</dl>
<p><b>Element 2: Replace or add records</b>
</p>
<dl>
<dt><b><u>*REPLACE</u></b></dt>
<dd>The existing records in the specified database file member are replaced by the new records.
</dd>
<dt><b>*ADD</b></dt>
<dd>The new records are added to the existing information in the specified database file member.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#RMVJRNCHG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="RMVJRNCHG.DETAIL"></a>
<h3>Type of output information (DETAIL)</h3>
<p>Specifies the type of information that is directed to the spooled file.
</p>
<dl>
<dt><b><u>*ALL</u></b></dt>
<dd>The file will contain information about the command and an entry for each object that matched the object selection specified on the command.
</dd>
<dt><b>*ERR</b></dt>
<dd>The file will contain information about the command, an entry only for each object for which the removal of journaled changes ended early.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#RMVJRNCHG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="RMVJRNCHG.FROMENT"></a>
<h3>Starting sequence number (FROMENT)</h3>
<p>Specifies the journal entry used as the starting point for removing file changes that were journaled.
</p>
<p>
<b>Note: </b>You can specify a value for either the <b>Starting sequence number (FROMENT)</b> parameter or the <b>Starting large sequence number (FROMENTLRG)</b> parameter, but not for both.
</p>
<dl>
<dt><b><u>*LAST</u></b></dt>
<dd>Specifies that journaled changes are removed starting with the last journal entry in the specified receiver range.
</dd>
<dt><b>*LASTSAVE</b></dt>
<dd>Journal entries are removed starting with the last journal entry before the last save operation. The system determines the actual starting position for each of the objects specified on the command. The parameter value implies that the object was just restored on the system.
<p>If the restored version of the object was a version that was saved using the save-while-active function, then the system will start removing changes from the corresponding start-of-save entry whether or not this was actually the last save of the object. When using save-while-active, information needed for removing journaled changes is saved with the object and restored. When all objects specified on the remove command have been restored from save versions that used save-while-active, the system does not need to scan all the journal receivers to find the save points for the objects. This can improve the performance of the remove processing.
</p>
<p>If the restored version of the object was a version that was saved when it was not in use (normal save), then the system also verifies that the date and time of the saved version of the object that is restored on the system is the same as the date and time that the object was last saved, as indicated on the journal.
</p>
<p>If the dates and times do not match, no entries are removed and an inquiry message is sent to the user or system operator requesting a cancel or ignore response. If an ignore response is given to the message, the operation is attempted. A cancel response causes the operation to end, and no journal changes are removed.
</p>
<p>If the object was last saved with the save-while-active function, the saved copy of each object includes all changes in the journal entries up to the corresponding start-of-save journal entry. In this case, the system removes changes beginning with the first journal entry preceding the start-of-save entry.
</p>
<p>If the object was last saved when it was not in use (normal save), the saved copy of each object includes all changes in the journal entries up to the corresponding object saved journal entry. In this case, the system removes changes beginning with the first journal entry preceding the object saved entry.
</p>
<p>
<b>Note: </b>If any database file members were saved specifying *NOCMTBDY as the second element of the SAVACTWAIT parameter on the save command and are currently in a state where apply journaled changes is required, then *LASTSAVE must be specified.
</p>
</dd>
<dt><b><i>starting-sequence-number</i></b></dt>
<dd>Specify the sequence number of the first journal entry that is processed when removing journaled changes from the specified objects. The acceptable range is 1 to 9,999,999,999.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#RMVJRNCHG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="RMVJRNCHG.TOENT"></a>
<h3>Ending sequence number (TOENT)</h3>
<p>Specifies the journal entry used as the ending point for removing changes that were journaled.
</p>
<p>
<b>Note: </b>You can specify a value for either the <b>Ending sequence number (TOENT)</b> parameter or the <b>Ending large sequence number (TOENTLRG)</b> parameter, but not for both.
</p>
<dl>
<dt><b><u>*FIRST</u></b></dt>
<dd>Journal entries are removed until the first entry in the specified receiver range is processed.
</dd>
<dt><b>*COMMITSTART</b></dt>
<dd>Either FROMENTLRG(*LASTSAV) or FROMENT(*LASTSAV) must be specified, along with CMTBDY(*YES) to specify this value. Starting with the last save journal entry, only changes for journal entries for any partial transactions are removed, back to the start of the commit transaction. This option can be used when the version of the object that was restored was a version that was saved with partial transactions and Apply Journaled Changes (APYJRNCHG) is not desired.
</dd>
<dt><b><i>ending-sequence-number</i></b></dt>
<dd>Specify the sequence number of the last journaled change that is removed from the specified objects. The acceptable range is 1 to 9,999,999,999.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#RMVJRNCHG.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div><h3><a name="RMVJRNCHG.COMMAND.EXAMPLES">Examples</a> </h3>
<p>
<pre>
RMVJRNCHG JRN(JRNA) FILE((LIB2/PAYROLL JAN))
RCVRNG(RCV25 RCV22) TOENT(*FIRST)
</pre>
</p>
<p>This command causes the system to remove all journaled changes found in journal JRNA from member JAN of file PAYROLL in library LIB2 that are found on the journal receiver chain starting with receiver RCV25 and ending with receiver RCV22. Library search list *LIBL is used to find journal JRNA and receivers RCV25 and RCV22.
</p>
<p>The removal operation begins with the last journaled change on the receiver chain and ends with the first journaled change.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#RMVJRNCHG.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div><h3><a name="RMVJRNCHG.ERROR.MESSAGES">Error messages</a> </h3>
<p><b><u>*ESCAPE Messages</u></b>
</p>
<dl>
<dt><b>CPF69A9</b></dt>
<dd>Internal error detected, error code &amp;2.
</dd>
<dt><b>CPF69AA</b></dt>
<dd>Unable to refer to object &amp;1 saved with STG(*FREE).
</dd>
<dt><b>CPF69AB</b></dt>
<dd>Values for RCVRNG parameter not correct.
</dd>
<dt><b>CPF70A7</b></dt>
<dd>Not all entries applied or removed for at least one object.
</dd>
<dt><b>CPF70A8</b></dt>
<dd>File &amp;1 in library &amp;2 cannot be used.
</dd>
<dt><b>CPF70AA</b></dt>
<dd>FROMENT(*LASTSAVE) must be specified.
</dd>
<dt><b>CPF70AB</b></dt>
<dd>Journal receiver &amp;1 in library &amp;2 not found.
</dd>
<dt><b>CPF70CC</b></dt>
<dd>Cannot perform operation beyond journal entry &amp;7.
</dd>
<dt><b>CPF70CD</b></dt>
<dd>Cannot perform operation beyond journal entry &amp;7.
</dd>
<dt><b>CPF70CE</b></dt>
<dd>Cannot perform operation beyond journal entry &amp;7.
</dd>
<dt><b>CPF70EB</b></dt>
<dd>Referential constraint error on member &amp;3.
</dd>
<dt><b>CPF70EC</b></dt>
<dd>Referential constraint error. Reason code &amp;9.
</dd>
<dt><b>CPF70EE</b></dt>
<dd>Maximum encoded vector access paths for member &amp;3.
</dd>
<dt><b>CPF7002</b></dt>
<dd>File &amp;1 in library &amp;2 not a physical file.
</dd>
<dt><b>CPF7003</b></dt>
<dd>Entry not journaled to journal &amp;1. Reason code &amp;3.
</dd>
<dt><b>CPF7006</b></dt>
<dd>Member &amp;3 not found in file &amp;1 in &amp;2.
</dd>
<dt><b>CPF7007</b></dt>
<dd>Cannot allocate member &amp;3 file &amp;1 in &amp;2.
</dd>
<dt><b>CPF701B</b></dt>
<dd>Journal recovery of an interrupted operation failed.
</dd>
<dt><b>CPF704A</b></dt>
<dd>Record length incorrect for member &amp;3.
</dd>
<dt><b>CPF704F</b></dt>
<dd>TOJOBO or TOJOBC parameter not valid for receiver range.
</dd>
<dt><b>CPF7041</b></dt>
<dd>Entry for job &amp;3/&amp;2/&amp;1 not found.
</dd>
<dt><b>CPF7042</b></dt>
<dd>Object not journaled or journaled to different journal.
</dd>
<dt><b>CPF7044</b></dt>
<dd>Apply or remove of journaled entries failed, reason code &amp;7.
</dd>
<dt><b>CPF7045</b></dt>
<dd>Journal receiver &amp;1 in &amp;2 partially damaged.
</dd>
<dt><b>CPF7046</b></dt>
<dd>Duplicate key not allowed for member &amp;3.
</dd>
<dt><b>CPF7047</b></dt>
<dd>Member &amp;3 file &amp;1 in &amp;2 full.
</dd>
<dt><b>CPF7048</b></dt>
<dd>Cannot perform journaled change to member &amp;3.
</dd>
<dt><b>CPF7049</b></dt>
<dd>Cannot perform operation beyond journal entry &amp;7.
</dd>
<dt><b>CPF7051</b></dt>
<dd>Save entry for *&amp;6 object not found.
</dd>
<dt><b>CPF7052</b></dt>
<dd>Select/omit failure in logical file over member &amp;3.
</dd>
<dt><b>CPF7053</b></dt>
<dd>Values for RCVRNG parameter not correct; reason code &amp;1.
</dd>
<dt><b>CPF7054</b></dt>
<dd>FROM and TO values not valid.
</dd>
<dt><b>CPF7056</b></dt>
<dd>Object &amp;1 not being journaled with before images.
</dd>
<dt><b>CPF7057</b></dt>
<dd>*LIBL not allowed with FILE(*ALL) or OBJ(*ALL).
</dd>
<dt><b>CPF7058</b></dt>
<dd>Apply or remove journaled entries operation failed.
</dd>
<dt><b>CPF705A</b></dt>
<dd>Operation failed due to remote journal.
</dd>
<dt><b>CPF7063</b></dt>
<dd>Cannot use file &amp;1 as OUTFILE.
</dd>
<dt><b>CPF7067</b></dt>
<dd>FROMENTLRG or FROMENT option not valid. Commit boundary violation.
</dd>
<dt><b>CPF7068</b></dt>
<dd>Entry needed for apply or remove operation not found.
</dd>
<dt><b>CPF7069</b></dt>
<dd>No entries applied or removed using journal &amp;1.
</dd>
<dt><b>CPF7077</b></dt>
<dd>Key mapping error on member &amp;3.
</dd>
<dt><b>CPF7078</b></dt>
<dd>Cannot apply or remove changes to member &amp;3.
</dd>
<dt><b>CPF9801</b></dt>
<dd>Object &amp;2 in library &amp;3 not found.
</dd>
<dt><b>CPF9802</b></dt>
<dd>Not authorized to object &amp;2 in &amp;3.
</dd>
<dt><b>CPF9803</b></dt>
<dd>Cannot allocate object &amp;2 in library &amp;3.
</dd>
<dt><b>CPF9809</b></dt>
<dd>Library &amp;1 cannot be accessed.
</dd>
<dt><b>CPF9810</b></dt>
<dd>Library &amp;1 not found.
</dd>
<dt><b>CPF9812</b></dt>
<dd>File &amp;1 in library &amp;2 not found.
</dd>
<dt><b>CPF9820</b></dt>
<dd>Not authorized to use library &amp;1.
</dd>
<dt><b>CPF9822</b></dt>
<dd>Not authorized to file &amp;1 in library &amp;2.
</dd>
<dt><b>CPF9825</b></dt>
<dd>Not authorized to device &amp;1.
</dd>
<dt><b>CPF9860</b></dt>
<dd>Error occurred during output file processing.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#RMVJRNCHG.Top_Of_Page">Top</a></td></tr>
</table>
</body>
</html>