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:
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.
The following is required to be able to call LE subprograms from Natural:
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).
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.
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.
You have two options:
You can pass LE run-time options by using the
PARM=
parameter in your JCL. The following applies:
The run-time options that are passed to the main routine must be followed by a slash (/) to separate them from the Natural parameters.
If you want to use a slash within your Natural parameters, then your Natural parameters must begin with a slash.
Example:
PARM='/ID=/,...'
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) /*
You can pass LE run-time options by using the
PARM=
parameter in your JCL. The following applies:
The run-time options that are passed to the main routine must be followed by a slash (/) to separate them from the Natural parameters.
If you want to use a slash within your Natural parameters, then your Natural parameters must begin with a slash.
Example:
PARM='/ID=/,...'
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
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.