Upload
dothuan
View
227
Download
0
Embed Size (px)
Citation preview
z/OS
Language
Environment
Programming
Guide
SA22-7561-05
z/OS
Language
Environment
Programming
Guide
SA22-7561-05
Note
Before
using
this
information
and
the
product
it
supports,
be
sure
to
read
the
general
information
under
Notices
on
page
631.
Sixth
Edition,
September
2004
This
is
a
major
revision
of
SA22-7561-04.
This
edition
applies
to
Language
Environment
in
z/OS
Version
1,
Release
6
(5694-A01),
to
z/OS.e
Version
1,
Release
6(5655-G52),
and
to
all
subsequent
releases
and
modifications
until
otherwise
indicated
in
new
editions.
IBM
welcomes
your
comments.
A
form
for
readers
comments
may
be
provided
at
the
back
of
this
document,
or
you
may
address
your
comments
to
the
following
address:
International
Business
Machines
Corporation
Department
55JA,
Station
P384
2455
South
Road
Poughkeepsie,
NY
12601-5400
United
States
of
America
FAX
(United
States
&
Canada):
1+845+432-9405
FAX
(Other
Countries):
Your
International
Access
Code
+1+845+432-9405
IBMLink
(United
States
customers
only):
IBMUSM10(MHVRCFS)
Internet
e-mail:
World
Wide
Web:
http://www.ibm.com/servers/eserver/zseries/zos/webqs.html
If
you
would
like
a
reply,
be
sure
to
include
your
name,
address,
telephone
number,
or
FAX
number.
Make
sure
to
include
the
following
in
your
comment
or
note:
v
Title
and
order
number
of
this
document
v
Page
number
or
topic
related
to
your
comment
When
you
send
information
to
IBM,
you
grant
IBM
a
nonexclusive
right
to
use
or
distribute
the
information
in
any
way
it
believes
appropriate
without
incurring
any
obligation
to
you.
Copyright
International
Business
Machines
Corporation
1995,
2004.
All
rights
reserved.
US
Government
Users
Restricted
Rights
Use,
duplication
or
disclosure
restricted
by
GSA
ADP
Schedule
Contract
with
IBM
Corp.
http://www.ibm.com/servers/eserver/zseries/zos/webqs.htmlContents
Figures
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xv
Tables
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xix
About
this
document
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xxi
Using
your
documentation
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xxii
How
to
read
syntax
diagrams
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xxiii
Symbols
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xxiii
Syntax
items
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xxiii
Syntax
examples
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xxiv
This
Programming
Guide
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xxv
Determining
if
a
publication
is
current
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xxvi
Where
to
find
more
information
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xxvi
Accessing
z/OS
licensed
documents
on
the
Internet
.
.
.
.
.
.
.
.
.
. xxvi
Using
LookAt
to
look
up
message
explanations
.
.
.
.
.
.
.
.
.
.
. xxvii
Information
updates
on
the
web
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xxvii
Summary
of
changes
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xxix
Part
1.
Creating
Applications
with
Language
Environment
.
.
.
.
.
.
.
.
.
.
.
. 1
Chapter
1.
Introduction
to
Language
Environment
.
.
.
.
.
.
.
.
.
.
. 3
Components
of
Language
Environment
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 3
Common
Run-Time
Environment
of
Language
Environment
.
.
.
.
.
.
.
.
. 4
Chapter
2.
Preparing
to
Link-Edit
and
Run
under
Language
Environment
7
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 7
Planning
to
Link-Edit
and
Run
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 8
Link-Editing
Single-Language
Applications
.
.
.
.
.
.
.
.
.
.
.
.
.
. 9
Link-Editing
ILC
Applications
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 10
Downward
Compatibility
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 10
Checking
Which
Run-Time
Options
Are
in
Effect
.
.
.
.
.
.
.
.
.
.
.
. 13
HLL
Compatibility
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 13
C/C++
AMODE/RMODE
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 14
COBOL
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 14
Replacing
COBOL
Library
Routines
in
a
COBOL
Load
Module
.
.
.
.
.
. 14
Using
Language
Environment
Resident
Routines
for
Callable
Services
.
.
. 14
Fortran
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 15
Replacing
Fortran
Run-Time
Library
Modules
in
a
Fortran
Executable
Program
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 15
Using
the
Fortran
Library
Module
Replacement
Tool
.
.
.
.
.
.
.
.
.
. 16
Resolving
Static
Common
Block
Name
Conflicts
.
.
.
.
.
.
.
.
.
.
. 16
Resolving
Library
Module
Name
Conflicts
between
Fortran
and
C
.
.
.
.
. 17
PL/I
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 24
Link-editing
PL/I
Subroutines
for
Later
Use
.
.
.
.
.
.
.
.
.
.
.
.
. 24
Replacing
PL/I
Library
Routines
in
an
OS
PL/I
Executable
Program
.
.
.
. 25
Link-Editing
Fetchable
Executable
Programs
.
.
.
.
.
.
.
.
.
.
.
.
. 25
PL/I
Link-Time
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 26
Fetching
Modules
with
Different
AMODEs
.
.
.
.
.
.
.
.
.
.
.
.
.
. 26
Chapter
3.
Using
Extra
Performance
Linkage
(XPLINK)
.
.
.
.
.
.
.
.
. 29
What
is
XPLINK?
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 29
Objectives
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 29
Copyright
IBM
Corp.
1995,
2004
iii
||
Support
for
XPLINK
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 30
XPLINK
Concepts
and
terms
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 30
The
XPLINK
stack
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 31
When
XPLINK
should
be
used
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 36
When
XPLINK
should
not
be
used
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 36
How
is
XPLINK
enabled?
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 37
XPLINK
Compiler
option
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 37
XPLINK
Run-Time
Option
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 37
Building
and
running
an
XPLINK
application
.
.
.
.
.
.
.
.
.
.
.
.
.
. 38
Other
considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 39
XPLINK
/
non-XPLINK
compatibility
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 39
XPLINK
Restrictions
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 40
Chapter
4.
Building
and
Using
Dynamic
Link
Libraries
(DLLs)
.
.
.
.
.
. 43
Support
for
DLLs
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 43
DLL
Concepts
and
Terms
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 44
Loading
a
DLL
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 45
Loading
a
DLL
Implicitly
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 45
Loading
a
DLL
Explicitly
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 45
Managing
the
Use
of
DLLs
When
Running
DLL
Applications
.
.
.
.
.
.
.
. 52
Loading
DLLs
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 52
Sharing
DLLs
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 54
Freeing
DLLs
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 54
Creating
a
DLL
or
a
DLL
Application
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 54
Building
a
Simple
DLL
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 55
Writing
DLL
Code
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 55
Compiling
Your
DLL
Code
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 58
Binding
Your
DLL
Code
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 59
Building
a
Simple
DLL
Application
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 60
Creating
and
Using
DLLs
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 63
DLL
Restrictions
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 64
Improving
Performance
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 66
Building
Complex
DLLs
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 66
Chapter
5.
Link-Editing,
Loading,
and
Running
under
Batch
.
.
.
.
.
.
. 69
Basic
Link-Editing
and
Running
under
Batch
.
.
.
.
.
.
.
.
.
.
.
.
.
. 69
Accepting
the
Default
Run-Time
Options
.
.
.
.
.
.
.
.
.
.
.
.
.
. 69
Overriding
the
Default
Run-Time
Options
.
.
.
.
.
.
.
.
.
.
.
.
.
. 70
Specifying
Run-Time
Options
in
the
EXEC
Statement
.
.
.
.
.
.
.
.
.
. 70
Providing
Link-Edit
Input
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 71
Writing
JCL
for
the
Link-Edit
Process
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 72
Binder
Control
Statements
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 76
Link-Edit
Options
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 77
Loading
Your
Application
Using
the
Loader
.
.
.
.
.
.
.
.
.
.
.
.
.
. 78
Writing
JCL
for
the
Loader
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 79
Invoking
the
Loader
with
the
EXEC
Statement
.
.
.
.
.
.
.
.
.
.
.
. 79
Using
the
PARM
Parameter
for
Loader
Options
.
.
.
.
.
.
.
.
.
.
.
. 79
Requesting
Loader
Options
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 79
Passing
Parameters
through
the
Loader
.
.
.
.
.
.
.
.
.
.
.
.
.
. 79
Using
DD
Statements
for
the
Standard
Loader
Data
Sets
.
.
.
.
.
.
.
. 80
Running
an
Application
under
Batch
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 81
Program
Library
Definition
and
Search
Order
.
.
.
.
.
.
.
.
.
.
.
.
. 81
Specifying
Run-Time
Options
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 82
Chapter
6.
Creating
and
executing
programs
under
TSO/E
.
.
.
.
.
.
. 83
Basic
link-editing
and
running
under
TSO/E
.
.
.
.
.
.
.
.
.
.
.
.
.
. 83
iv
z/OS
V1R6.0
Language
Environment
Programming
Guide
Accepting
the
default
run-time
options
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 83
Overriding
the
default
run-time
options
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 83
Link-editing
and
running
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 84
Link-editing
your
application
using
the
LINK
command
.
.
.
.
.
.
.
.
.
. 84
Using
CMOD
CLIST
to
invoke
the
TSO/E
LINK
command
.
.
.
.
.
.
.
.
. 85
Using
the
CALL
command
to
run
your
application
.
.
.
.
.
.
.
.
.
.
.
. 87
TSO/E
parameter
list
format
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 88
Loading
and
running
using
the
LOADGO
command
.
.
.
.
.
.
.
.
.
.
. 88
Allocating
data
sets
under
TSO/E
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 89
Example
of
using
LOADGO
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 89
Link-edit
and
loader
options
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 89
Using
the
iconv
utility
and
ICONV
CLIST
for
C/C++
.
.
.
.
.
.
.
.
.
.
. 90
Using
the
genxlt
utility
and
GENXLT
CLIST
for
C/C++
.
.
.
.
.
.
.
.
.
. 91
Running
your
application
under
TSO/E
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 91
Chapter
7.
Creating
and
Executing
Programs
using
z/OS
UNIX
System
Services
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 93
Basic
Link-Editing
and
Running
C/C++
Applications
under
z/OS
UNIX
.
.
.
. 93
Invoking
a
Shell
from
TSO/E
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 94
Using
the
z/OS
UNIX
c89
Utility
to
Link-Edit
and
Create
Executable
Files
.
.
. 94
Running
z/OS
UNIX
C/C++
Application
Programs
.
.
.
.
.
.
.
.
.
.
.
. 94
z/OS
UNIX
Application
Program
Environments
.
.
.
.
.
.
.
.
.
.
.
. 95
Placing
an
MVS
Application
Executable
Program
in
the
File
System
.
.
.
. 95
Restriction
on
Using
24-Bit
AMODE
Programs
.
.
.
.
.
.
.
.
.
.
.
. 95
Running
an
MVS
Executable
Program
from
a
z/OS
UNIX
Shell
.
.
.
.
.
. 95
Running
POSIX-enabled
Programs
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 96
Running
COBOL
Programs
under
z/OS
UNIX
.
.
.
.
.
.
.
.
.
.
.
.
. 98
Basic
Link-Editing
and
Running
PL/I
Routines
under
z/OS
UNIX
with
POSIX(ON)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 99
Basic
Link-Editing
and
Running
PL/I
MTF
Applications
under
z/OS
UNIX
100
Chapter
8.
Using
IBM-Supplied
Cataloged
Procedures
.
.
.
.
.
.
.
. 103
Invoking
Cataloged
Procedures
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 103
Step
Names
in
Cataloged
Procedures
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 103
Unit
Names
in
Cataloged
Procedures
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 104
Data
Set
Names
in
Cataloged
Procedures
.
.
.
.
.
.
.
.
.
.
.
.
. 104
IBM-Supplied
Cataloged
Procedures
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 105
CEEWG
Load
and
Run
a
Language
Environment-Conforming
Non-XPLINK
Program
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 107
CEEWL
Link
a
Language
Environment-Conforming
Non-XPLINK
Program
108
CEEWLG
Link
and
Run
a
Language
Environment-Conforming
Non-XPLINK
Program
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 109
CEEXR
Load
and
Run
a
Language
Environment-Conforming
XPLINK
Program
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 109
CEEXL
Link-Edit
a
Language
Environment-Conforming
XPLINK
Program
110
CEEXLR
Link
and
Run
a
Language
Environment-Conforming
XPLINK
Program
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 111
AFHWL
Link
a
Program
Written
in
Fortran
.
.
.
.
.
.
.
.
.
.
.
. 111
AFHWLG
Link
and
Run
a
Program
Written
in
Fortran
.
.
.
.
.
.
.
. 112
AFHWN
Resolving
Name
Conflicts
between
C
and
Fortran
.
.
.
.
.
. 113
Modifying
Cataloged
Procedures
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 114
Overriding
and
Adding
to
EXEC
Statements
.
.
.
.
.
.
.
.
.
.
.
.
. 114
Overriding
and
Adding
DD
Statements
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 114
Overriding
Generic
Link-Edit
Procedures
for
Constructed
Reentrant
Programs
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 115
Contents
v
Chapter
9.
Using
Run-Time
Options
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 117
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 117
Specifying
Run-Time
Options
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 117
Order
of
Precedence
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 120
Specifying
Suboptions
in
Run-Time
Options
.
.
.
.
.
.
.
.
.
.
.
.
. 121
Specifying
Run-Time
Options
and
Program
Arguments
.
.
.
.
.
.
.
.
. 121
Using
_CEE_RUNOPTS
to
Specify
Run-Time
Options
.
.
.
.
.
.
.
.
. 122
C
and
C++
Compatibility
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
. 122
COBOL
Compatibility
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 122
Fortran
Compatibility
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 123
PL/I
Compatibility
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 123
IMS
Compatibility
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 124
CEEXOPT
Invocation
Syntax
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 124
Part
2.
Preparing
an
Application
to
Run
with
Language
Environment
.
.
.
.
. 129
Chapter
10.
Using
Language
Environment
Parameter
List
Formats
.
.
.
. 131
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 131
Argument
Lists
and
Parameter
Lists
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 132
Passing
Arguments
between
Routines
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 132
Preparing
Your
Main
Routine
to
Receive
Parameters
.
.
.
.
.
.
.
.
.
. 134
PL/I
Argument
Passing
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 138
Chapter
11.
Making
Your
Application
Reentrant
.
.
.
.
.
.
.
.
.
.
. 139
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 139
Making
Your
C/C++
Program
Reentrant
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 139
Natural
Reentrancy
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 139
Constructed
Reentrancy
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 139
Generating
a
Reentrant
Program
Executable
for
C
or
C++
.
.
.
.
.
.
. 140
Making
Your
COBOL
Program
Reentrant
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 140
Making
Your
Fortran
Program
Reentrant
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 140
Making
Your
PL/I
Program
Reentrant
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 141
Installing
a
Reentrant
Load
Module
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 141
Part
3.
Language
Environment
Concepts,
Services,
and
Models
.
.
.
.
.
.
.
. 143
Chapter
12.
Initialization
and
termination
under
Language
Environment
145
Understanding
the
basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 145
Language
Environment
Initialization
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 146
What
Happens
During
Initialization
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 147
Language
Environment
Termination
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 148
What
causes
termination
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 148
What
happens
during
termination
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 149
Managing
return
codes
in
Language
Environment
.
.
.
.
.
.
.
.
.
.
. 151
How
the
Language
Environment
enclave
return
code
is
calculated
.
.
.
. 151
Setting
and
altering
user
return
codes
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 152
Termination
behavior
for
unhandled
conditions
.
.
.
.
.
.
.
.
.
.
.
.
. 154
Determining
the
abend
code
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 155
Chapter
13.
Program
Management
Model
.
.
.
.
.
.
.
.
.
.
.
.
.
. 159
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 159
Language
Environment
Program
Management
Model
Terminology
.
.
.
. 159
Processes
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 161
Enclaves
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 162
Threads
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 163
vi
z/OS
V1R6.0
Language
Environment
Programming
Guide
The
Full
Language
Environment
Program
Management
Model
.
.
.
.
.
.
. 163
Mapping
the
POSIX
Program
Management
Model
to
the
Language
Environment
Program
Management
Model
.
.
.
.
.
.
.
.
.
.
.
.
. 164
Key
POSIX
Program
Entities
and
Language
Environment
Counterparts
164
Scope
of
POSIX
Semantics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 165
Chapter
14.
Stack
and
heap
storage
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 167
Understanding
the
basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 167
Stack
storage
overview
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 169
Tuning
stack
storage
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 170
COBOL
storage
considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 170
PL/I
Storage
considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 170
Heap
storage
overview
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 171
Using
HEAPPOOLS
to
improve
performance
.
.
.
.
.
.
.
.
.
.
.
. 173
Heap
IDs
recognized
by
the
Language
Environment
heap
manager
.
.
.
. 174
AMODE
considerations
for
heap
storage
.
.
.
.
.
.
.
.
.
.
.
.
.
. 174
Tuning
heap
storage
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 174
Storage
performance
considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 175
Dynamic
storage
services
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 175
Examples
of
callable
storage
services
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 176
C
example
of
building
a
linked
list
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 176
COBOL
example
of
building
a
linked
list
.
.
.
.
.
.
.
.
.
.
.
.
.
. 178
PL/I
Example
of
building
a
linked
list
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 181
C
example
of
storage
management
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 183
COBOL
example
of
storage
management
.
.
.
.
.
.
.
.
.
.
.
.
. 186
PL/I
example
of
storage
management
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 188
User-created
heap
storage
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 190
Alternative
Vendor
Heap
Manager
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 190
Using
_CEE_HEAP_MANAGER
to
invoke
the
alternative
Vendor
Heap
Manager
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 191
Chapter
15.
Language
Environment
Condition
Handling
Introduction
193
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 193
The
Stack
Frame
Model
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 196
Handle
Cursor
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 196
Resume
Cursor
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 196
What
Is
a
Condition
in
Language
Environment?
.
.
.
.
.
.
.
.
.
.
.
. 197
Steps
in
Condition
Handling
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 197
Enablement
Step
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 198
Condition
Step
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 200
Termination
Imminent
Step
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 202
Invoking
Condition
Handlers
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 205
Responses
to
Conditions
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 206
Condition
Handling
Scenarios
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 207
Scenario
1:
Simple
Condition
Handling
.
.
.
.
.
.
.
.
.
.
.
.
.
. 208
Scenario
2:
User-Written
Condition
Handler
Present
for
T_I_U
.
.
.
.
.
. 209
Scenario
3:
Condition
Handler
Present
for
Divide-by-Zero
.
.
.
.
.
.
.
. 210
Chapter
16.
Language
Environment
and
HLL
Condition
Handling
Interactions
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 213
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 213
C
Condition
Handling
Semantics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 213
Comparison
of
C-Language
Environment
Terminology
.
.
.
.
.
.
.
.
. 214
Controlling
Condition
Handling
in
C
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 215
C
Condition
Handling
Actions
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 216
C
Signal
Representation
of
S/370
Exceptions
.
.
.
.
.
.
.
.
.
.
.
. 220
Contents
vii
C++
Condition
Handling
Semantics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 221
COBOL
Condition
Handling
Semantics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 221
COBOL
Condition
Handling
Examples
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 222
Resuming
Execution
after
an
IGZ
Condition
Occurs
.
.
.
.
.
.
.
.
.
. 225
Resuming
Execution
after
a
COBOL
STOP
RUN
Statement
.
.
.
.
.
.
. 225
Reentering
COBOL
Programs
after
Stack
Frame
Collapse
.
.
.
.
.
.
. 226
Handling
Fixed-Point
and
Decimal
Overflow
Conditions
.
.
.
.
.
.
.
. 226
Fortran
Condition
Handling
Semantics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 226
Arithmetic
Program
Interruptions
from
Vector
Instructions
.
.
.
.
.
.
.
. 226
Restrictions
on
Using
Vector
Instructions
in
User-Written
Condition
Handlers
227
PL/I
Condition
Handling
Semantics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 228
PL/I
Condition
Handling
Actions
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 228
Promoting
Conditions
to
the
PL/I
ERROR
Condition
.
.
.
.
.
.
.
.
.
. 229
Mapping
Non-PL/I
Conditions
to
PL/I
Conditions
.
.
.
.
.
.
.
.
.
.
. 229
Additional
PL/I
Condition
Handling
Considerations
.
.
.
.
.
.
.
.
.
. 230
PL/I
Condition
Handling
Example
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 230
Language
Environment
and
POSIX
Signal
Handling
Interactions
.
.
.
.
.
. 233
Synchronous
POSIX
Signal
and
Language
Environment
Condition
Handling
Interactions
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 233
Chapter
17.
Coding
a
user-written
condition
handler
.
.
.
.
.
.
.
.
. 237
Understanding
the
basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 237
PL/I
Considerations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 237
Types
of
conditions
you
can
handle
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 238
User-written
condition
handler
interface
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 238
Registering
user-written
condition
handlers
using
USRHDLR
.
.
.
.
.
.
. 240
Nested
conditions
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 241
Nested
conditions
in
applications
containing
a
COBOL
program
.
.
.
.
. 242
Using
Language
Environment
condition
handling
with
nested
COBOL
programs
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 242
Examples
with
a
registered
user-written
condition
handler
.
.
.
.
.
.
.
. 243
Handling
a
divide-by-zero
condition
in
C,
C++,
COBOL,
or
PL/I
.
.
.
.
. 243
Handling
an
out-of-storage
condition
in
C,
C++,
COBOL,
or
PL/I
.
.
.
.
. 255
Signaling
and
handling
a
condition
in
a
C/C++
routine
.
.
.
.
.
.
.
.
. 269
Handling
a
divide-by-zero
condition
in
a
COBOL
program
.
.
.
.
.
.
.
. 272
Handling
a
program
check
in
an
assembler
routine
.
.
.
.
.
.
.
.
.
. 277
Chapter
18.
Using
Condition
Tokens
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 285
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 285
The
Effect
of
Coding
the
fc
Parameter
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 286
Testing
a
Condition
Token
for
Success
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 286
Testing
Condition
Tokens
for
Equivalence
.
.
.
.
.
.
.
.
.
.
.
.
.
. 287
Testing
Condition
Tokens
for
Equality
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 287
Effects
of
Omitting
the
fc
Parameter
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 287
Understanding
the
Structure
of
the
Condition
Token
.
.
.
.
.
.
.
.
.
.
. 288
Using
Symbolic
Feedback
Codes
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 289
Locating
Symbolic
Feedback
Codes
for
Conditions
.
.
.
.
.
.
.
.
.
. 289
Including
Symbolic
Feedback
Code
Files
.
.
.
.
.
.
.
.
.
.
.
.
.
. 290
Examples
Using
Symbolic
Feedback
Codes
.
.
.
.
.
.
.
.
.
.
.
.
. 291
Condition
Tokens
for
C
Signals
under
C
and
C++
.
.
.
.
.
.
.
.
.
.
.
. 296
q_data
Structure
for
Abends
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 297
Usage
Notes
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 298
Example
Illustrating
Retrieval
of
q_data
.
.
.
.
.
.
.
.
.
.
.
.
.
. 298
q_data
Structure
for
Arithmetic
Program
Interruptions
.
.
.
.
.
.
.
.
.
. 301
Usage
Notes
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 303
q_data
Structure
for
Square-Root
Exception
.
.
.
.
.
.
.
.
.
.
.
.
.
. 304
viii
z/OS
V1R6.0
Language
Environment
Programming
Guide
q_data
Structure
for
Math
and
Bit-Manipulation
Conditions
.
.
.
.
.
.
.
. 304
Usage
Notes
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 308
Format
of
q_data
Descriptors
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 308
Chapter
19.
Using
and
Handling
Messages
.
.
.
.
.
.
.
.
.
.
.
.
. 311
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 311
Creating
Messages
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 311
Creating
a
Message
Source
File
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 312
Using
the
CEEBLDTX
Utility
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 315
Files
Created
by
CEEBLDTX
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 315
Creating
a
Message
Module
Table
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 318
Assigning
Values
to
Message
Inserts
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 319
Interpreting
Run-Time
Messages
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 320
Specifying
National
Language
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 322
Run-Time
Messages
with
POSIX
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 322
Handling
Message
Output
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 323
Using
Language
Environment
MSGFILE
.
.
.
.
.
.
.
.
.
.
.
.
.
. 324
Using
MSGFILE
under
z/OS
UNIX
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 324
Using
C
or
C++
I/O
Functions
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 325
Using
COBOL
I/O
Statements
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 327
Using
Fortran
I/O
Statements
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 327
Using
PL/I
I/O
Statements
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 329
MSGFILE
Considerations
When
Using
PL/I
.
.
.
.
.
.
.
.
.
.
.
.
. 329
Examples
Using
Multiple
Message
Handling
Callable
Services
.
.
.
.
.
.
. 330
C/C++
Example
Calls
to
CEEMOUT,
CEENCOD,
CEEMGET,
CEEDCOD,
and
CEEMSG
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 331
COBOL
Example
Calls
to
CEEMOUT,
CEENCOD,
CEEMGET,
CEEDCOD,
and
CEEMSG
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 333
PL/I
Example
Calls
to
CEEMOUT,
CEENCOD,
CEEMGET,
CEEDCOD,
and
CEEMSG
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 336
Chapter
20.
Using
Date
and
Time
Services
.
.
.
.
.
.
.
.
.
.
.
.
. 339
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 339
Working
with
Date
and
Time
Services
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 340
Date
Limits
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 340
Picture
Character
Terms
and
Picture
Strings
.
.
.
.
.
.
.
.
.
.
.
. 341
Notation
for
Eras
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 341
Performing
Calculations
on
Date
and
Time
Values
.
.
.
.
.
.
.
.
.
.
. 342
Century
Window
Routines
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 342
National
Language
Support
for
Date
and
Time
Services
.
.
.
.
.
.
.
.
. 343
Examples
Using
Date
and
Time
Callable
Services
.
.
.
.
.
.
.
.
.
.
. 343
Examples
Illustrating
Calls
to
CEEQCEN
and
CEESCEN
.
.
.
.
.
.
.
. 344
Examples
Illustrating
Calls
to
CEESECS
.
.
.
.
.
.
.
.
.
.
.
.
.
. 347
Examples
Illustrating
Calls
to
CEESECS
and
CEEDATM
.
.
.
.
.
.
.
. 352
Examples
Illustrating
Calls
to
CEESECS,
CEESECI,
CEEISEC,
and
CEEDATM
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 358
Examples
Illustrating
Calls
to
CEEDAYS,
CEEDATE,
and
CEEDYWK
.
.
. 367
Calls
to
CEECBLDY
in
COBOL
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 377
Chapter
21.
National
Language
Support
.
.
.
.
.
.
.
.
.
.
.
.
.
. 379
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 379
Setting
the
National
Language
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 379
Setting
the
Country
Code
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 380
Combining
National
Language
Support
and
Date
and
Time
Services
.
.
.
.
. 380
Calls
to
CEE3CTY,
CEEFMDT,
and
CEEDATM
in
C
.
.
.
.
.
.
.
.
.
. 380
Calls
to
CEE3CTY,
CEEFMDT,
and
CEEDATM
in
COBOL
.
.
.
.
.
.
. 382
Contents
ix
Example
Using
CEE3CTY,
CEEFMDT,
and
CEEDATM
in
PL/I
.
.
.
.
.
. 386
Chapter
22.
Locale
Callable
Services
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 389
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 389
Developing
Internationalized
Applications
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 390
Examples
of
Using
Locale
Callable
Services
.
.
.
.
.
.
.
.
.
.
.
.
. 390
Example
Calls
to
CEEFMON
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 390
Example
Calls
to
CEEFTDS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 393
Example
Calls
to
CEELCNV
and
CEESETL
.
.
.
.
.
.
.
.
.
.
.
.
. 397
Example
Calls
to
CEEQDTC
and
CEESETL
.
.
.
.
.
.
.
.
.
.
.
. 402
Example
Calls
to
CEESCOL
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 407
Example
Calls
to
CEESETL
and
CEEQRYL
.
.
.
.
.
.
.
.
.
.
.
.
. 410
Example
Calls
to
CEEQRYL
and
CEESTXF
.
.
.
.
.
.
.
.
.
.
.
.
. 413
Chapter
23.
General
Callable
Services
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 419
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 419
CEE3DMP
Callable
Service
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 419
CEE3USR
Callable
Service
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 420
CEEGPID
Callable
Service
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 420
CEERAN0
Callable
Service
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 420
CEETEST
Callable
Service
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 420
Using
Some
Basic
Callable
Services
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 420
Chapter
24.
Math
Services
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 425
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 425
Call
Interface
to
Math
Services
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 426
Parameter
Types:
parm1
Type
and
parm2
Type
.
.
.
.
.
.
.
.
.
.
. 427
Examples
of
Calling
Math
Services
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 427
Calling
CEESSLOG
in
C
and
C++
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 428
Calling
CEESSLOG
in
COBOL
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 429
Calling
CEESSLOG
in
PL/I
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 430
Part
4.
Using
Interfaces
to
Other
Products
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 431
Chapter
25.
Running
Applications
under
CICS
.
.
.
.
.
.
.
.
.
.
.
. 433
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 433
CICS
Region
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 433
CICS
Transaction
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 433
CICS
Run
Unit
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 434
Running
Language
Environment
Applications
under
CICS
.
.
.
.
.
.
. 434
Developing
an
Application
under
CICS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 434
PL/I
Coding
Considerations
under
CICS
.
.
.
.
.
.
.
.
.
.
.
.
.
. 435
Link-Edit
Considerations
under
CICS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 436
CICS
Processing
Program
Table
(PPT)
Considerations
.
.
.
.
.
.
.
.
. 436
Specifying
Run-Time
Options
under
CICS
.
.
.
.
.
.
.
.
.
.
.
.
. 437
Accessing
DLI
Databases
from
CICS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 439
Using
Callable
Services
under
CICS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 439
OS/VS
COBOL
Compatibility
Considerations
under
CICS
.
.
.
.
.
.
.
. 439
Using
Math
Services
in
PL/I
under
CICS
.
.
.
.
.
.
.
.
.
.
.
.
.
. 440
Coding
Program
Termination
in
PL/I
under
CICS
.
.
.
.
.
.
.
.
.
.
. 440
Storage
Management
under
CICS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 440
CICS
Short-on-Storage
Condition
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 440
CICS
Storage
Protect
Facility
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 440
PL/I
Storage
Considerations
under
CICS
.
.
.
.
.
.
.
.
.
.
.
.
.
. 441
Condition
Handling
under
CICS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 442
PL/I
Considerations
for
Using
the
CICS
HANDLE
ABEND
Command
.
.
. 442
x
z/OS
V1R6.0
Language
Environment
Programming
Guide
Effect
of
the
CICS
HANDLE
ABEND
Command
.
.
.
.
.
.
.
.
.
.
. 443
Effect
of
the
CICS
HANDLE
CONDITION
and
CICS
HANDLE
AID
.
.
.
. 443
Restrictions
on
User-Written
Condition
Handlers
under
CICS
.
.
.
.
.
. 443
CICS
Transaction
Abend
Codes
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 444
Using
the
CBLPSHPOP
Run-Time
Option
under
CICS
.
.
.
.
.
.
.
.
. 444
Restrictions
on
Assembler
User
Exits
under
CICS
.
.
.
.
.
.
.
.
.
. 444
Ensuring
Transaction
Rollback
under
CICS
.
.
.
.
.
.
.
.
.
.
.
.
. 445
Run-Time
Output
under
CICS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 445
Message
Handling
under
CICS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 445
Dump
Services
under
CICS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 446
Support
for
Calls
within
the
Same
HLL
under
CICS
.
.
.
.
.
.
.
.
.
.
. 446
C
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 446
C++
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 446
COBOL
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 446
PL/I
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 447
Chapter
26.
Running
Applications
under
DB2
.
.
.
.
.
.
.
.
.
.
.
. 449
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 449
Language
Environment
Support
for
DB2
Applications
.
.
.
.
.
.
.
.
. 449
Condition
Handling
under
DB2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 449
PL/I
Consideration
for
DB2
Applications
.
.
.
.
.
.
.
.
.
.
.
.
.
. 449
Chapter
27.
Running
Applications
under
IMS
.
.
.
.
.
.
.
.
.
.
.
. 451
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 451
Using
the
Interface
between
Language
Environment
and
IMS
.
.
.
.
.
.
. 451
z/OS
C/C++
Considerations
under
IMS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 451
C++
Considerations
under
IMS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 452
PL/I
Considerations
under
IMS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 452
IMS
Communication
with
Your
Application
.
.
.
.
.
.
.
.
.
.
.
.
.
. 452
Link-Edit
Considerations
under
IMS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 453
Making
Your
IMS
Application
Reentrant
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 453
Condition
Handling
under
IMS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 453
Coordinated
Condition
Handling
under
IMS
.
.
.
.
.
.
.
.
.
.
.
.
. 453
Diagnosing
Abends
with
the
IMS
Dump
.
.
.
.
.
.
.
.
.
.
.
.
.
. 454
Part
5.
Specialized
Programming
Tasks
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 455
Chapter
28.
Using
Run-Time
User
Exits
.
.
.
.
.
.
.
.
.
.
.
.
.
. 457
Understanding
the
Basics
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 457
User
Exits
Supported
under
Language
Environment
.
.
.
.
.
.
.
.
.
.
. 457
Using
the
Assembler
User
Exit
CEEBXITA
.
.
.
.
.
.
.
.
.
.
.
.
. 458
Using
the
HLL
Initialization
Exit
CEEBINT
.
.
.
.
.
.
.
.
.
.
.
.
. 458
PL/I
and
C
Compatibility
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 459
Using
Sample
Assembler
User
Exits
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 459
When
User
Exits
Are
Invoked
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 460
CEEBXITA
Behavior
During
Enclave
Initialization
.
.
.
.
.
.
.
.
.
.
. 461
CEEBXITA
Behavior