ibm-information-center/dist/eclipse/plugins/i5OS.ic.rzaki_5.4.0.1/rzakiappyjrn.htm

217 lines
14 KiB
HTML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="security" content="public" />
<meta name="Robots" content="index,follow" />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta name="DC.Type" content="concept" />
<meta name="DC.Title" content="Apply journaled changes" />
<meta name="abstract" content="If an object becomes damaged or is not usable you can recover the object using the Apply Journaled Changes (APYJRNCHG) or Apply Journaled Changes Extend (APYJRNCHGX) command. If you restore an object that was saved with partial transactions, then you must apply journaled changes to that object before it is usable." />
<meta name="description" content="If an object becomes damaged or is not usable you can recover the object using the Apply Journaled Changes (APYJRNCHG) or Apply Journaled Changes Extend (APYJRNCHGX) command. If you restore an object that was saved with partial transactions, then you must apply journaled changes to that object before it is usable." />
<meta name="DC.Relation" scheme="URI" content="rzakiapyjrnchg.htm" />
<meta name="DC.Relation" scheme="URI" content="rzakiifsconsid.htm" />
<meta name="DC.Relation" scheme="URI" content="rzakiwrkfwrdrecov.htm" />
<meta name="DC.Relation" scheme="URI" content="../cl/apyjrnchg.htm" />
<meta name="DC.Relation" scheme="URI" content="../cl/apyjrnchgx.htm" />
<meta name="DC.Relation" scheme="URI" content="rzakijrncodes.htm" />
<meta name="DC.Relation" scheme="URI" content="../cl/cpyf.htm" />
<meta name="DC.Relation" scheme="URI" content="../cl/inzpfm.htm" />
<meta name="DC.Relation" scheme="URI" content="../cl/rgzpfm.htm" />
<meta name="DC.Relation" scheme="URI" content="../cl/dspjrn.htm" />
<meta name="DC.Relation" scheme="URI" content="../cl/rcvjrne.htm" />
<meta name="DC.Relation" scheme="URI" content="../cl/rtvjrne.htm" />
<meta name="DC.Relation" scheme="URI" content="../apis/QJORJRNE.htm" />
<meta name="DC.Relation" scheme="URI" content="rzakiqajrnchg.htm" />
<meta name="copyright" content="(C) Copyright IBM Corporation 2004, 2006" />
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 2004, 2006" />
<meta name="DC.Format" content="XHTML" />
<meta name="DC.Identifier" content="rzakiappyjrn" />
<meta name="DC.Language" content="en-us" />
<!-- 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. -->
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
<link rel="stylesheet" type="text/css" href="./ic.css" />
<title>Apply journaled changes</title>
</head>
<body id="rzakiappyjrn"><a name="rzakiappyjrn"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1">Apply journaled changes</h1>
<div><p>If an object becomes damaged or is not usable you can recover the
object using the <span class="cmdname">Apply Journaled Changes (APYJRNCHG)</span> or <span class="cmdname">Apply
Journaled Changes Extend (APYJRNCHGX)</span> command. If you restore an
object that was saved with partial transactions, then you must apply journaled
changes to that object before it is usable.</p>
<div class="section"><h4 class="sectiontitle">Difference between APYJRNCHG and APYJRNCHGX</h4><p><img src="./delta.gif" alt="Start of change" />There
are slight differences between the <span class="cmdname">Apply Journaled Changes (APYJRNCHG)</span> command
and the <span class="cmdname">Apply Journaled Changes Extend (APYJRNCHGX)</span> command.
The <span class="cmdname">APYJRNCHGX</span> command only applies entries for database
files and requires entries to be applied for all files in a library. This
command will also apply entries for logical files found in the library, and
it will apply the create file (D CT) journal entry. The <span class="cmdname">APYJRNCHG</span> command
will not apply entries for logical files, or the create file entry. The APYJRNCHG
command also applies entries for non-database objects.<img src="./deltaend.gif" alt="End of change" /></p>
</div>
<div class="section"><h4 class="sectiontitle">Applying journaled changes to all objects</h4><p>You can
apply journaled changes to all objects that are journaled to the journal by
specifying OBJ(*ALLJRNOBJ) on the APYJRNCHG command.</p>
</div>
<div class="section"><h4 class="sectiontitle">Applying journaled changes and commitment control</h4><p>You
can ensure that commitment transaction boundaries are honored during the apply
journaled changes operations by using the commit boundary (CMTBDY) parameter.
The default value for the CMTBDY parameter is *YES. If the system encounters
a journal entry that causes the apply or remove process to stop for the object,
the commitment boundary might not be honored.</p>
</div>
<div class="section"><h4 class="sectiontitle">Error handling</h4><p>When the system encounters a journal
entry it cannot process, it ends apply processing either for that specific
object or for the entire apply operation. You can specify how the system behaves
when it encounters a journal entry it cannot process with the Object Error
Option (OBJERROPT) parameter on the <span class="cmdname">APYJRNCHG</span> or <span class="cmdname">APYJRNCHGX</span> command.
If you specify OBJERROPT(*CONTINUE), the system ends apply processing for
the specific object that has an error, but it continues apply processing for
the other objects in the apply operation. If you specify OBJERROPT(*END),
the system ends processing for the entire apply operation. The OBJERROPT parameter
is also available for the <span class="cmdname">Remove Journaled Changes (RMVJRNCHG)</span> command.
Actions of applying or removing journaled changes by journal code shows which
entry types cause processing to end for an object.</p>
</div>
<div class="section"><h4 class="sectiontitle">Before you start applying changes</h4><p>You must first
reestablish the object to a condition that you know is undamaged.</p>
<ul><li>To reestablish the object, restore the last saved copy of the object.
The object must have been saved while it was being journaled.</li>
<li>If you saved a database physical file by using the <span class="cmdname">Copy File
(CPYF)</span> command, use the CPYF command to restore the member by overlaying
the contents of the existing object with the old values.</li>
<li>If the member of a database physical file was just initialized, initialize
the member again using the <span class="cmdname">Initialize Physical File Member (INZPFM)</span> command
or a user-created application program.</li>
<li>If a member of a database physical file was just reorganized, reorganize
the member again using the <span class="cmdname">Reorganize Physical File Member (RGZPFM)</span> command.</li>
</ul>
<p>You must restore the needed journal receivers if any of the following
are true:</p>
<ul><li>If the journal receivers were deleted since the object was last staved
(or some other point).</li>
<li>If the journal receivers were saved with their storage freed.</li>
</ul>
<p>When you apply journaled changes to an object, the object cannot be
in use by anyone else.</p>
</div>
<div class="section"><h4 class="sectiontitle">Starting and stopping points for applying journaled changes</h4><p>When
the condition of the object has been established, use the APYJRNCHG or APYJRNCHGX
command to apply the changes that are recorded in the journal to the object.</p>
<p>The
system applies the changes to the object in the same order as they were originally
made. You must plan where you want to start and stop applying changes. Use
the <span class="cmdname">Display Journal (DSPJRN)</span> command to identify the desired
starting and ending points. If you use a control language (CL) program for
your recovery procedures, use the following:</p>
<ul><li><span class="cmdname">Receive Journal Entry (RCVJRNE)</span> command to receive
journal entries as they are written to the journal receiver.</li>
<li><span class="cmdname">Retrieve Journal Entry (RTVJRNE)</span> command to retrieve
a journal entry and place it in program variables.</li>
</ul>
<p>You can also use the <span class="apiname">QjoRetrieveJournalEntries</span> API
to retrieve the information into a High Level Language (HLL) program.</p>
</div>
<div class="section"><h4 class="sectiontitle">Start the apply</h4><p>On the APYJRNCHG or APYJRNCHGX command,
specify the first journal entry to be applied to the object. This entry can
be selected from any of the following points:</p>
<ul><li>After the last save of the object</li>
<li>From the first journal entry</li>
<li>From an identified sequence number that corresponds to a date and time
stamp</li>
<li>From an identified sequence number that corresponds to the start or end
of a particular job's use of the object provided that you did not specify
one of the following: <ul><li>OMTJRNE(*OPNCLO) when starting journaling or changing the journaling attributes
for object.</li>
<li>OMTJRNE(*OPNCLOSYN) when starting journaling or changing the journaling
attributes for a directory or stream file.</li>
<li>RCVSIZOPT(*MINFIXLEN) for the journal at any time while the object was
journaled.</li>
<li>A FIXLENDTA option that omitted the job name.</li>
</ul>
</li>
<li>A specific sequence number<div class="note"><span class="notetitle">Note:</span> If an object was restored with partial
transactions, then you must specify FROMENT(*LASTSAVE) or FROMENTLRG (*LASTSAVE).</div>
</li>
</ul>
</div>
<div class="section"><h4 class="sectiontitle">End the apply</h4><p>You can stop applying the journal
entries at the following:</p>
<ul><li>The end of the data in the last journal receiver in the receiver range</li>
<li>A particular entry in the journal</li>
<li>A date and time stamp</li>
<li>A commitment boundary</li>
<li>The start or end of a particular job's use of the data in the object,
provided you did not specify the following: <ul><li>OMTJRNE(*OPNCLO) when starting journaling or changing the journaling attributes
for the object.</li>
<li>OMTJRNE(*OPNCLOSYN) when starting journaling or changing the journaling
attributes for a directory or stream file.</li>
<li>RCVSIZOPT(*MINFIXLEN) for the journal at any time while the object was
journaled.</li>
<li>A FIXLENDTA option that omitted the job name.</li>
</ul>
</li>
<li>The journal entry that indicates when the object was last restored</li>
<li>A specific sequence number</li>
</ul>
</div>
<div class="section"><h4 class="sectiontitle">The apply and remove journaled changes output file</h4><p>It
is highly recommended that you use the apply and remove journaled changes
output file when you apply journaled changes. The output file contains a record
for each object that the apply operation processes. It contains a record for
each object created and each object deleted during the apply. This output
file is especially useful when the apply ends early. It is much easier to
query the output file for the status of each object rather then searching
through the job log messages. Also the messages are limited to 512 while the
output file is not limited.</p>
</div>
<div class="section"><h4 class="sectiontitle">Considerations for applying changes</h4><p>Considerations
for applying changes are as follows:</p>
<ul><li>When you apply journaled changes to integrated file system objects, you
need to be aware of integrated file system considerations.</li>
<li>If you need to apply entries for less than 300 objects, and your database
files have only one member, or you will be applying changes to all members
of the files, then you may wish to use the Forward Recovery option through
the <span class="cmdname">Work with Journals (WRKJRN)</span> command.</li>
</ul>
</div>
</div>
<div>
<ul class="ullinks">
<li class="ulchildlink"><strong><a href="rzakiifsconsid.htm">Integrated file system considerations for applying journaled changes</a></strong><br />
If there is a create entry or delete entry in the range of journal entries to which you are applying journaled changes, changes to a directory can cause the creation or deletion of an object.</li>
<li class="ulchildlink"><strong><a href="rzakiwrkfwrdrecov.htm">Apply journaled changes with the WRKJRN command</a></strong><br />
The <span class="cmdname">Work with Journal (WRKJRN)</span> command can be
used to recover any journaled object. When you select option 2, you choose
from a list of object types for recovery. Choose an object type to view the
journaled objects of that type and the current status for each object.</li>
</ul>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="rzakiapyjrnchg.htm" title="One of the primary advantages of journaling is its ability to return a journaled object to its current state since the last save.">Recover journaled objects</a></div>
</div>
<div class="relconcepts"><strong>Related concepts</strong><br />
<div><a href="rzakijrncodes.htm" title="The following table shows the actions that are taken by the Apply Journaled Changes (APYJRNCHG), Apply Journaled Changes Extend (APYJRNCHGX), or Remove Journaled Changes (RMVJRNCHG) command by journal code and entry type.">Actions of applying or removing journaled changes by journal code</a></div>
<div><a href="rzakiqajrnchg.htm" title="Use the apply and remove journaled changes output (QAJRNCHG) file to make a record of all the activity that occurs when you perform an apply or remove journaled changes operation.">Use the apply and remove journaled changes output file</a></div>
</div>
<div class="relref"><strong>Related reference</strong><br />
<div><a href="../cl/apyjrnchg.htm">Apply Journaled Changes (APYJRNCHG) command</a></div>
<div><a href="../cl/apyjrnchgx.htm">Apply Journaled Changes Extend (APYJRNCHGX) command</a></div>
<div><a href="../cl/cpyf.htm">Copy File (CPYF) command</a></div>
<div><a href="../cl/inzpfm.htm">Initialize Physical File Member (INZPFM) command</a></div>
<div><a href="../cl/rgzpfm.htm">Reorganize Physical File Member (RGZPFM) command</a></div>
<div><a href="../cl/dspjrn.htm">Display Journal (DSPJRN) command</a></div>
<div><a href="../cl/rcvjrne.htm">Receive Journal Entry (RCVJRNE) command</a></div>
<div><a href="../cl/rtvjrne.htm">Retrieve Journal Entry (RTVJRNE) command</a></div>
<div><a href="../apis/QJORJRNE.htm">Retrieve Journal Entries (QjoRetrieveJournalEntries) API</a></div>
</div>
</div>
</body>
</html>