Journals & Retrieve Data from Journals
Journaling on IBM i:
On IBM i, Journaling means process of recording an object's activity.
When it comes to journaling of Physical file, It records Open/Close/Write/Update/Delete Operations on Physical file.
How to Start 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.
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, 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.
Retrieve Data from Journal:
You would get a scenario where records were deleted wrongly or update happened wrongly, You would need to retrieve the data back.
Below are the steps to be followed in order to retrieve data from Journal.
1. Issue DSPJRN Command by specifying Journal Name & Journalled Physical File Name.
You might want to consider giving specific Journal Receiver Name. By default it would be current Receiver.
2. Create a Copy of Physical File to include Journal Fields along with Original Physical File Fields.
3. Use CPYF Command with FMTOPT(*NOCHK) from DSPJRN Outfile to JR file with Journal fields.
Example:
DDS of Physical File (TESTFILE):
A R TESTFR
A TSFLD1 10A
A TSFLD2 10A
A TSFLD3 10A
A TSFLD4 10A
DDS of JR File with Journal Fields (JRTESTFILE):
A R JRTESTFR
A JOENTL 5S 0
A JOSEQN 10S 0
A JOCODE 1A
A JOENTT 2A
A JODATE 6A
A JOTIME 6S 0
A JOJOB 10A
A JOUSER 10A
A JONBR 6S 0
A JOPGM 10A
A JOOBJ 10A
A JOLIB 10A
A JOMBR 10A
A JOCTRR 10S 0
A JOFLAG 1A
A JOCCID 10S 0
A JOINCDAT 1A
A JOMINESD 1A
A JORES 6A
A TSFLD1 10A
A TSFLD2 10A
A TSFLD3 10A
A TSFLD4 10A
Issue DSPJRN Command on TESTFILE:
DSPJRN JRN(LIBRARY/TESTJRN) FILE((LIBRARY/TESTFILE)) OUTPUT(*OUTFILE) OUTFILE(LIBRARY/JROUTFILE)
Use CPYF Command to get formatted Output of file data.
CPYF FROMFILE(LIBRARY/JROUTFILE) TOFILE(LIBRARY/JRTESTFILE) MBROPT(*ADD) FMTOPT(*NOCHK)
You would need to check the scenario where you need to recover the data and can query based on requirement.
Comments
Post a Comment