How journal management works

Use journal management to create an object called a journal. Use a journal to define which objects you want to protect. You can have more than one journal on your system. A journal can define protection for more than one object.

You can journal the objects that are listed below:

Journal entries

The system keeps a record of changes you make to objects that are journaled and of other events that occur on the system. These records are called journal entries. You can also write journal entries for events that you want to record, or for objects other than the object that you want to protect with journaling.

For example, some journal entries identify activity for a specific database record such as add, update, or delete. (If the updated object image after the update is the same as the image before the update, then journal entries are not deposited for that update.) Also journal entries identify activity such as a save, open, or close operation for an object. Journal entries can also identify other events that occur, such as security-relevant events on the system or changes made by dynamic performance tuning. The Journal entry information link below describes all the possible journal entry types and their contents.

Each journal entry can include additional control information that identifies the source of the activity, including the user, job, program, time, and date. The entries that the system deposits for a journaled object reflect the changes made to that journaled object. For example, the entries for changes to database records can include the entire image of the database record, not just the changed information.

Journal receivers

The system writes entries to an object called a journal receiver. The system sends entries for all the objects associated with a particular journal to the same journal receiver.

You can attach journal receivers to a journal by using System i® Navigator or the Create Journal (CRTJRN) and Change Journal (CHGJRN) commands. The system adds journal entries to the attached receiver. Journal receivers that are no longer attached to a journal and are still known to the system are associated with that journal. Use the Work with Journal Attributes (WRKJRNA) command to see a list of receivers associated with a journal.

The system adds an entry to the attached journal receiver when an event occurs to a journaled object. The system numbers each entry sequentially. For example, it adds an entry when you change a record in a journaled database file member. Journal entries contain information that identifies:

  • Type of change
  • Record that has been changed
  • Change that has been made to the record
  • Information about the change (such as the job being run and the time of the change)

When you are journaling objects, changes to the objects are added to the journal receiver. The system does not journal data that you retrieved but did not change. If the logical file record format of a database file does not contain all the fields that are in the dependent physical file record format, the journal entry still contains all the fields of the physical file record format. In addition, if you are journaling access paths, entries for those access paths are added to the journal. If the updated physical file image after the update is the same as the image before the update, and if the file has no variable length fields, then journal entries are not deposited for that update. If the updated data area image after the update is the same as the image before the update, then journal entries are not deposited for that update. If the attribute that was requested to be changed was already that value, then journal entries are not deposited for that change.

Summary of the journaling process

The following figure shows a summary of journal processing. Objects A and B are journaled; object C is not. Programs PGMX and PGMY use object B. When you make a change to object A or B, the following occurs:

  • The change is added to the attached journal receiver.
  • The journal receiver is written to auxiliary storage.
  • The changes are written to the main storage copy of the object.

Object C changes are written directly to the main storage copy of the object because it is not being journaled. Only the entries added to the journal receiver are written immediately to auxiliary storage. Changes against the object may stay in main storage until the object is closed.

Illustration showing journaling overview

You can also take advantage of the remote journal function. The remote journal function allows you to associate a journal on a remote system with a journal on a local system. Journal entries on the local system are replicated to the remote journal receiver.