LE runtime option RTEREUS(ON) and Endevor exits and API callers

Document ID : KB000026835
Last Modified Date : 14/02/2018
Show Technical Document Details

Symptoms:

Language environment abends (U40xx), out of storage conditions or other unpredictable errors.

Environment:

 Running endevor user exits or programs calling endevor API which:

- Are written in COBOL

- Execute with Language Environment (LE) runtime option RTEREUS(ON)

Cause:

The RTEREUS(ON) option causes Language Environment COBOL enclaves to be initialized as reusable. This is normally done to improve performance when a COBOL program is repeatedly called by a non-LE program by removing the overhead of initializing and terminating the runtime environment at each call.

When used with endevor exits or programs that call the endevor API, chances are that the environment falls into some of the restrictions that apply to the RTEREUS option. For example:

- Many different programs invoked in a single run exhausting storage due to the reusable environments being left behind.

- Programs called at different task levels (for example, an user exit or a processor step program calling endevor API which in turn results in the exit being called again) may lead to LE abends due to improper reuse of the environment.

Resolution:

Do NOT use RTEREUS(ON) as a default setting (note that IBM also recommends it)

If planning to set it to ON in any case, carefully consider the conditions under which each of your COBOL routines will be called. Also TEST IT CAREFULLY

If COBOL performance is an issue, consider using LE preinitialization (CEEPIPI service) instead of RTEREUS.

Additional information:

z/OS 2.2 Language Environment Programming Guide

z/OS 2.2 Language Environment Programming Reference