This is a multipart message in MIME format.
[ Picked text/plain from multipart/alternative ]

Thanks for your involvment, but my problem was that I didn't have the
right name in PROGRAM-ID in the COBOL-program.  I had exactly the same
situation that you describe, a RPG-program calling a COBOL-program (with
lots of files to open and close) thousands of times per hour.

Converting the programs(still with RPG on top) to ILE did the trick.  From
running in hours, the job now completes in a few minutes.

Interesting this thing you did, turning the whole job into a COBOL Run
Unit by placing a COBOL-program on top.  I will remember that one when I
need to speed up 'mixed-program' jobs in OPE-environments.



Bob Larkin <>
Sent by:
12.09.01 07:48
Please respond to cobol400-l

        Subject:        Re: Calling CBLLE-procedures from a RPGLE-pgm?

Is the COBOL program called many times? the reason I ask, is a
performance problem I was with OPB where RPG called several COBOL
programs repeatedly (thousands of times per hour). Performance was
terrible, because of COBOL environment ending after each call. I placed
a COBOL program at the top of the program stack, then used it to simply
call what was the first RPG program in the stack. Tis resulted in the
job running in 17 minutes, instead of 11 HOURS.

I do not think this is a problem with a bound ILE program, but maybe
someone else knows. wrote:

> Hello.
> I send this once again, because I haven't solved it yet and I badly
> need a solution to this.
> This question should have been under the RPG-section, but I bet you
> good guys know the answer, and I'm not connected to the RPG-mailing
> list.:
> In an old RPGpgm, RPG1, I called a COBOLpgm, CBL1 with a PLIST  PLIS1
> containing PARAM1, PARAM2 and PARAM3.  The Call was like this:
> CALL 'CBL1' PLIS1(Standard OPM RPG, the parameters are bringing data
> into CBL1 and are receiving data back from CBL1).  PARAM1 - PARAM3
> contains 30 -50 data elements each, and I dont want to reprogram it.
> RPG1 is converted into RPGLE1, and CBL1 is converted into CBLLE1, and
> I intend to bind those modules together into one ILEpgm, RPGLE1.  I
> now need a  static call instead of the old dynamic CALL in RPGLE1
> because I want to speed up the process.
> If I try CALLB, and then create modules, and try the 'CRTPGM'-command
> reffering to modules RPGLE1 and CBLLE1,  I just get the message
> "Definition not found for symbol 'CBLLE1 in *MODULE object RPGLE1'" .
> From that I understand that CALLB can only be used for calling
> procedures inside the main RPGLE-code,( or other RPG-procedures??), so
> I have to use 'CALLP' instead.  But, having read the manuals, I can't
> see how I can use my old parameter definitions to bring data into the
> called program, and, this is crucial, to bring data back to the
> calling program.
> Has anyone of you ever called an ILE-COBOL program from an ILE-RPG
> program bringing data into the called program, and receiving data back
> into the calling program?
> Mvh.
> Geir

This is the COBOL Programming on the iSeries/AS400 (COBOL400-L) mailing
To post a message email:
To subscribe, unsubscribe, or change list options,
or email:
Before posting, please take a moment to review the archives

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2021 by 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.