Special considerations for journal entries

Many journaled integrated file system operations internally use commitment control to form a single transaction from the multiple functions performed during the operations.

These journaled operations should not be considered complete unless the commitment control cycle has a Commit journal entry (Journal Code C, Type CM). Journaled operations that contain a Rollback journal entry (Journal Code C, Type RB) in the commitment control cycle are failed operations, and the journal entries within them should not be replayed or replicated.

Journaled integrated file system entries (Journal Code B) that use commitment control in this manner include:

  • AA — Change Audit Value
  • B0 — Begin Create
  • B1 — Create Summary
  • B2 — Add link
  • B3 — Rename/Move
  • B4 — Unlink (Parent Directory)
  • B5 — Unlink (Link)
  • B7 — Created object authority information
  • FA — Attribute Change
  • JT — Start Journal (only when journaling is started because of an operation in a directory with the inherit journaling attribute of Yes)
  • OA — Authority Change
  • OG — Object Primary Group Change
  • OO — Object Owner Change

Several integrated file system journal entries have a specific data field indicating whether the entry is a summary entry. Operations that send summary entry types will send two of the same entry types to the journal. The first entry contains a subset of the entry specific data. The second entry contains complete entry specific data and will indicate that it is a summary entry. Programs that are replicating the object or replaying the operation will generally only be interested in the summary entries.

For a create operation in a journaled directory, the B1 journal entry (Create Summary) is considered the summary entry.

Some journaled operations need to send a journal entry that is conversely related to the operation. For example, a commitment control cycle containing a B4 journal entry (Unlink) may also contain a B2 journal entry (Add Link). This type of scenario will only occur in operations that result in a Rollback journal entry (C — RB) .

This scenario may occur for two reasons:

  1. The operation was about to fail, and the entry was needed internally for error path cleanup.
  2. The operation was interrupted by a system outage, and during the subsequent IPL, recovery that needed to send the entry was performed to rollback the interrupted operation.