Output Limitation Support

In line with mainframe practice, you can limit the amount of output sent to SYSOUT datasets. You can apply limits to the whole job by giving a value in the JCL job card. You can set global limits for the number of lines output using environment variables.

Limits to LINES, PAGES, CARDS, and BYTES

The LINES, PAGES, CARDS, and BYTES keyword parameters on the JCL job card are supported. PAGES, CARDS and BYTES are translated to a number of lines using the following values:

  • 60 LINES for every PAGE
  • 25 LINES for every CARD
  • 132 BYTES for every LINE

For example, an entry of PAGES=(100,CANCEL) on the job card equates to an output limit of 6000 lines before the job is cancelled.

Specifying limits with the OUTLIM parameter

Any SYSOUT DD statement can contain an OUTLIM parameter that specifies the maximum number of lines output to that dataset. When the limit has been reached the system will:
  • call the user exit, if it exists
  • process the global setting, if it exists
  • cancel the job

The OUTLIM value is ignored for SYSABEND, SYSMDUMP and SYSUDUMP datasets.

The user may implement an OUTLIM user exit to call if the output limit is reached. This can tell the system whether to continue or abend the job. The user exit program must be called MFJUSOXT, a sample of which is included in the source\enterpriseserver\exitssrc/enterpriseserver/exit folder of your product.

Specifying global limits with environment variables

Global limits are set by environment variables, either in the environment in which the enterprise server region was started or by entering the values in the enterprise server region's configuration settings. These values apply to all jobs that run in that region.

The format of the variable value is similar to that which would be entered in the JCL job card accounting information: it should contain the limit value and, optionally, the action to perform when that limit is reached. The actions you can specify are CANCEL, DUMP or WARNING. CANCEL and DUMP cause the job to abend at that point, WARNING issues a message but processing continues. If you give no action for LINES, PAGES, CARDS, and BYTES the system issues a warning and continues processing. If you give no action for OUTLIM the job is cancelled.

Environment Variable Value Range Example
ES_JES_LINES 0-99999999
ES_JES_LINES=(100,CANCEL)
Limit the number of lines output to 100000. When this limit is reached cancel the job. This results in an S722 Output limit exceeded system abend code being produced.
ES_JES_PAGES 0-99999999
ES_JES_PAGES=10
Each page is assumed to hold 60 lines, therefore when 600 lines (60×10) have been processed issue a warning and carry on.
ES_JES_CARDS 0-99999999
ES_JES_CARDS=(30,WARNING)
Each card is assumed to hold 25 lines, therefore at 750 lines (25×30) issue a warning message and carry on.
ES_JES_BYTES 0-999999
ES_JES_BYTES=(100,DUMP)
Value for bytes is in thousands, each line is assumed to hold 132 bytes, therefore at 100000/132 lines the job will be cancelled.
ES_JES_OUTLIM 1-16777215
ES_JES_OUTLIM=5000
The job will be cancelled if any of the SYSOUT datasets reaches 5000 lines.