Z/OS V1R6.0 Language Environment Programming Guide - Cvut.cz

Transcription

z/OS Language EnvironmentProgramming GuideSA22-7561-05

z/OS Language EnvironmentProgramming GuideSA22-7561-05

NoteBefore using this information and the product it supports, be sure to read the general information under “Notices” on page631.Sixth Edition, September 2004This 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 youmay address your comments to the following address:International Business Machines CorporationDepartment 55JA, Mail Station P3842455 South RoadPoughkeepsie, NY 12601-5400United States of AmericaFAX (United States & Canada): 1 845 432-9405FAX (Other Countries):Your International Access Code 1 845 432-9405IBMLink (United States customers only): IBMUSM10(MHVRCFS)Internet e-mail: mhvrcfs@us.ibm.comWorld Wide Web: qs.htmlIf 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 documentv Page number or topic related to your commentWhen you send information to IBM, you grant IBM a nonexclusive right to use or distribute the information in anyway 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 Contractwith IBM Corp.

ContentsFigures. . . . . . . . . . . . . . . . . . . . . . . . . . . xvTables . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix About this document . . . . . . . . . . . . .Using your documentation . . . . . . . . . . .How to read syntax diagrams . . . . . . . . . .Symbols . . . . . . . . . . . . . . . . .Syntax items . . . . . . . . . . . . . . .Syntax examples . . . . . . . . . . . . .This Programming Guide . . . . . . . . . . . .Determining if a publication is current . . . . . . .Where to find more information . . . . . . . . .Accessing z/OS licensed documents on the Internet.Using LookAt to look up message explanations . .Information updates on the web . . . . . . . . xxi. xxii. xxiii. xxiii. xxiii. xxiv. xxv. xxvi. xxvi. xxvi. xxvii. xxviiSummary of changes . . . . . . . . . . . . . . . . . . . . . xxixPart 1. Creating Applications with Language Environment . . . . . . . . . . . . 1Chapter 1. Introduction to Language Environment . . . . . . . . . . . 3Components of Language Environment . . . . . . . . . . . . . . . . 3Common Run-Time Environment of Language Environment . . . . . . . . . 4Chapter 2. Preparing to Link-Edit and Run under Language EnvironmentUnderstanding the Basics . . . . . . . . . . . . . . . . . . . .Planning to Link-Edit and Run . . . . . . . . . . . . . . . . . .Link-Editing Single-Language Applications . . . . . . . . . . . . .Link-Editing ILC Applications . . . . . . . . . . . . . . . . . .Downward Compatibility Considerations . . . . . . . . . . . . . . .Checking Which Run-Time Options Are in Effect . . . . . . . . . . .HLL Compatibility Considerations . . . . . . . . . . . . . . . . .C/C AMODE/RMODE Considerations. . . . . . . . . . . . . . .COBOL Considerations . . . . . . . . . . . . . . . . . . . . .Replacing COBOL Library Routines in a COBOL Load Module . . . . .Using Language Environment Resident Routines for Callable Services . .Fortran Considerations . . . . . . . . . . . . . . . . . . . . .Replacing Fortran Run-Time Library Modules in a Fortran ExecutableProgram . . . . . . . . . . . . . . . . . . . . . . . .Using the Fortran Library Module Replacement Tool . . . . . . . . .Resolving Static Common Block Name Conflicts . . . . . . . . . .Resolving Library Module Name Conflicts between Fortran and C . . . .PL/I Considerations . . . . . . . . . . . . . . . . . . . . . .Link-editing PL/I Subroutines for Later Use . . . . . . . . . . . .Replacing PL/I Library Routines in an OS PL/I Executable Program . . .Link-Editing Fetchable Executable Programs . . . . . . . . . . . .PL/I Link-Time Considerations . . . . . . . . . . . . . . . . .Fetching Modules with Different AMODEs . . . . . . . . . . . . .7. 7. 8. 9. 10. 10. 13. 13. 14. 14. 14. 14. 15.15161617242425252626Chapter 3. Using Extra Performance Linkage (XPLINK) . . . . . . . . . 29What is XPLINK? . . . . . . . . . . . . . . . . . . . . . . . . 29Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 29 Copyright IBM Corp. 1995, 2004iii

