Using preinitialization services

You can use preinitialization to enhance the performance of your application. Preinitialization lets an application initialize an HLL environment once, perform multiple executions using that environment, and then explicitly terminate the environment. Because the environment is initialized only once (even if you perform multiple executions), you free up system resources and allow for faster responses to your requests.

This topic describes the Language Environment-supplied routine, CEEPIPI, that provides the interface for preinitialized routines. Using CEEPIPI, you can initialize an environment, invoke applications, terminate an environment, and add an entry to the Preinitialization table (PreInit table). (The PreInit table contains the names and entry point addresses of routines that can be executed in the preinitialized environment.)

This topic also describes reentrancy considerations for a preinitialized environment, XPLINK considerations, user exit invocation, stop semantics, service routines, and an example of CEEPIPI invocation.

Before the introduction of a common runtime environment, introduced with Language Environment, some of the individual languages had their own form of preinitialization. This older form of preinitialization is supported by Language Environment, but it is not strategic. The following is a list of these older forms of preinitialization and some considerations for their use:
  • C

    Language Environment supports the prior form of C preinitialization, through the use of an extended parameter list. For more information about this interface, see z/OS XL C/C++ Programming Guide.

  • C++

    There is no prior form of preinitialization for C++.

  • COBOL

    Language Environment supports the prior form of COBOL preinitialization, RTEREUS, ILBOSTP0, and IGZERRE. For more information about these interfaces, see the Enterprise COBOL for z/OS library. This prior form of COBOL preinitialization cannot be used at the same time that Language Environment preinitialization is used.

  • Fortran

    There is no prior form of preinitialization for Fortran.

  • PL/I

    Language Environment supports the prior form of PL/I preinitialization, through the use of an Extended Parameter List. For more information about this interface, see the IBM Enterprise PL/I for z/OS library. This prior form of PL/I preinitialization does not support PL/I multitasking applications.