Remote journal considerations for retrieving journal entries when using commitment control

Special performance related processing is done by the system when depositing entries that are associated with commitment control transactions to a local journal.

When a job deposits a journal entry that is not associated with a commitment control transaction, that job waits for the local journal I/O to auxiliary storage to complete. After completion, control is given back to the application. A different technique is used for those journal entries that are associated with a commitment control transaction which results in the application being given control back before the local journal I/O is complete. This special processing has some ramifications when you retrieve journal entries from a remote journal.

For journal entries deposited related to a commitment control transaction, a job only waits for the local journal I/O to complete when the following journal entries are being deposited into the local journal:

  • Journal code C, journal entry type CM (Commit)
  • Journal code C, journal entry type RB (Rollback)

For remote journals, those journal entries that the job that is making the deposit does not wait for are not immediately replicated or scheduled to be replicated to the remote journal. Prior to the CM (Commit) or RB (Rollback) entry being deposited, there is no guarantee as to when the journal entries for open commitment control transactions will be retrievable from the remote journal.

After the commit or rollback operation is complete for a particular commitment control transaction, all journal entries associated with that transaction are immediately retrievable from an asynchronously maintained remote journal. However, there may be some journal entry delivery latency due to the transport method that is being used.

For a synchronously maintained remote journal, all journal entries associated with the commitment control transaction are assured to be retrievable after the CM (Commit) or RB (Rollback) entry is deposited.

Interspersed local journal I/O, for journal entries not associated with a commitment control transaction, can also affect when the journal entries associated with a commitment control transaction can be retrieved from the remote journal. In this I/O a job actually waits for the local journal I/O to complete. This interspersed local journal I/O will also cause the journal entries related to the commitment control transaction to be replicated to the remote journal. Once in the remote journal, and when later remote journal I/O makes them confirmed, the journal entries that are related to the commitment control transaction are retrievable.

Note: These considerations also apply if you generated entries that use the Send Journal Entry (SNDJRNE) command or Send Journal Entry (QJOSJRNE) API. If the application or user never requests to force these user generated entries, they will only be replicated to the remote journal when some other action forces the journal entries. Therefore, you will wish to periodically specify FORCE(*YES) when using these send journal entry functions.

These considerations also apply to any database physical file open or close journal entries; or directory or stream file open, close, or force entries.