Support for XPLINK . . . . . . . .XPLINK Concepts and terms . . . . .The XPLINK stack . . . . . . . .When XPLINK should be used . . . . .When XPLINK should not be used. . .How is XPLINK enabled? . . . . . . .XPLINK Compiler option . . . . . .XPLINK Run-Time Option . . . . . .Building and running an XPLINK applicationOther considerations . . . . . . . .XPLINK / non-XPLINK compatibility . . .XPLINK Restrictions . . . . . . . . .303031363637373738393940Chapter 4. Building and Using Dynamic Link Libraries (DLLs)Support for DLLs . . . . . . . . . . . . . . . . . .DLL Concepts and Terms . . . . . . . . . . . . . . .Loading a DLL . . . . . . . . . . . . . . . . . . .Loading a DLL Implicitly . . . . . . . . . . . . . .Loading a DLL Explicitly . . . . . . . . . . . . . .Managing the Use of DLLs When Running DLL Applications . .Loading DLLs . . . . . . . . . . . . . . . . . .Sharing DLLs . . . . . . . . . . . . . . . . . .Freeing DLLs . . . . . . . . . . . . . . . . . .Creating a DLL or a DLL Application . . . . . . . . . . .Building a Simple DLL . . . . . . . . . . . . . . . .Writing DLL Code . . . . . . . . . . . . . . . . .Compiling Your DLL Code . . . . . . . . . . . . . .Binding Your DLL Code . . . . . . . . . . . . . . .Building a Simple DLL Application . . . . . . . . . . . .Creating and Using DLLs . . . . . . . . . . . . . . .DLL Restrictions . . . . . . . . . . . . . . . . . .Improving Performance . . . . . . . . . . . . . . .Building Complex DLLs . . . . . . . . . . . . . . . .4343444545455252545454555558596063646666Chapter 5. Link-Editing, Loading, and Running under Batch .Basic Link-Editing and Running under Batch . . . . . . . .Accepting the Default Run-Time Options . . . . . . . .Overriding the Default Run-Time Options . . . . . . . .Specifying Run-Time Options in the EXEC Statement. . . .Providing Link-Edit Input . . . . . . . . . . . . . . .Writing JCL for the Link-Edit Process . . . . . . . . . .Binder Control Statements. . . . . . . . . . . . . .Link-Edit Options . . . . . . . . . . . . . . . . . .Loading Your Application Using the Loader . . . . . . . .Writing JCL for the Loader. . . . . . . . . . . . . .Invoking the Loader with the EXEC Statement . . . . . .Using the PARM Parameter for Loader Options . . . . . .Requesting Loader Options . . . . . . . . . . . . .Passing Parameters through the Loader . . . . . . . .Using DD Statements for the Standard Loader Data Sets . .Running an Application under Batch . . . . . . . . . . .Program Library Definition and Search Order . . . . . . .Specifying Run-Time Options . . . . . . . . . . . . .69696970707172767778797979797980818182Chapter 6. Creating and executing programs under TSO/E . . . . . . . 83Basic link-editing and running under TSO/E . . . . . . . . . . . . . . 83ivz/OS V1R6.0 Language Environment Programming Guide

