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.
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.
First, try to make more storage available for the utility:
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.
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=*