Version 4.2.6 for Mainframes (Update)
 —  Operations  —

LE Subprograms

This document applies to z/OS batch mode, z/VSE batch mode, IMS TM and TSO. It provides information on how Natural supports IBM Language Environment (LE) subprograms.

The following topics are covered:


Support of IBM LE Subprograms

To support IBM Language Environment (LE) subprograms, Natural must be prepared for the CALL statement to be able to call LE subprograms. LE subprograms can be static (profile parameters CSTATIC and RCA) or dynamic subprograms of Natural.

Dynamic subprograms of Natural (LE and non-LE) are loaded via LE services (CEEFETCH or CEELOAD macro). All dynamic subprograms loaded during a Natural session are deleted upon LE environment termination, i.e. during termination of the Natural session. That is, the profile parameter DELETE does not have any effect.

Top of page

Enabling Natural Support of LE Subprograms

The following is required to be able to call LE subprograms from Natural:

  1. When installing Natural, the corresponding driver must be generated with option LE370=YES. For LE enablement of Natural under CICS, see Natural under CICS, Natural CICS Interface and IBM Language Environment (LE) (in the Natural TP Monitor Interfaces documentation).

  2. The IBM LE runtime modules must automatically be included from the IBM LE library during the linkage editor step. There must not be any unresolved externals starting with "CEE." Do not set the linkage editor option NCAL for z/OS or NOAUTO for z/VSE.

  3. Under z/OS batch, IMS TM and TSO, Natural can also call LE main programs, but only as dynamic subprograms. If an LE main program is to be called dynamically, this has to be indicated by specifying SET CONTROL 'P=L' before the CALL statement. Otherwise, the LE environment created by Natural will be terminated by the LE main program.

Top of page

Passing LE Runtime Options

Passing LE Runtime Options under z/OS Batch and TSO

You have two options:

  1. You can pass LE run-time options by using the PARM= parameter in your JCL. The following applies:

    Example:

    PARM='/ID=/,...'
  2. You can pass LE run-time options by using the CEEOPTS input data set in your JCL. With the use of CEEOPTS the LE run-time options are also available to all subtasks. The use of CEEOPTS is especially required with a Natural RPC server in batch mode.

    Example:

    //CEEOPTS  DD   *
    POSIX(ON)
    /*

Passing LE Runtime Options under z/VSE Batch

You can pass LE run-time options by using the PARM= parameter in your JCL. The following applies:

Example:

PARM='/ID=/,...'

Passing LE Runtime Options under IMS TM

You can pass LE run-time options by providing the region-specific run-time options load module CEEROPT in your STEPLIB concatenation. In addition, the LE library routine retention initialization routine CEELRRIN must be present on the PREINIT list of your region JCL.

The following is a sample definition of a CEEROPT load modul that allows the execution of AMODE(24) subprograms:

CEEROPT  CSECT
CEEROPT  AMODE ANY                                                      
CEEROPT  RMODE ANY                                                      
         CEEXOPT ALL31=((OFF),OVR),                                    X
               STACK=((128K,128K,BELOW,KEEP,512K,128K),OVR)             
         END   CEEROPT 

Top of page

LE Abend Handling

Natural supports the LE-specific user error handling, that is, if an LE subprogram has defined a user error handler, this handler gets control when an abend, a program check or any other LE error condition occurs in the subprogram. If no LE user error handler has been defined, Natural reacts according to the setting of the DU profile parameter.

In this case, a special error message (NAT0950 if DU=OFF or NAT9967 if DU=ON) is issued which indicates the LE error number. In addition, the corresponding LE error message is issued on CEEMSG and an LE snap dump is written to CEEDUMP according to LE run-time option TERMTHDACT.

Note:
In case of DU=FORCE, the abend handling of Natural is disabled and the LE error handling takes place even if no LE subprogram is active at the time of the abend. In this case, it is strongly recommended to specify the LE run-time option TERMTHDACT(UAIMM) to get all required diagnostic informations.

Top of page