Accepting the default run-time options . . . . . .Overriding the default run-time options . . . . . .Link-editing and running . . . . . . . . . . . .Link-editing your application using the LINK command .Using CMOD CLIST to invoke the TSO/E LINK commandUsing the CALL command to run your application . . .TSO/E parameter list format . . . . . . . . . .Loading and running using the LOADGO command . .Allocating data sets under TSO/E . . . . . . . .Example of using LOADGO . . . . . . . . . .Link-edit and loader options . . . . . . . . . .Using the iconv utility and ICONV CLIST for C/C . .Using the genxlt utility and GENXLT CLIST for C/C .Running your application under TSO/E . . . . . . .Chapter 7. Creating and Executing Programs using z/OS UNIX SystemServices . . . . . . . . . . . . . . . . . . . . . . . .Basic Link-Editing and Running C/C Applications under z/OS UNIX . .Invoking a Shell from TSO/E . . . . . . . . . . . . . . . . . .Using the z/OS UNIX c89 Utility to Link-Edit and Create Executable Files .Running z/OS UNIX C/C Application Programs . . . . . . . . . .z/OS UNIX Application Program Environments . . . . . . . . . .Placing an MVS Application Executable Program in the File System . .Restriction on Using 24-Bit AMODE Programs . . . . . . . . . .Running an MVS Executable Program from a z/OS UNIX Shell . . . .Running POSIX-enabled Programs . . . . . . . . . . . . . .Running COBOL Programs under z/OS UNIX . . . . . . . . . . .Basic Link-Editing and Running PL/I Routines under z/OS UNIX withPOSIX(ON) . . . . . . . . . . . . . . . . . . . . . . .Basic Link-Editing and Running PL/I MTF Applications under z/OS 959698. . 99100Chapter 8. Using IBM-Supplied Cataloged Procedures . . . . . . . .Invoking Cataloged Procedures . . . . . . . . . . . . . . . . . .Step Names in Cataloged Procedures . . . . . . . . . . . . . . .Unit Names in Cataloged Procedures . . . . . . . . . . . . . . .Data Set Names in Cataloged Procedures . . . . . . . . . . . . .IBM-Supplied Cataloged Procedures . . . . . . . . . . . . . . . .CEEWG — Load and Run a Language Environment-ConformingNon-XPLINK Program . . . . . . . . . . . . . . . . . . . .CEEWL — Link a Language Environment-Conforming Non-XPLINK ProgramCEEWLG — Link and Run a Language Environment-ConformingNon-XPLINK Program . . . . . . . . . . . . . . . . . . . .CEEXR — Load and Run a Language Environment-Conforming XPLINKProgram . . . . . . . . . . . . . . . . . . . . . . . . .CEEXL — Link-Edit a Language Environment-Conforming XPLINK ProgramCEEXLR — Link and Run a Language Environment-Conforming XPLINKProgram . . . . . . . . . . . . . . . . . . . . . . . . .AFHWL — Link a Program Written in Fortran . . . . . . . . . . . .AFHWLG — Link and Run a Program Written in Fortran . . . . . . . .AFHWN — Resolving Name Conflicts between C and Fortran . . . . . .Modifying Cataloged Procedures . . . . . . . . . . . . . . . . . .Overriding and Adding to EXEC Statements . . . . . . . . . . . . .Overriding and Adding DD Statements . . . . . . . . . . . . . . .Overriding Generic Link-Edit Procedures for Constructed ReentrantPrograms . . . . . . . . . . . . . . . . . . . . . . . . 2113114114114115v

Chapter 9. Using Run-Time Options . . . . . . . .Understanding the Basics . . . . . . . . . . . .Specifying Run-Time Options . . . . . . . . . . .Order of Precedence . . . . . . . . . . . . .Specifying Suboptions in Run-Time Options . . . . .Specifying Run-Time Options and Program Arguments .Using CEE RUNOPTS to Specify Run-Time Options .C and C Compatibility Considerations . . . . . .COBOL Compatibility Considerations . . . . . . .Fortran Compatibility Considerations . . . . . . .PL/I Compatibility Considerations . . . . . . . . .IMS Compatibility Considerations . . . . . . . . .CEEXOPT Invocation Syntax . . . . . . . . . .117117117120121121122122122123123124124Part 2. Preparing an Application to Run with Language Environment . . . . . 129Chapter 10. Using Language Environment ParameterUnderstanding the Basics . . . . . . . . . . .Argument Lists and Parameter Lists . . . . . . .Passing Arguments between Routines . . . . . . .Preparing Your Main Routine to Receive Parameters .PL/I Argument Passing Considerations. . . . . .List. . . . . .Chapter 11. Making Your Application ReentrantUnderstanding the Basics . . . . . . . . .Making Your C/C Program Reentrant . . . .Natural Reentrancy . . . . . . . . . . .Constructed Reentrancy . . . . . . . . .Generating a Reentrant Program Executable forMaking Your COBOL Program Reentrant . . . .Making Your Fortran Program Reentrant . . . .Making Your PL/I Program Reentrant . . . . .Installing a Reentrant Load Module . . . . . . . . . . .C . . . . .C.or.Formats . . . . . . . . . . . . . . . Part 3. Language Environment Concepts, Services, and Models . . . . . . . . 143viChapter 12. Initialization and termination under Language EnvironmentUnderstanding the basics . . . . . . . . . . . . . . . . . . .Language Environment Initialization . . . . . . . . . . . . . . . .What Happens During Initialization . . . . . . . . . . . . . . .Language Environment Termination . . . . . . . . . . . . . . . .What causes termination . . . . . . . . . . . . . . . . . . .What happens during termination. . . . . . . . . . . . . . . .Managing return codes in Language Environment . . . . . . . . . .How the Language Environment enclave return code is calculated . . .Setting and altering user return codes . . . . . . . . . . . . . .Termination behavior for unhandled conditions . . . . . . . . . . . .Determining the abend code . . . . . . . . . . . . . . . . .145145146147148148149151151152154155Chapter 13. Program Management Model . . . . .Understanding the Basics . . . . . . . . . . .Language Environment Program Management ModelProcesses . . . . . . . . . . . . . . . .Enclaves . . . . . . . . . . . . . . . . .Threads . . . . . . . . . . . . . . . . .159159159161162163z/OS V1R6.0 Language Environment Programming Guide. . . . . . . . .Terminology. . . . . . . . . . . . .

