Sunday, 11 August 2013

COBOL Other Performace Factor.

If the first program in the application is not COBOL or it is not LE-conforming, there can be a significant degradation if COBOL is repeatedly called since the COBOL environment must be initialized and terminated each time a COBOL main program is invoked. This overhead can be reduced by doing one of the following (listed in order of most improvement to least improvement):
  • Use the CEEENTRY and CEETERM macros in the first program of the application to make it an LE-conforming program
  • Call the first program of the application from a COBOL stub program (a program that just has a call statement to the original first program)
  • Call CEEPIPI from the first program of the application to initialize the LE environment, invoke the COBOL program, and then terminate the LE environment when the application is complete
  • Use the run-time option RTEREUS to initialize the run-time environment for reusability, making all COBOL main programs become subprograms
  • Call IGZERRE from the first program of the application to make it appear as the COBOL main program and to initialize the run-time environment for reusability
  • Call ILBOSTP0 (when using OS/VS COBOL) from the first program of the application to make it appear as the COBOL main program. This is provided for compatibility with OS/VS COBOL; calling IGZERRE is preferred over calling ILBOSTP0.
  • Use the Library Routine Retention (LRR) function (similar to the function provided by the LIBKEEP run-time option in VS COBOL II)
  • Place the LE library routines in the LPA, ELPA, or NSS. The list of routines to put in the LPA, EPLA, or NSS is release dependent and is the same routines listed under the IMS preload list considerations on page 23. Additionally, if the application is a VS COBOL II application using the LE library, include the following library routines: IGZCTCO, IGZEINI, IGZEPLF, and IGZEPCL. An alternative method (when not using RTEREUS, IGZERRE, or CEEPIPI) is to load these routines using the LOAD macro prior to the first time COBOL is called.
Make sure that you fully understand the implications of each one before you use them.
The performance considerations for Assembler calling COBOL will be presented in two different ways. The first will compare each of the tuning possibilities with using a standard, non-tuned assembler program to repeatedly call COBOL (the slowest method). The second will show the same comparison using an LE-conforming assembler program using the CEEENTRY and CEETERM macros (the fastest method).

Created with Artisteer

No comments:

Post a comment