Troubleshooting
Problem
This document explains why message CPF6563 is received on a COBOL compile.
Resolving The Problem
This document explains why message CPF6563 is received on a COBOL compile.
Message: Program was too large to be created.
Cause: Program being created contains too many objects or instructions for machine interface (MI) instruction &1 with error code &2. The program limitation was exceeded (1C02 exception) because of a create program error, a signal exception, or a transfer control error. The error codes are as follows:
------------------------------------------------------------------------
0001 - The data needed to initialize static areas > 65472 bytes
------------------------------------------------------------------------
0002 - The logic needed to initialize automatic areas >65472 bytes
Not applicable, since COBOL/400 does not use automatic storage.
------------------------------------------------------------------------
0003 - Internal constants > 4096 bytes
This is a result of using too many MI instructions that are interpreted by the translator using a stored constant. One particular example is the instruction used (at 2D20) to move a numeric literal to a zoned decimal field -- format CPYNV .D001234,678 -- that stores the immediate operand as an 8-byte packed constant.
------------------------------------------------------------------------
0004 - No registers are available for use
This should not occur -- if it does, it should be reported as an error in the translator. Re-arranging the code may provide a circumvention.
------------------------------------------------------------------------
0005 - The start constant area > 65024 bytes
??
------------------------------------------------------------------------
0006 - The work space needed by the machine to support calling of this program > 65200 bytes. The storage allocated upon calling a program without storage allocated from the process automatic storage area PASA is 65200 bytes.
???
------------------------------------------------------------------------
0007 - An instruction required more than the maximum amount of storage allowed for it in the program within another program.
???
------------------------------------------------------------------------
0008 - The MI instruction within a program results in a requirement for more than 15,789,056 bytes.
???
------------------------------------------------------------------------
0009 - The number of items that the machine needs to address > 4040
Some of these items are: pointers (system, space, instruction) and option lists. Main contributors to exceeding this limit are:
files, CALL statements, parameters for called programs, multiple subscripted data references in one statement, and so on.
------------------------------------------------------------------------
000A - The program requires > 16,776,960 bytes of storage for either PASA or PSSA (process static storage area).
Reduce the size of the WS data items.
------------------------------------------------------------------------
000B - The program requires more than 16,777,216 bytes for all data and instructions.
Reduce the size of the WS data items and/or the number of statements in the program.
Message: Program was too large to be created.
Cause: Program being created contains too many objects or instructions for machine interface (MI) instruction &1 with error code &2. The program limitation was exceeded (1C02 exception) because of a create program error, a signal exception, or a transfer control error. The error codes are as follows:
------------------------------------------------------------------------
0001 - The data needed to initialize static areas > 65472 bytes
| 1. | Reduce instances of VALUE clauses for data items subordinate to an OCCURS clause. Example: 01 TABLE. 02 ITEM OCCURS 100000 TIMES. 03 A PIC X. 03 B PIC X VALUE "Y". Note: Although the presence of A makes things worse, it is not needed in order to exceed the limit. A table of 45,000 entries with PIC XX VALUE "AB" will cause the failure !! |
| 2. | In some cases, using options *NOSTDINIT and *NOUNREF will reduce the requirement for static area initialization. |
| 3. | Reduce repeated literals in WS. |
| 4. | Reduce the number of extended ACCEPT/DISPLAY statements. |
0002 - The logic needed to initialize automatic areas >65472 bytes
Not applicable, since COBOL/400 does not use automatic storage.
------------------------------------------------------------------------
0003 - Internal constants > 4096 bytes
This is a result of using too many MI instructions that are interpreted by the translator using a stored constant. One particular example is the instruction used (at 2D20) to move a numeric literal to a zoned decimal field -- format CPYNV .D001234,678 -- that stores the immediate operand as an 8-byte packed constant.
------------------------------------------------------------------------
0004 - No registers are available for use
This should not occur -- if it does, it should be reported as an error in the translator. Re-arranging the code may provide a circumvention.
------------------------------------------------------------------------
0005 - The start constant area > 65024 bytes
??
------------------------------------------------------------------------
0006 - The work space needed by the machine to support calling of this program > 65200 bytes. The storage allocated upon calling a program without storage allocated from the process automatic storage area PASA is 65200 bytes.
???
------------------------------------------------------------------------
0007 - An instruction required more than the maximum amount of storage allowed for it in the program within another program.
???
------------------------------------------------------------------------
0008 - The MI instruction within a program results in a requirement for more than 15,789,056 bytes.
???
------------------------------------------------------------------------
0009 - The number of items that the machine needs to address > 4040
Some of these items are: pointers (system, space, instruction) and option lists. Main contributors to exceeding this limit are:
files, CALL statements, parameters for called programs, multiple subscripted data references in one statement, and so on.
------------------------------------------------------------------------
000A - The program requires > 16,776,960 bytes of storage for either PASA or PSSA (process static storage area).
Reduce the size of the WS data items.
------------------------------------------------------------------------
000B - The program requires more than 16,777,216 bytes for all data and instructions.
Reduce the size of the WS data items and/or the number of statements in the program.
[{"Type":"MASTER","Line of Business":{"code":"LOB68","label":"Power HW"},"Business Unit":{"code":"BU070","label":"IBM Infrastructure"},"Product":{"code":"SWG60","label":"IBM i"},"ARM Category":[{"code":"a8m3p000000F98bAAC","label":"Programming ILE Languages-\u003ECOBOL"}],"ARM Case Number":"","Platform":[{"code":"PF012","label":"IBM i"}],"Version":"All Versions"}]
Historical Number
8203753
Was this topic helpful?
Document Information
Modified date:
04 December 2024
UID
nas8N1010183