The Full Language Environment Program Management Model . . . . . . . 163Mapping the POSIX Program Management Model to the LanguageEnvironment Program Management Model . . . . . . . . . . . . . 164Key POSIX Program Entities and Language Environment Counterparts164Scope of POSIX Semantics . . . . . . . . . . . . . . . . . . . 165Chapter 14. Stack and heap storage . . . . . . . . . . . . . .Understanding the basics . . . . . . . . . . . . . . . . . .Stack storage overview . . . . . . . . . . . . . . . . . . .Tuning stack storage . . . . . . . . . . . . . . . . . . .COBOL storage considerations . . . . . . . . . . . . . . .PL/I Storage considerations . . . . . . . . . . . . . . . . .Heap storage overview . . . . . . . . . . . . . . . . . . .Using HEAPPOOLS to improve performance . . . . . . . . . .Heap IDs recognized by the Language Environment heap manager . .AMODE considerations for heap storage . . . . . . . . . . . .Tuning heap storage . . . . . . . . . . . . . . . . . . .Storage performance considerations . . . . . . . . . . . . . .Dynamic storage services . . . . . . . . . . . . . . . . . .Examples of callable storage services . . . . . . . . . . . . . .C example of building a linked list . . . . . . . . . . . . . .COBOL example of building a linked list . . . . . . . . . . . .PL/I Example of building a linked list . . . . . . . . . . . . .C example of storage management . . . . . . . . . . . . . .COBOL example of storage management . . . . . . . . . . .PL/I example of storage management . . . . . . . . . . . . .User-created heap storage . . . . . . . . . . . . . . . . . .Alternative Vendor Heap Manager . . . . . . . . . . . . . . .Using CEE HEAP MANAGER to invoke the alternative Vendor HeapManager . . . . . . . . . . . . . . . . . . . . . . . . 191Chapter 15. Language Environment Condition Handling IntroductionUnderstanding the Basics . . . . . . . . . . . . . . . . . .The Stack Frame Model . . . . . . . . . . . . . . . . . . .Handle Cursor. . . . . . . . . . . . . . . . . . . . . .Resume Cursor . . . . . . . . . . . . . . . . . . . . .What Is a Condition in Language Environment? . . . . . . . . . .Steps in Condition Handling. . . . . . . . . . . . . . . . . .Enablement Step . . . . . . . . . . . . . . . . . . . .Condition Step . . . . . . . . . . . . . . . . . . . . .Termination Imminent Step . . . . . . . . . . . . . . . . .Invoking Condition Handlers . . . . . . . . . . . . . . . . .Responses to Conditions . . . . . . . . . . . . . . . . . . .Condition Handling Scenarios . . . . . . . . . . . . . . . . .Scenario 1: Simple Condition Handling . . . . . . . . . . . .Scenario 2: User-Written Condition Handler Present for T I U . . . .Scenario 3: Condition Handler Present for Divide-by-Zero . . . . . hapter 16. Language Environment and HLL ConditionInteractions . . . . . . . . . . . . . . . .Understanding the Basics . . . . . . . . . . . .C Condition Handling Semantics . . . . . . . . . .Comparison of C-Language Environment Terminology .Controlling Condition Handling in C . . . . . . . .C Condition Handling Actions . . . . . . . . . .C Signal Representation of S/370 Exceptions . . . .213213213214215216220ContentsviiHandling. . . . . . . . . . . . . . . . . . . . . 81183186188190190

