700
z/OS Language Environment Programming Guide SA22-7561-05

z/OS V1R6.0 Language Environment Programming Guidegeraldine.fjfi.cvut.cz/~oberhuber/data/mainframe/redbooks/umf/le... · Placing an MVS Application Executable Program in the File

  • 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,

    Mail

    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:

    [email protected]

    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.html
  • Contents

    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