Error message IRX0662E in Endevor table tool utility
search cancel

Error message IRX0662E in Endevor table tool utility

book

Article ID: 384489

calendar_today

Updated On:

Products

Endevor

Issue/Introduction

During execution of the Endevor Table Tool utility, which is a REXX procedure distributed in the CSIQCLS0 library, the following error might arise:

IRX0662E EXECIO error. Unable to obtain storage.

The error is more likely to happen if the input file is very large or if the table tool is running with less storage available, for example running in foreground or within an Endevor processor.

Cause

ENBPIU00 uses the EXECIO command provided by REXX to load the whole input file into storage using a structure called "stem variable"

This is a very common practice in REXX programming and has several advantages for the processing of the data, but poses the risk of exhausting the available storage when reading a very large file.

Resolution

First, try to make more storage available for the utility:

  • Run it in batch instead of foreground
  • If running in foreground, close any ISPF split screens to free storage
  • If running in batch, use EXEC PGM=IRXJCL to run ENBPIU00 instead of EXEC PGM=IJKEFT01
  • Increase the REGION size available for the job

If this does not help, your only option is to run the utility with a smaller input file. If it has been created by the CSV utility, specify filters in the LIST command so that the utility produces fewer output records.

You can also try to split the input file into smaller pieces using IDCAMS REPRO command with SKIP and COUNT parameters and process each piece in a separate ENBPIU00 step. For example:

//SYSIN DD *
 REPRO INFILE(INPUT) OUTFILE(PART1) COUNT(100000)
 REPRO INFILE(INPUT) OUTFILE(PART2) SKIP(100000) COUNT(100000)
 REPRO INFILE(INPUT) OUTFILE(PART3) SKIP(200000)
/*

The above example copies the first 100,000 input records from ddname INPUT to PART1, the next 100,000 records to ddname PART2 and the remaining records to ddname PART3

If the input file contains a heading record with column headings (which is typical, for example, in the CSV format), then you need to extract the heading record into a separate file:

//SYSIN DD *
REPRO INFILE(INPUT) OUTFILE(HEADER) COUNT(1)
REPRO INFILE(INPUT) OUTFILE(PART1) COUNT(100001)
REPRO INFILE(INPUT) OUTFILE(PART2) SKIP(100001) COUNT(100000)
REPRO INFILE(INPUT) OUTFILE(PART3) SKIP(200001)
/*

And then concatenate HEADER with PART2 and with PART3 in a subsequent step. To do that you may use, for example, REPRO without SKIP nor COUNT (to copy the whole file) and concatenate the files in the input ddname.

Additional Information

The below sample JCL runs ENBPIU00 using IRXJCL

//STEP1 EXEC PGM=IRXJCL,PARM='ENBPIU00 A '            
//SYSEXEC  DD DISP=SHR,DSN=IPRFX.IQUAL.CSIQCLS0          
//TABLE    DD ...
//MODEL DD ...
//OPTIONS DD ...
//TBLOUT DD ...
//SYSTSIN  DD DUMMY                                      
//SYSTSPRT DD SYSOUT=*                                   
//SYSPRINT DD SYSOUT=*