Tuning with Language Environment

When you run with Language Environment® on CICS®, there are several tuning actions you can take to optimize performance. If Language Environment is active in a CICS address space, the runtime libraries of the native language, such as COBOL or PL/I, are not needed. This means that CICS has a single interface to all the language run times.

Minimizing GETMAIN and FREEMAIN activity
One way to improve performance when you run programs with Language Environment is to reduce the number of GETMAIN and FREEMAIN requests required to manage the storage that Language Environment uses. For this purpose, you can use AUTODST and RUWAPOOL system initialization parameters. See Minimizing GETMAIN and FREEMAIN activity for details.
Reducing initialization costs when using DLLs in C++
When each dynamic link library (DLL) is first loaded, the cost of initialization can be determined by the size of writable static area required by the DLL. Initialization costs can be reduced by removing unnecessary items from the writable static area. When using DLLs, you should consider the following tips:
  • Specifying the #pragma variable (x,NORENT). This places some read-only variables such as tables in the code area.
  • Specifying #pragma strings(readonly). This works for C code whose default is that literal strings are modifiable. C++ already has literal strings as read only by default.
  • Examine the prelinker map to determine the large areas. If you find, for example, @STATICC, you have unnamed writable static objects such as strings or static variables.
Minimizing the time Language Environment spends writing dump output to transient data queue CESE

The Language Environment runtime option TERMTHDACT controls the type and amount of diagnostic output produced by Language Environment for an unhandled error.

Using TERMTHDACT(DUMP), TERMTHDACT(TRACE), TERMTHDACT(UADUMP), or TERMTHDACT(UATRACE) can create a significant overhead in a production environment. These settings can cause large amounts of traceback and Language Environment dump data to be written to the CESE transient data queue.

If a traceback or CEEDUMP is not needed by the application environment, use TERMTHDACT(MSG) to eliminate the performance overhead of writing formatted CEEDUMPs to the CICS transient data queue CESE. If the traceback or CEEDUMP is required by the application, specify the CICSDDS option of TERMTHDACT to direct the Language Environment diagnostic output to the CICS dump data set, rather than to the CESE transient data queue.