viiiC Condition Handling Semantics . . . . . . . . . . . . . . . . .COBOL Condition Handling Semantics. . . . . . . . . . . . . . . .COBOL Condition Handling Examples . . . . . . . . . . . . . . .Resuming Execution after an IGZ Condition Occurs . . . . . . . . . .Resuming Execution after a COBOL STOP RUN Statement . . . . . . .Reentering COBOL Programs after Stack Frame Collapse . . . . . . .Handling Fixed-Point and Decimal Overflow Conditions . . . . . . . .Fortran Condition Handling Semantics . . . . . . . . . . . . . . . .Arithmetic Program Interruptions from Vector Instructions . . . . . . . .Restrictions on Using Vector Instructions in User-Written Condition HandlersPL/I Condition Handling Semantics . . . . . . . . . . . . . . . . .PL/I Condition Handling Actions . . . . . . . . . . . . . . . . .Promoting Conditions to the PL/I ERROR Condition . . . . . . . . . .Mapping Non-PL/I Conditions to PL/I Conditions . . . . . . . . . . .Additional PL/I Condition Handling Considerations . . . . . . . . . .PL/I Condition Handling Example . . . . . . . . . . . . . . . . .Language Environment and POSIX Signal Handling Interactions . . . . . .Synchronous POSIX Signal and Language Environment Condition HandlingInteractions . . . . . . . . . . . . . . . . . . . . . . . 33Chapter 17. Coding a user-written condition handler . . . . . .Understanding the basics . . . . . . . . . . . . . . . . .PL/I Considerations . . . . . . . . . . . . . . . . . . .Types of conditions you can handle . . . . . . . . . . . . . .User-written condition handler interface . . . . . . . . . . . .Registering user-written condition handlers using USRHDLR . . . .Nested conditions . . . . . . . . . . . . . . . . . . . .Nested conditions in applications containing a COBOL program . .Using Language Environment condition handling with nested COBOLprograms . . . . . . . . . . . . . . . . . . . . . .Examples with a registered user-written condition handler . . . . .Handling a divide-by-zero condition in C, C , COBOL, or PL/I . .Handling an out-of-storage condition in C, C , COBOL, or PL/I . .Signaling and handling a condition in a C/C routine . . . . . .Handling a divide-by-zero condition in a COBOL program . . . . .Handling a program check in an assembler routine . . . . . . pter 18. Using Condition Tokens . . . . .Understanding the Basics . . . . . . . . . .The Effect of Coding the fc Parameter . . . . . .Testing a Condition Token for Success . . . . .Testing Condition Tokens for Equivalence. . . .Testing Condition Tokens for Equality . . . . .Effects of Omitting the fc Parameter. . . . . . .Understanding the Structure of the Condition Token .Using Symbolic Feedback Codes. . . . . . . .Locating Symbolic Feedback Codes for ConditionsIncluding Symbolic Feedback Code Files . . . .Examples Using Symbolic Feedback Codes . . .Condition Tokens for C Signals under C and C . .q data Structure for Abends . . . . . . . . .Usage Notes . . . . . . . . . . . . . .Example Illustrating Retrieval of q data . . . .q data Structure for Arithmetic Program InterruptionsUsage Notes . . . . . . . . . . . . . .q data Structure for Square-Root Exception . . . 01303304z/OS V1R6.0 Language Environment Programming Guide.233

