Language Environment library routine retention (LRR)

Language Environment library routine retention is a function that provides a performance improvement for those applications or subsystems with the following attributes:
  • The application or subsystem invokes programs that require Language Environment.
  • The application or subsystem is not Language Environment-conforming. That is, Language Environment is not already initialized when the application or subsystem invokes programs that require Language Environment.
  • The application or subsystem, while running under the same task, repeatedly invokes programs that require Language Environment.
  • The application or subsystem is not using Language Environment preinitialization services.

Restriction: Language Environment library routine retention is not supported to run on CICS®.

The use of library routine retention does not affect the behavior of applications other than improving their performance.

Language Environment provides a macro called CEELRR, which is used in an assembler program to initialize library routine retention and to terminate library routine retention. See CEELRR macro — Initialize or terminate Language Environment library routine retention for details about the CEELRR macro.

In addition, Language Environment provides three sample programs that use the CEELRR macro:
CEELRRIN
This routine uses the CEELRR macro to initialize a library routine retention environment that does not permit XPLINK applications. The source for this routine can be found in member CEELRRIN in SCEESAMP. The load module associated with this routine can be found in SCEERUN with member name CEELRRIN.
CEELRRXP
This routine uses the CEELRR macro to initialize a library routine retention environment that permits XPLINK applications. The source for this routine can be found in member CEELRRXP in SCEESAMP. The load module associated with this routine can be found in SCEERUN with member name CEELRRXP.
CEELRRTR
This routine uses the CEELRR macro to terminate library routine retention. The source for this routine can be found in member CEELRRTR in SCEESAMP. The load module associated with this routine can be found in SCEERUN with member name CEELRRTR.

When library routine retention has been initialized, Language Environment keeps a subset of its resources in memory after the environment terminates. As a result, subsequent invocations of programs in the same task that caused Language Environment to be initialized are much faster because the resources can be reused without having to be reacquired and reinitialized.

When library routine retention has been initialized, the resources that Language Environment keeps in memory when it terminates include the following:
  • Language Environment runtime load modules
  • Language Environment storage associated with the management of the runtime load modules
  • Language Environment storage for startup control blocks

When library routine retention is terminated, the resources that Language Environment kept in memory are freed. (Library routines are deleted and storage is freed.)

Note:
  1. If library routine retention is initialized, and the task in which it is being used is terminated, the operating system frees the Language Environment resources as part of task termination.
  2. 31-bit XPLINK applications are supported under the LRR environment.