User log record recovery program exits XRCINIT and XRCINPT

At warm and emergency restart, updates made to recoverable CICS® resources that were not committed when the system terminated must be backed out. XRCINIT and XRCINPT are invoked from the user log record recovery program, which is used to back out, where necessary, user-written system log entries.

XRCINIT is invoked at warm and emergency restart:
  • Before the first user recovery record is delivered to XRCINPT
  • When all such records have been delivered to XRCINPT.

XRCINPT is invoked whenever a user log record is read from the system log.

You can use XRCINPT to change the default actions taken by CICS at emergency restart for particular user-journaled records. Records passed to XRCINPT are those in UOWs that:
  • Appeared in the last complete activity keypoint
  • Were in flight when CICS terminated
  • Committed, backed out, or went indoubt after the start of the last complete activity keypoint. (However, this only applies to those records for which the leftmost bit of the JTYPEID specified in the WRITE JOURNALNAME(DFHLOG) request was a one.)

Records written by the activity keypoint exit XAKUSER are passed only if they appear in the last complete activity keypoint. They are passed after all other records. The order of presentation of records may therefore be different from their order in the reverse log stream sequence.

The format of records passed to the exit is:
Offset
Field contents
0
JTYPEID
2
Reserved
4
Length of prefix data (L). (Zero if no prefix)
8
Prefix data (if any)
8 + L
Log data

The record is mapped by the DSECT CL_USER_HEADER in copybook DFHLGGFD.

When using XRCINIT and XRCINPT, you should bear in mind that the exits may be invoked before recovery of temporary storage and transient data resources is complete.