Initialization and termination establish the state of various parts
of the
Language Environment program
management model that supports multilanguage applications. The program
management model describes three major entities of a program structure:
- Process
- A collection of resources (code and data).
- Enclave
- A collection of program units consisting of at least one main
routine.
- Thread
- The basic unit of execution.
The z/OS UNIX System Services (z/OS UNIX) program
management model differs somewhat from the Language Environment program
management model. Refer to Mapping the POSIX program management model to the Language Environment program management model for
more information. For more detailed definitions of program management
and other Language Environment terms,
see Program management model.
When you run a routine, Language Environment initializes
the runtime environment by creating a process, an enclave, and an
initial thread. You can modify initialization by running a user exit,
written either in assembler or in an HLL.
During termination, threads (either single or multiple, depending
on whether your application is POSIX-conforming), enclaves, and processes
are terminated. Through the runtime options of Language Environment
and callable services for termination, you can control how a thread,
enclave, or process terminates. For example, you can control whether
an abend or a return code is generated from an application that terminates
with an unhandled condition of severity 2 or greater. See Termination behavior for unhandled conditions.
Related runtime options:
- ABTERMENC
- Specifies whether an enclave terminates with an abend or with
a return code and a reason code when there is an unhandled condition
of severity 2 or greater
- TERMTHDACT
- Specifies the level of information that you want to receive after
an unhandled condition of severity 2 or greater causes a thread to
terminate
Related callable services:
- CEE3ABD
- Terminates an enclave with or without clean-up and the value of
clean-up specifies which dumps to take during termination.
- CEE3AB2
- Terminates an enclave with or without clean-up, whose value specifies
which dumps to take during termination, and a user specified reason
code.
- CEE3GRC
- Returns the user enclave return code to your routine. Along with
CEE3SRC, it allows you to use return code-based programming techniques.
- CEE3PRM
- Returns to your routine the parameter string specified when your
application was invoked. Use CEE3PR2 for parameter strings greater
than 80 characters.
- CEE3PR2
- Returns to the calling routine the argument string and its associated
length, specified at program invocation.
- CEE3SRC
- Sets the user enclave return code, which is used to calculate
the final enclave return code at termination
Related user exits:
- CEEBXITA
- An assembler user exit for enclave initialization, and enclave
and process termination
- CEEBINT
- An HLL user exit (written in C, C++ (with
C linkage), Enterprise PL/I for z/OS or PL/I for MVS & VM, or Language Environment-conforming
assembler) called at enclave initialization
See
Using runtime user exits for more
information about user exits.
Preinitialization interface:
- CEEPIPI
- CEEPIPI performs various initialization functions
See Using preinitialization services for more information
about the preinitialization interface.
See z/OS Language Environment Programming Reference for
syntax information about runtime options and callable services.