This section describes the use of long records; it covers the following topics:
To enable the support of long records, you have to define a long record container file in Monitor Defaults. Once you have done this, you can specify on a report definition's JES identification that this report is derived from a spool file containing long records (this field only becomes visible when a long record container DBID and FNR have been defined).
When the monitor scans the JES queues, any spool file which would cause the creation of a long record report is copied into the defined container file and all subsequent processing is performed on the copy in the container file. By default, the original spool file will not be cleaned up by Entire Output Management unless Automatic Cleanup defaults specifies "Y" for Spool Cleanup and for Long records (the latter is only visible if a long record container file has been defined).
The long records are segmented into 124-byte segments, so that, even if a segment contains 124 X'01's, it can still be compressed and decompressed correctly. The format of each segment is:
Segment length | I2 |
Last segment indicator | A1 - blank in all segments except the last, when it is Y. |
Compressed segment data | A248 |
Long record reports can be printed to printers which use RMPRWKF as the print program (SYSPRJES, DISKMVS, TAPEMVS).
Printer exits are not invoked for long record reports.
If a normal report is created from the same spool file as a long record report, the normal report will also be based on the segmented copy, but it will not be reconstituted at print time, because Entire Output Management does not recognize that it is a long record report.
The logical printer attributes should be set so that Entire Output Management can print the long record report - that is lrecl, blksize and recfm must be appropriate. If the logical printer is defined as fixed record, Entire Output Management prints each record with an lrecl of 32760.
Separation exits are invoked for long record reports. However, instead of a record at a time being passed, a segment at a time is passed. This means that the separation exit needs to be sensitive to the data format. For example:
When inserting records, the exit is really inserting segments, so it must set the segment length and the last segment indicator.
When suppressing records, the exit is really suppressing segments, so it should ensure that suppression begins with the first segment of a record and continues until the last segment of the record.
There is an example exit in SYSNOMS(SJULONGX) which inserts lines into a long record report.
When a report defined as containing long records is transferred to another system file, the long record flag is not copied, because Entire Output Management does not know if a long record container file is defined in the target environment.
If the long record container DBID and FNR are subsequently deleted, any report which has long records set to "Y" cannot be processed correctly at active report creation time (existing active reports are not affected).
The following error message is written to the Entire Output Management log:
Display Log Message Message ... NOM1112 Long Record Container File not defined User ID ... MAIN Code ..... MO Object .... UKSJU-LONG-RECORDS/UKSJULNG/53078/SO/2 Date ...... 2007-11-08 Time ...... 16:26:26 Report .... Number .. Bundle .... Number .. Job name .. Number .. Printer ... |
Also, the following is written to the monitor output:
RMSCJES2 2007-11-08 16:26:26 Invalid long record container file 0 0 UKSJU-LONG-EXIT/UKSJULNG/53078/SO/2 |