|
>Kirk wrote: > Subject: How big can a program be ?? > I don't have a lot of details but here goes. > I have a client with a very large program (OPM RPG) on a V4R5 730 with 1gb > memory and 400+ gb of disk. > The other day they made some additions to the code and it would not > compile. Now they say all it said in the error > message was the program failed to compile. I know there's a message > somewhere but they can't find it. > The question to me was "How Big can a program be?" "Is there a limit to > the lines in the source?" "Is there a limit in the size of the compiled > pgm?" Kirk - Did the compile end with: CPF6301 (Intermediate representation of program (IRP) contains &1 errors. Probable compiler error.) OR CPF6563 ( Program was too large to be created.) (This may be a COBOL-only message)? Or did you see these messages in the job log from the compile? These errors are from the compiler that processes the See these links on the IBM knowledge base... <http://www-1.ibm.com/support/docview.wss?uid=nas101b8f26ec6fce93d8625682700 4f9ac2> and <http://www-912.ibm.com/s_dir/slkbase.NSF/4636aef020ecf0688625680b00020388/0 1b8f26ec6fce93d86256827004f9ac2?OpenDocument> ( I hate the way that these long links sometimes get broken when posted...If necessary, copy & paste it into a browser.) I have been bitten by this problem (actually an RPG/400 limitation) several times, usually with the JDE order entry program (P4211). When I called IBM Supportline in 1999, they told me that I either had to rework the code or convert the program to an RPGLE program to get around the limitations. Since the JDE shops I have worked in write code to stay consistent with the existing JDE RPG/400 code, I took a hybrid approach. I wrote a compile command that allows you to maintain the code as RPG/400, but compiles it like this: 1) It first uses CVTRPGPGM to convert the base source member from RPG/400 to RPGLE source type in a temporary source file. 2) An RPG program reads thru the converted source in the temporary source file, looking for the source members named in the /COPY statements and converting _them_ to RPGLE source format in a temporary source file. 3) Updates the /COPY statements in the source member created in (1) to point at the RPGLE /COPY members in the temporary RPGLE source file for copy books. 4) Compiles the resulting base source member in the temporary RPGLE source file using CRTBNDRPG to create a bound ILE RPG program. When modifying/compiling very large RPG/400 (OPM) programs, here are some limitations that can bite you (usually at the worst possible time). A table lists these limitations in the RPG/400 Reference, on page 439: http://publib.boulder.ibm.com/iseries/v5r1/ic2924/books/c0918170.pdf 1) The maximum number of statements that SEU can work with (32764). When you hit this limit, you probably need to perform one or more of the following: a) Review the program for redundant code & rework b) Remove comments, c) Break off sections of the code in the base source member and put it into /COPY members, d) Take out sections of the code and make them called sub-programs. e) Some combination of all the above 2) You may exceed the maximum number of files (50), arrays & tables (200) 3) You may exceed the maximum number of subroutines (254). Hope this helps, and sorry for the lengthy posting, Steve Landess Austin, Texas (512) 423-0935
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.