You are on page 1of 3

ISERIES ADMINISTRATOR TIPS

The ins and outs of journaling -- Part I


Ron Turull
03.02.2005
Rating: -4.52- (out of 5)
Digg This! StumbleUpon Del.icio.us

After all these years, journaling is still a seldom-used and rarely understood feature of
OS/400-i5/OS and its integrated database, DB2 UDB for iSeries (formally DB2/400).
Many sites simply don't know how to set it up properly to perform its chief function of
providing another level of data protection. Here, and in the next few installments, we'll
discuss what journaling is, how it works, and how to set it up to give you the greatest
Ron Turull level of data protection.
What journaling is and how it works
Journaling, generally speaking, is a process of recording activity. In accounting, it is the process of
recording financial activity -- monies in and monies out. On the iSeries, journaling refers to the process
of recording object activity.
More Information
Journaling on the iSeries typically involves the recording of the activity
related to files, namely, physical files. When a file is being journaled, • Capturing the record
activity such as file-opens, file-closes and data updates are recorded. change
For example, when a program writes out a new record or updates an
• Remote journaling
existing one, the system makes an entry in the associated journal. The
entry contains such information as the job name and program name between systems
that made the change(s) to the file, as well as a copy of the record that • Journaling resources
was changed. (Note: Journaling can be configured to record a copy of
the record before it is changed and/or to record a copy of the record after it is changed.)
How to set up journaling in three easy steps
1. Create one or more journal receivers. Use the Create Journal Receiver (CRTJRNRCV)
command to create a journal receiver. Think of the journa as a notebook binder and the journal
receiver as the pages (i.e., the notebook paper where information is written). The journal receiver
is where the journal entries are actually recorded. The journal "connects" the receiver to the file.
It's a good habit to name the journal receiver the same as the journal, plus a numeric suffix such
as 0 or 1. (See the next step on what to name the journal.) Also, you should put journal receivers
in the same library as the file. (This is very important in order to simplify recovery
procedures, which we will discuss in Part III.) For maximum protection, consider storing the
journal receiver in a different ASP than the file so that their storage will not be on the same disk
unit.
2. Create a journal. Use the Create Journal (CRTJRN) command to create a journal and specify
the receiver created in step 1. Although you can journal multiple files to the same journal (and, in
some cases, that is actually preferable), you will generally want to have a journal "serving" a
single file. A good practice is to name the journal the same as the file and put it in the same
library as the file, but store it in the same ASP as the journal receiver.
3. Start journaling the file. This is done by using the Start Journal Physical File (STRJRNPF)
command. This is how you associate a file to a journal. Once the association is made, the system
will record in the journal receiver a copy of any record added, updated or deleted from the file.
Other activity, such as when the file is opened and closed, can also be recorded in the journal
receiver if you choose by selecting the appropriate options on the STRJRNPF command.
For more information on the journal commands mentioned above and other journal-related commands,
please see the subsequent section "Quick reference to journaling commands."
Four basic journal entry categories
The most common journal entries fall into four basic categories. Each category is represented by a one-
character code (shown in parenthesis in the following list). Within each category are a number of
different journal entry types. Each journal entry type is represented by a two-character entry code (also
shown in parenthesis within the category descriptions below).
1. Journal and journal receiver operations (J). These include such things as references to the
previous receiver (PR) or the next receiver (NR) in a chain. Also, at IPL-time, an entry is made
(e.g., an IN entry for IPL after normal end) marking a critical chronological boundary in the file
activity.
2. File operations (F). This category includes file opens (OP) and file closes (CL).

3. Record operations (R). Record updates (UP), deletes (DL), and new records written (PT and
PX) all fall into this category.
4. Commitment control (C). Anything related to commitment control falls into this category.
Some examples are begin commitment control (BC), start a commit cycle (SC), commit
operation (CM) and rollback operation (RB).
There are other categories and entry types in addition to those listed above. However, those are what you
will come across most often. For a complete listing, see the documentation or online help.
Quick reference to journaling commands
APYJRNCHG. Uses the journal entries to apply changes that have occurred since a database file was
saved or some other specified time.
CHGJRN. Use this command to change the attributes of a journal or to attach new journal receivers to a
journal.
CMPJRNIMG. This command compares and lists the difference between the before-image and after-
image of a record, or between the current after-image of a record and the previous after-image of the
record.
CRTJRN. Use this command to create a journal.
CRTJRNRCV. Use this command to create a journal receiver.
DLTJRN. Use this command to delete a journal.
DLTJRNRCV. Use this command to delete a journal receiver.
DSPJRN. This command displays or prints the journal entries that are in the journal receivers associated
with the specified journal. This command has outfile support so you can list the journal entries to a
database output file for further processing or analysis.
DSPJRNRCVA. Use this command to display the attributes of a journal receiver.
ENDJRNPF. This command ends journaling for the specified physical file.
RCVJRNE. This command allows a specified user program to continuously receive journal entries one
at a time as they are written to the journal. The behavior is similar to an exit program.
RMVJRNCHG. Use this command to remove changes that have occurred to a database file from a
specified point in time to some previous point in time (allowed only if before-images were recorded
during the time).
RTVJRNE. Use this command to retrieve a journal entry and place it in CL program variables.
SNDJRNE. Use this command to write user-defined entries to a journal (i.e., journal receiver).
STRJRNPF. Use this command to start journaling for the physical file.
WRKJRN. This command displays a menu from which you can perform many journal-related
functions, such as system-assisted recovery of journaled files.
WRKJRNA. This command displays the attributes of a journal and the associated receivers.
-----------------------------------

You might also like