Read further to understand why a production background processor can abend with these error messages:
** MK4D201 TYPE 4 RECORD LENGTH EXCEEDS BUFFER SIZE DEFINED IN FILE DEFINITION xxxxxxxx A602** PROCESSOR SUBTASK UNEXPECTED TERMINATION PROCESSING WILL CONTINUE. BB04** ERROR DURING PROCESSING OF QUERY yyyyyyyy. STATUS SET TO HELD. BB02** DATABASE xxxxxxxx HAS BEEN DISABLED
MK4D201 RECORD LENGTH EXCEEDS BUFFER SIZE DEFINED IN FILE DEFINITION xxxxxxxx
means that the record size of the file being read now is larger than what was given when the file was defined to the product.
This frequently happens as databases accumulate more segment occurrences.
The solution is to increase the maximum record size in the file definition (FD) for database xxxxxxxx and recatalog that file definition in the BGLIB.
The new size must accommodate the root segment and all occurrences of all dependent segments for the longest record.
This will show you the current values for File Definition xxxxxxxx
//LISTFD EXEC PGM=MARKIV,REGION=0K //STEPLIB DD DISP=SHR,DSN=your.INFORM.LOADLIB //M4LIB DD DISP=SHR,DSN=your.INFORM.BGLIB //M4LIST DD SYSOUT=* //M4INPUT DD * LISTFDXXRC xxxxxxxxFD A /* //
When the Background Processor job that generated these messages is submitted after the FD is expanded, HELD AWAITING should be specified on the DATABASE statement in the INFIN dataset to get the query set back to a status where it can be executed:
CONTROL NAME aaaaaaaa MINQRY 1 MAXQRY 1 QTIME 2 MAXTIME 720 DATABASE NAME xxxxxxxx CLASS 10 HELD AWAITING -------------