z/os v1r6.0 language environment programming guideoberhtom/mainframe/redbooks/le_pg.pdf · z/os...

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

Upload: others

Post on 02-May-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

  • 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

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .