The following description does not apply to journal records written to an SMF data set. These are described in topic Format of journal records written to SMF.
General logs (that is, those containing forward-recovery logs, auto-journals, and user journals) can be presented in the format introduced at CICS® Transaction Server for OS/390®, Version 1 Release 1. Each journal record in these logs, if presented in the newer format, contains more information than in the equivalent journal record presented in the CICS/ESA 4.1 format.
System logs are always presented in CICS Transaction Server for z/OS® format..
Each general log comprises a stream of contiguous blocks of journaled data. Each block comprises a block header followed by a variable number of CICS journal records. Each CICS journal record comprises a record header followed by caller data.
Figure 60 gives a graphical overview of a general log, showing the format of a complete block, and the format of a complete journal record.
The format of the caller data depends on the CICS component that is issuing the journal record, and also on the function being journaled at the time. Thus, for example, the format of caller data in journal records issued by file control differs from that of caller data in journal records issued by FEPI.
The log block header contains information of a general system-wide nature such as the CICS applid writing the journal block. Figure 61 shows the format of the log block header.
t = log type
r = reserved
nn = block version number
The journal record comprises a record header followed by caller data. The record header contains information that describes some of the attributes of the record, such as the time it was written. Figure 62 shows the format of the record header.
X'0001' Start of run record
X'0002' Any other record
X'8n' Equivalent to JCSPSOTK (start of task)
X'4n' Equivalent to JCSPLSTK (start of UOW)
The caller data differs depending on the CICS component issuing the record, and on the function being journaled.
When CICS connects to a general log, it writes a start-of-run record to it as the first record for this run of CICS. This record comprises a record header (with the same format as that for any general log journal record) followed by a start-of-run body. Its format is shown in Figure 63.
For a start-of-run record, CICS puts
the domain identifier "LG" (for "logger") in the GLRH_REC_COMPID
field of the record header.
Caller data follows the record header.
The format of the caller data part of a general log journal record differs according to the CICS component writing the record, and the function being journaled.
Journal records can be written by any of the following CICS components: the logger
, journal control (in
the case of a request issued by a user), file control, the front end programming
interface (FEPI), and terminal control. The field GLRH_REC_COMPID in the record
header tells you which component has written the record:
LG
, UJ, FC, SZ, or TC respectively.
File control adds information to the start of the actual journaled data, and this is described in Caller data written by file control. The other components (journal control, FEPI, and terminal control) do not add any further information to the journaled data.
If the record has been written by the CICS API, the caller data section starts with an API user header, the format of which is shown in Figure 64.
The file log and journal block (FLJB) describes the caller data that file control writes as part of its journal records. The copybook DFHFCLGD defines the FLJB DSECT.
There are two sections in the FLJB: the first section contains data that is applicable to all journal records written by file control; the second section contains information specific to the record type. Both sections are of fixed length.
Some records have a third and fourth section which are of variable length.
Table 37 outlines the sections in a journal record written by file control.
Record type | First section | Second section | Third section | Fourth section |
---|---|---|---|---|
Read-only Read-update Write-update Write-add Write-add complete | FLJB_GENERAL_DATA | FLJB_COMMON_DATA | FLJB_CD_KEY | FLJB_CD_DATA |
Write delete | FLJB_GENERAL_DATA | FLJB_WRITE_DELETE _DATA | FLJB_WDD_BASE_KEY | FLJB_WDD_PATH_KEY |
File close | FLJB_GENERAL_DATA | FLJB_FILE_CLOSE _DATA | None | None |
Tie-up | FLJB_GENERAL_DATA | FLJB_TIE_UP_RECORD _DATA | None | None |
Tie-up | FLJB_GENERAL _DATA | FLJB_TIE_UP _RECORD _DATA | None | None |
A description of each of the structures, and the sections within them, now follows:
There are four sections in the journal records written for read-only, read-update, write-update, write-add, and write-add complete record types:
The format of such a record written for these record types is shown in Figure 65.
The format of the FLJB_GENERAL_DATA section is shown in Figure 66.
X'80' Readonly
X'81' Read update
X'82' Write update
X'83' Write add
X'84' Write add complete
X'86' Write delete
X'8E' File close
X'8F' File tie-up record
X'80' File control autojournal record
X'40' Forward recovery log record
X'20' System log record
X'10' Log-of-log record
The format of the FLJB_COMMON_DATA section is shown in Figure 67.
X'80' UOW has been shunted at least once
X'40' Write massinsert
X'20' First write-add-complete in massinsert sequence
X'10' End of massinsert sequence
X'8' Fixed length record
Combinations of settings are possible.
There are four sections in the journal records written for write-delete record types:
These sections contain the image of the caller data as the base key, and, if the data set is a path, the path.
The format of such a record written for write-delete record types is shown in Figure 68.
See Figure 66 for the format of the FLJB_GENERAL_DATA section.
The format of the FLJB_WRITE_DELETE_DATA section is shown in Figure 69.
X'80' UOW has been shunted at least once
X'40' Fixed-length record
There are two sections in the journal records written for file-close record types:
The format of such a record written for file-close record types is shown in Figure 70.
See Figure 66 for the format of the FLJB_GENERAL_DATA section.
The format of the FLJB_CLOSE_DATA section is shown in Figure 71.
X'80' Forward recovery specified for file or data set
X'40' Autojournaling specified for file
There are two sections in the journal records written for tie-up record types:
The format of such a record written for tie-up record types is shown in Figure 72.
See Figure 66 for the format of the FLJB_GENERAL_DATA section.
The format of the TIE_UP_RECORD_DATA section is shown in Figure 73.
X'C5' ESDS
X'D2' KSDS
X'D7' Path
X'D9' RRDS
X'E5' VRRDS
X'E5' Variable
X'C6' Fixed
CICS terminal control (TC) writes journal records to track the messages it issues. Each TC journal record contains a prefix area, which lies in the position of the prefix area in the API user header. For LU6.1-related records only, the prefix area contains the VTAM® physical sequence numbers at syncpoint time; for all other TC journal records, it contains binary zeros. The format of the TC prefix area is shown in Figure 74.
Each FEPI journal record contains a prefix area that allows you to identify the FEPI conversation for which the data was journaled. This prefix area lies in the position of the prefix area in the API user header. Its format is shown in Figure 75.
See the CICS Front End Programming Interface User’s Guide for more information about FEPI journaling.