DFHLG0742 and DFHLG0737 then CICS comes down
Your CICS region comes down after you receive the following messages:
DFHLG0742 Log record too long for block. Record size 32,338 bytes. Block size 16,384 bytes.
DFHLG0737 A failure has occurred while writing to the system log (DFHLOG). A log record was longer than the maximum block size for the MVS log stream. CICS will be terminated.
DFHLG0742 Log record too long for block. Record size rsize bytes. Block size bsize bytes.
DFHLG0737 A failure has occurred while writing to the system log (journalname). A log record was longer than the maximum block size for the MVS log stream. CICS will be terminated.
The record size of a file in the region is larger than the buffer size defined for the logstream. In this particular case, the record size is 32,338 and the maximum buffer size is 16,384.
Resolving the problem
Increase the buffer size, MAXBUFSIZE.
For DFHLOG and DFHSHUNT, the following recommendations can be found on page 181 of the IBM Redbooks publication titled Systems Programmer's Guide to: z/OS System Logger:
- For DASD-only, this is specified on the log stream definition (65532 is recommended to optimize the I/O).
- For a CF-Structure log stream, it is specified on the structure definition in the System Logger policy (for CICS log streams, the recommended value is 64000).
- CICS adds a 40 byte header to each block written - so the usable size is (MAXBUFSIZE - 40 bytes).
Page 157 of the Redbooks publication also states:
For user journals, where the application does not use the wait option, it may be advantageous to
specify a smaller size, as the buffer only gets written to the log stream when it fills. As a
general rule, we recommend a MAXBUFSIZE of 64000.
To change the MAXBUFSIZE for a structure , you will have to use IXCMIAPU to delete the structure and redefine it with the new MAXBUFSIZE. This requires that the logstreams that are defined to use the structure be disconnected so that there are no active connections.
To change the MAXBUFSIZE for a DASDONLY, you can use IXCMIAPU to update the logstream. Following is sample JCL that you can use to accomplish this:
//UPDTLOGR EXEC PGM=IXCMIAPU
//SYSPRINT DD SYSOUT=A,DCB=RECFM=FBA
//SYSIN DD *
DATA TYPE(LOGR) REPORT(NO)
UPDATE LOGSTREAM NAME(xxxxxxx.xxxxx.DFHLOG)
CICS/TS CICS TS CICS Transaction Server