q data Structure for Math and Bit-Manipulation Conditions . . . . . . . . 304Usage Notes . . . . . . . . . . . . . . . . . . . . . . . . 308Format of q data Descriptors . . . . . . . . . . . . . . . . . . . 308Chapter 19. Using and Handling Messages . . . . . . . . . . . . .Understanding the Basics . . . . . . . . . . . . . . . . . . . .Creating Messages . . . . . . . . . . . . . . . . . . . . . . .Creating a Message Source File . . . . . . . . . . . . . . . . .Using the CEEBLDTX Utility . . . . . . . . . . . . . . . . . .Files Created by CEEBLDTX . . . . . . . . . . . . . . . . . .Creating a Message Module Table . . . . . . . . . . . . . . . .Assigning Values to Message Inserts . . . . . . . . . . . . . . .Interpreting Run-Time Messages . . . . . . . . . . . . . . . . . .Specifying National Language . . . . . . . . . . . . . . . . . . .Run-Time Messages with POSIX . . . . . . . . . . . . . . . . . .Handling Message Output . . . . . . . . . . . . . . . . . . . .Using Language Environment MSGFILE . . . . . . . . . . . . . .Using MSGFILE under z/OS UNIX . . . . . . . . . . . . . . . .Using C or C I/O Functions . . . . . . . . . . . . . . . . . .Using COBOL I/O Statements . . . . . . . . . . . . . . . . . .Using Fortran I/O Statements . . . . . . . . . . . . . . . . . .Using PL/I I/O Statements . . . . . . . . . . . . . . . . . . .MSGFILE Considerations When Using PL/I . . . . . . . . . . . . .Examples Using Multiple Message Handling Callable Services . . . . . . .C/C Example Calls to CEEMOUT, CEENCOD, CEEMGET, CEEDCOD,and CEEMSG . . . . . . . . . . . . . . . . . . . . . . .COBOL Example Calls to CEEMOUT, CEENCOD, CEEMGET, CEEDCOD,and CEEMSG . . . . . . . . . . . . . . . . . . . . . . .PL/I Example Calls to CEEMOUT, CEENCOD, CEEMGET, CEEDCOD, andCEEMSG . . . . . . . . . . . . . . . . . . . . . . . 27329329330Chapter 20. Using Date and Time Services . . . . . . . . . .Understanding the Basics . . . . . . . . . . . . . . . . .Working with Date and Time Services . . . . . . . . . . . . .Date Limits . . . . . . . . . . . . . . . . . . . . . .Picture Character Terms and Picture Strings . . . . . . . . .Notation for Eras . . . . . . . . . . . . . . . . . . . .Performing Calculations on Date and Time Values . . . . . . . .Century Window Routines . . . . . . . . . . . . . . . . .National Language Support for Date and Time Services . . . . . .Examples Using Date and Time Callable Services . . . . . . . .Examples Illustrating Calls to CEEQCEN and CEESCEN . . . . .Examples Illustrating Calls to CEESECS . . . . . . . . . . .Examples Illustrating Calls to CEESECS and CEEDATM . . . . .Examples Illustrating Calls to CEESECS, CEESECI, CEEISEC, andCEEDATM . . . . . . . . . . . . . . . . . . . . .Examples Illustrating Calls to CEEDAYS, CEEDATE, and CEEDYWKCalls to CEECBLDY in COBOL . . . . . . . . . . . . . .339339340340341341342342343343344347352. . . 358. . . 367. . . 377Chapter 21. National Language Support . . . . . . . . . .Understanding the Basics . . . . . . . . . . . . . . . .Setting the National Language . . . . . . . . . . . . . . .Setting the Country Code . . . . . . . . . . . . . . . .Combining National Language Support and Date and Time Services.Calls to CEE3CTY, CEEFMDT, and CEEDATM in C . . . . . .Calls to CEE3CTY, CEEFMDT, and CEEDATM in COBOL . . .331333336.379379379380380380382Contentsix

