Error: ICE039A - INSUFFICIENT MAIN STORAGE during high-volume batch processing - Ideal
search cancel

Error: ICE039A - INSUFFICIENT MAIN STORAGE during high-volume batch processing - Ideal

book

Article ID: 443151

calendar_today

Updated On:

Products

Ideal

Issue/Introduction

A batch Ideal for Datacom (Ideal) program fails during a SORT operation. The issue occurs during high-volume data processing cycles when the system cannot allocate enough memory for the sort utility. The failing batch job issues the following error in the job log: 

ICE039A H INSUFFICIENT MAIN STORAGE - ADD AT LEAST 16K BYTES

The failure typically occurs when the Ideal program interacts with the Multi-User Facility (MUF) to process large datasets that require external sorting.

Note that In Syncsort MFX, the matching error message is:

WER039A INSUFFICIENT VIRTUAL STORAGE

Cause

The virtual storage (REGION) allocated to the batch job is insufficient for SORT to perform the requested sort in memory. As data volume increases, the storage requirements exceed the current job or system limits.

The sort utility exceeded available 24-bit or 31-bit memory limits and was not configured to utilize 64-bit memory objects for overflow. Analysis of the job log indicates that MOSIZE was set to 0, preventing the use of 64-bit storage for memory objects.

Resolution

Perform the following steps in this sequence to resolve the ICE039A error:

  1. Adjust Job Region: Modify the JCL for the failing batch job. Set the JOB or EXEC statement to use REGION=0M to allow the job to use all available private storage within the address space. If REGION=0M fails to deliver adequate storage, a system installation exit, such as IEFUSI or IEALIMIT, could be intercepting the request and imposing a limit on this batch job. In this case, use an explicit value, such as REGION=512M or 1024M.
  2. Enable 64-Bit Memory Objects: To allow the sort utility to use 64-bit storage, add a MEMLIMIT parameter to the EXEC statement and provide a DFSPARM control statement:

    //STEPNAME EXEC PGM=IDEAL,REGION=0M,MEMLIMIT=8G 
    . . .
    //DFSPARM DD *

    OPTION MSGPRT=ALL,MOSIZE=MAX
    /*
  3. Enable Dynamic Work File Allocation: If memory errors persist, remove all hardcoded SORTWK## DD statements from the JCL to allow the sort utility to dynamically allocate the required work space based on data volume. Ensure the DYNALLOC setting is active in the sort utility environment, adding to the above DFSPARM:
    //DFSPARM  DD * 
    OPTION MSGPRT=ALL,MOSIZE=MAX,DYNALLOC=(SYSDA,32)
    /*
  4. More Support Needed: If after these changes, you continue to have problems, please add DEBUG NOABEND to the top of the DFSPARM: 
    //DFSPARM DD *
     DEBUG NOABEND  

    OPTION MSGPRT=ALL,MOSIZE=MAX,DYNALLOC=(SYSDA,32)
    /*
    And ensure that you have the following DD Statements in your JCL:
    //SORTDIAG DD DUMMY
    //SYSOUT   DD SYSOUT=*
    //SORTMSG DD SYSOUT=*
    Then run the job again, and attach the output to your support case.

Additional Information

References

Users are encouraged to subscribe to this article for future updates.

For additional assistance, Contact Broadcom Support.