1. Find many more at website: www.go4as400.com
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).
2. Within each category there are number of different journal entry types represented by a twocharacter 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 afterimage 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.
3. 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.
Example of Journal:
Sample PF
ACLEVELID
7
ACORGCOD
190
ACCOUNTNUM
100,000,000,001
ACCURRENCY
EUR
ACNAME
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.
4. 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
190
100,000,000,005
7
EUR
AMI
7
190
100,000,000,006
INR
JANE
7
190
100,000,000,008
KZP
MANIAA >>>>>>> INSERTED ENTRY
>>>>>>>> UPDATE FROM 'NOVITA' TO 'JAN'
Display Journal Entries
Journal
. . . . . . :
JRN2222
Library
Largest sequence number on this screen
. . . . . . :
AMINEM
. . . . . . : 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
7
********
100,000,000,006
190
End of data
100,000,000,008
INR
NOVITA
KZP
>>>>> ROLLBACK FROM 'JANE' TO 'NOVITA'
MANIAA
********
APYJRNCHG JRN(AMINEM/JRN2222) FILE((AMINEM/ACCOUNT)) RCVRNG(AMINEM/JRN200
1 AMINEM/JRN2001) FROMENTLRG(8) TOENTLRG(*LAST)