Example Using CEE3CTY, CEEFMDT, and CEEDATM in PL/I . . . . . . 386Chapter 22. Locale Callable Services . . .Understanding the Basics . . . . . . . .Developing Internationalized Applications . . .Examples of Using Locale Callable Services .Example Calls to CEEFMON . . . . . .Example Calls to CEEFTDS . . . . . .Example Calls to CEELCNV and CEESETL .Example Calls to CEEQDTC and CEESETLExample Calls to CEESCOL . . . . . .Example Calls to CEESETL and CEEQRYL .Example Calls to CEEQRYL and CEESTXF .389389390390390393397402407410413Chapter 23. General Callable ServicesUnderstanding the Basics . . . . .CEE3DMP Callable Service . . . .CEE3USR Callable Service . . . .CEEGPID Callable Service . . . .CEERAN0 Callable Service . . . .CEETEST Callable Service . . . .Using Some Basic Callable Services .419419419420420420420420. . . . . . . . . . . . .parm2 Type. . . . . . . . . . . . . . . . .425425426427427428429430Chapter 24. Math Services . . .Understanding the Basics . . . .Call Interface to Math Services . .Parameter Types: parm1 Type andExamples of Calling Math Services .Calling CEESSLOG in C and C Calling CEESSLOG in COBOL .Calling CEESSLOG in PL/I . . .Part 4. Using Interfaces to Other Products . . . . . . . . . . . . . . . . . . 431Chapter 25. Running Applications under CICS . . . . . . . . .Understanding the Basics . . . . . . . . . . . . . . . . .CICS Region . . . . . . . . . . . . . . . . . . . . .CICS Transaction . . . . . . . . . . . . . . . . . . .CICS Run Unit . . . . . . . . . . . . . . . . . . . .Running Language Environment Applications under CICS . . . .Developing an Application under CICS . . . . . . . . . . . . .PL/I Coding Considerations under CICS . . . . . . . . . . .Link-Edit Considerations under CICS . . . . . . . . . . . .CICS Processing Program Table (PPT) Considerations. . . . . .Specifying Run-Time Options under CICS . . . . . . . . . .Accessing DLI Databases from CICS . . . . . . . . . . . .Using Callable Services under CICS . . . . . . . . . . . .OS/VS COBOL Compatibility Considerations under CICS . . . . .Using Math Services in PL/I under CICS . . . . . . . . . . .Coding Program Termination in PL/I under CICS . . . . . . . .Storage Management under CICS . . . . . . . . . . . . . .CICS Short-on-Storage Condition . . . . . . . . . . . . .CICS Storage Protect Facility . . . . . . . . . . . . . . .PL/I Storage Considerations under CICS . . . . . . . . . . .Condition Handling under CICS . . . . . . . . . . . . . . .PL/I Considerations for Using the CICS HANDLE ABEND Commandxz/OS V1R6.0 Language Environment Programming 0440440440440441442442

Effect of the CICS HANDLE ABEND Command . . . . . . .Effect of the CICS HANDLE CONDITION and CICS HANDLE AIDRestrictions on User-Written Condition Handlers under CICS . .CICS Transaction Abend Codes . . . . . . . . . . . . .Using the CBLPSHPOP Run-Time Option under CICS . . . . .Restrictions on Assembler User Exits under CICS . . . . . .Ensuring Transaction Rollback under CICS . . . . . . . . .Run-Time Output under CICS . . . . . . . . . . . . . . .Message Handling under CICS . . . . . . . . . . . . .Dump Services under CICS . . . . . . . . . . . . . . .Support for Calls within the Same HLL under CICS . . . . . . .C . . . . . . . . . . . . . . . . . . . . . . . .C . . . . . . . . . . . . . . . . . . . . . . .COBOL . . . . . . . . . . . . . . . . . . . . . .PL/I . . . . . . . . . . . . . . . . . . . . . . ter 26. Running Applications under DB2 . . .Understanding the Basics . . . . . . . . . . .Language Environment Support for DB2 ApplicationsCondition Handling under DB2 . . . . . . . . .PL/I Consideration for DB2 Applications . . . . .449449449449449Chapter 27. Running Applications under IMS . . .Understanding the Basics . . . . . . . . . . .Using the Interface between Language Environment andz/OS C/C Considerations under IMS . . . . . .C Considerations under IMS . . . . . . . . .PL/I Considerations under IMS . . . . . . . . .IMS Communication with Your Application . . . . .Link-Edit Considerations under IMS . . . . . . .Making Your IMS Application Reentrant . . . . . .Condition Handling under IMS . . . . . . . . . .Coordinated Condition Handl

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 .