Journaling
·
Journaling, generally speaking,
is a process of recording activity.
·
On the iSeries, journaling
refers to the process of recording object activity.
·
Journaling on the iSeries
typically involves the recording of the activity related to files, namely,
physical files. When a file is being journaled, activity such as file-opens,
file-closes and data updates are recorded.
Set up journaling
1.
Use the Create Journal
Receiver (CRTJRNRCV) command to create a journal receiver.
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.
Also,
you should put journal receivers in the same library as the file.
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.
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.
Four basic journal entry categories
·
The most common journal entries
fall into four basic categories (J, F, R, C).
·
Within each category there are
number of different journal entry types represented by a two-character entry
code (e.g. PR, NR for journal entry J).
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).
Useful 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.
Sample PF
ACLEVELID ACORGCOD ACCOUNTNUM ACCURRENCY ACNAME
7 190 100,000,000,001 EUR SURESH
7 190 100,000,000,002 EUR SHRI
7 190 100,000,000,003 EUR UPI
7 190 100,000,000,004 EUR ABHI
7 190 100,000,000,005 EUR AMI
7 190 100,000,000,006 INR NOVITA
******** End of data ********
INSERT INTO AMINEM/ACCOUNT
VALUES(07, 190, 100000000008, 'KZP',
'MANIAA')
1 rows inserted in ACCOUNT in
AMINEM.
UPDATE AMINEM/ACCOUNT SET ACNAME =
'JANE' WHERE ACNAME ='NOVITA'
1 rows updated in ACCOUNT in
AMINEM.
ACLEVELID ACORGCOD ACCOUNTNUM ACCURRENCY ACNAME
7 190 100,000,000,001 EUR SURESH
7 190 100,000,000,002 EUR SHRI
7 190 100,000,000,003 EUR UPI
7 190 100,000,000,004 EUR ABHI
7 190 100,000,000,005 EUR AMI
7 190 100,000,000,006 INR JANE >>>>>>>> UPDATE FROM 'NOVITA' TO 'JAN'
7 190 100,000,000,008 KZP MANIAA >>>>>>> INSERTED ENTRY
Display Journal Entries
Journal . . . . . . : JRN2222 Library . . . . . . : AMINEM
Largest sequence number on this screen . . . . . . : 00000000000000000008
Type options, press Enter.
5=Display entire entry
Opt Sequence Code Type Object Library Job Time
1 J PR QPADEV000K 13:59:40
2 D JF ACCOUNT AMINEM QPADEV000K 14:00:21
3 F JM ACCOUNT AMINEM QPADEV000K 14:00:21
4 F JM ACCOUNT AMINEM QPADEV000K 14:00:21
6 R PX ACCOUNT AMINEM QPADEV000K 14:01:29
7 R UB ACCOUNT AMINEM QPADEV000K 14:02:22
8 R UP ACCOUNT AMINEM QPADEV000K 14:02:22
RMVJRNCHG JRN(AMINEM/JRN2222)
FILE((AMINEM/ACCOUNT)) RCVRNG(AMINEM/JRN200
1 AMINEM/JRN2001) FROMENTLRG(8)
TOENTLRG(7)
1 entries removed for 1
objects.
ACLEVELID ACORGCOD ACCOUNTNUM ACCURRENCY ACNAME
7 190 100,000,000,001 EUR SURESH
7 190 100,000,000,002 EUR SHRI
7 190 100,000,000,003 EUR UPI
7 190 100,000,000,004 EUR ABHI
7 190 100,000,000,005 EUR AMI
7 190 100,000,000,006 INR NOVITA >>>>> ROLLBACK FROM 'JANE' TO 'NOVITA'
7 190 100,000,000,008 KZP MANIAA
******** End of data ********
APYJRNCHG JRN(AMINEM/JRN2222)
FILE((AMINEM/ACCOUNT)) RCVRNG(AMINEM/JRN200
1 AMINEM/JRN2001) FROMENTLRG(8)
TOENTLRG(*LAST)
ACLEVELID ACORGCOD ACCOUNTNUM ACCURRENCY ACNAME
7 190 100,000,000,001 EUR SURESH
7 190 100,000,000,002 EUR SHRI
7 190 100,000,000,003 EUR UPI
7 190 100,000,000,004 EUR ABHI
7 190 100,000,000,005 EUR AMI
7 190 100,000,000,006 INR JANE >>>>>>> BACK TO 'JANE'
7 190 100,000,000,008 KZP MANIAA
******** End of data ********