



Title: Application Programming: Transaction Manager
Document Number: SC26-9425-01
Build Date: 04/19/01 10:49:47 Build Version: 1.3.0 of BUILD/VM Version: UG03902 DropDate: Wednesday, July 12, 2000
Document Path: /home/webapps/epubs/htdocs/book/dfsp20e1.boo
CONTENTS Table of Contents
Summarize
COVER Book Cover
NOTICES Notices
EDITION Edition Notice
CONTENTS Table of Contents
FIGURES Figures
TABLES Tables
FRONT_1 Notices
FRONT_1.1 Programming Interface Information
FRONT_1.2 Trademarks
FRONT_1.3 Product Names
FRONT_2 Preface
FRONT_2.1 Linking to Related Information in IMS Publications
FRONT_2.2 Summary of Contents
FRONT_2.3 Prerequisite Knowledge
FRONT_2.4 Terminology
FRONT_2.5 Syntax Diagrams
FRONT_2.6 How to Send Your Comments
CHANGES Summary of Changes
CHANGES.1 Changes to the Current Edition of this Book for IMS Version 7
CHANGES.2 Changes to This Book for IMS Version 7
CHANGES.3 Library Changes for IMS Version 7
1.0 Writing Application Programs
1.1 How Application Programs Work with the IMS Transaction Manager
1.1.1 Application Program Environments
1.1.2 The Application Programming Interface
1.1.2.1 Your Application in the System
1.1.2.2 Using LU 6.2 Devices
1.1.2.3 How IMS TM Schedules Application Programs
1.1.3 Getting Started with DL/I
1.1.4 Relationship of AIB and PCB with Language Interfaces
1.1.4.1 Language Unique Interfaces
1.1.4.2 Language Independent Interfaces
1.1.5 Using DL/I Calls
1.1.5.1 Message Call Functions
1.1.5.2 System Service Call Functions
1.1.5.3 Status Codes, Return Codes, and Reason Codes
1.1.5.4 Exceptional Conditions
1.1.5.5 Error Routines
1.1.6 How Your Program Processes Messages
1.1.6.1 Message Types
1.1.6.2 What Happens When a Message is Processed
1.1.6.3 Results of a Message: I/O PCB
1.1.7 How IMS TM Edits Messages
1.1.7.1 Printing Output Messages
1.1.7.2 Using Basic Edit
1.1.7.3 Using Intersystem Communication Edit
1.1.7.4 Using Message Format Service
1.1.7.5 Using LU 6.2 User Edit Exit (Optional)
1.1.8 DB2 Considerations
1.2 Defining Application Program Elements
1.2.1 Formatting DL/I Calls for Language Interfaces
1.2.2 Application Programming for Assembler Language
1.2.2.1 Format
1.2.2.2 Parameters
1.2.2.3 Example DL/I Call Formats
1.2.3 Application Programming for C Language
1.2.3.1 Format
1.2.3.2 Parameters
1.2.3.3 I/O Area
1.2.3.4 Example DL/I Call Formats
1.2.4 Application Programming for COBOL
1.2.4.1 Format
1.2.4.2 Parameters
1.2.4.3 Example DL/I Call Formats
1.2.5 Application Programming for Pascal
1.2.5.1 Format
1.2.5.2 Parameters
1.2.5.3 Example DL/I Call Formats
1.2.6 Application Programming for PL/I
1.2.6.1 Format
1.2.6.2 Parameters
1.2.6.3 Example DL/I Call Formats
1.2.7 Relationship of Calls to PCB Types
1.2.8 Specifying the I/O PCB Mask
1.2.9 Specifying the Alternate PCB Mask
1.2.10 Specifying the AIB Mask
1.2.11 Specifying the I/O Areas
1.2.12 Using the AIBTDLI Interface
1.2.12.1 Overview
1.2.12.2 Defining Storage for the AIB
1.2.13 Specifying the Language-Specific Entry Point
1.2.13.1 Assembler Language
1.2.13.2 C Language
1.2.13.3 COBOL
1.2.13.4 Pascal
1.2.13.5 PL/I
1.2.13.6 Interface Considerations
1.2.14 PCB Lists
1.2.14.1 Format of a PCB List
1.2.14.2 Format of a GPSB PCB List
1.2.14.3 PCB Summary
1.2.15 Using Language Environment
1.2.15.1 The CEETDLI interface to IMS
1.2.15.2 LANG= Option on PSBGEN for PL/I Compatibility with Language Environment
1.2.16 Special DL/I Situations
1.2.16.1 Mixed-Language Programming
1.2.16.2 Using Language Environment Routine Retention
1.2.16.3 Using the Extended Addressing Capabilities of MVS/ESA
1.2.16.4 Preloaded Programs
1.2.16.5 DCCTL
1.3 Writing DL/I Calls for Transaction Management
1.3.1 AUTH Call
1.3.1.1 Format
1.3.1.2 Parameters
1.3.1.3 I/O Area
1.3.1.4 Usage
1.3.1.5 Restrictions
1.3.2 CHNG Call
1.3.2.1 Format
1.3.2.2 Parameters
1.3.2.3 Usage
1.3.2.4 Error Codes
1.3.2.5 Restrictions
1.3.3 CMD Call
1.3.3.1 Format
1.3.3.2 Parameters
1.3.3.3 Usage
1.3.3.4 Restrictions
1.3.4 GCMD Call
1.3.4.1 Format
1.3.4.2 Parameters
1.3.4.3 Usage
1.3.4.4 Restrictions
1.3.5 GN Call
1.3.5.1 Format
1.3.5.2 Parameters
1.3.5.3 Usage
1.3.5.4 Restrictions
1.3.6 GU Call
1.3.6.1 Format
1.3.6.2 Parameters
1.3.6.3 Usage
1.3.6.4 Restrictions
1.3.7 ISRT Call
1.3.7.1 Format
1.3.7.2 Parameters
1.3.7.3 Usage
1.3.7.4 Restrictions
1.3.8 PURG Call
1.3.8.1 Format
1.3.8.2 Parameters
1.3.8.3 Usage
1.3.8.4 Restrictions
1.3.9 SETO Call
1.3.9.1 Format
1.3.9.2 Parameters
1.3.9.3 Usage
1.3.9.4 Error Codes
1.3.9.5 Restrictions
1.4 Writing DL/I Calls for System Services
1.4.1 APSB Call
1.4.1.1 Format
1.4.1.2 Parameters
1.4.1.3 Usage
1.4.1.4 Restrictions
1.4.2 CHKP (Basic) Call
1.4.2.1 Format
1.4.2.2 Parameters
1.4.2.3 Usage
1.4.2.4 Restrictions
1.4.3 CHKP (Symbolic) Call
1.4.3.1 Format
1.4.3.2 Parameters
1.4.3.3 Usage
1.4.3.4 Restrictions
1.4.4 DPSB Call
1.4.4.1 Format
1.4.4.2 Parameters
1.4.4.3 Usage
1.4.4.4 Restrictions
1.4.5 GMSG Call
1.4.5.1 Format
1.4.5.2 Parameters
1.4.5.3 Usage
1.4.5.4 Restrictions
1.4.6 GSCD Call
1.4.6.1 Format
1.4.6.2 Parameters
1.4.6.3 Usage
1.4.6.4 Restrictions
1.4.7 ICMD Call
1.4.7.1 Format
1.4.7.2 Parameters
1.4.7.3 Usage
1.4.7.4 Restrictions
1.4.8 INIT Call
1.4.8.1 Format
1.4.8.2 Parameters
1.4.8.3 Usage
1.4.9 INQY Call
1.4.9.1 Format
1.4.9.2 Parameters
1.4.9.3 Usage
1.4.9.4 Restrictions
1.4.10 LOG Call
1.4.10.1 Format
1.4.10.2 Parameters
1.4.10.3 Usage
1.4.10.4 Restrictions
1.4.11 RCMD Call
1.4.11.1 Format
1.4.11.2 Parameters
1.4.11.3 Usage
1.4.11.4 Restrictions
1.4.12 ROLB Call
1.4.12.1 Format
1.4.12.2 Parameters
1.4.12.3 Usage
1.4.12.4 Restrictions
1.4.13 ROLL Call
1.4.13.1 Format
1.4.13.2 Parameters
1.4.13.3 Usage
1.4.13.4 Restrictions
1.4.14 ROLS Call
1.4.14.1 Format
1.4.14.2 Parameters
1.4.14.3 Usage
1.4.14.4 Restrictions
1.4.15 SETS/SETU Call
1.4.15.1 Format
1.4.15.2 Parameters
1.4.15.3 Usage
1.4.15.4 Restrictions
1.4.16 SYNC Call
1.4.16.1 Format
1.4.16.2 Parameters
1.4.16.3 Usage
1.4.16.4 Restrictions
1.4.17 XRST Call
1.4.17.1 Format
1.4.17.2 Parameters
1.4.17.3 Usage
1.4.17.4 Restrictions
1.5 More about Message Processing
1.5.1 Sending Messages to Other Terminals and Programs
1.5.1.1 Sending Messages to Other Terminals
1.5.1.2 Sending Messages to Other Application Programs
1.5.1.3 How the VTAM I/O Facility Affects Your VTAM Terminal
1.5.2 Communicating with Other IMS TM Systems Using MSC
1.5.2.1 Implications of MSC for Program Coding
1.5.2.2 Receiving Messages from Other IMS TM Systems
1.5.2.3 Sending Messages to Alternate Destinations in Other IMS TM Systems
1.5.3 IMS Conversations
1.5.3.1 A Conversational Example
1.5.3.2 Conversational Structure
1.5.3.3 Replying to the Terminal
1.5.3.4 Using ROLB, ROLL, and ROLS in Conversations
1.5.3.5 Passing the Conversation to another Conversational Program
1.5.3.6 Message Switching in APPC Conversations
1.5.4 Processing Conversations with APPC
1.5.4.1 Standard IMS Application Programs
1.5.4.2 Modified IMS Application Programs
1.5.4.3 CPI-C Driven Application Programs
1.5.5 Processing Conversations with OTMA
1.5.6 Calls'.Backing out to a Prior Commit Point: ROLL, ROLB, and ROLS Calls
1.5.6.1 Using ROLL
1.5.6.2 Using ROLB
1.5.6.3 Using ROLS
1.5.7 Point: SETS/SETU and ROLS'.Backing out to an Intermediate Backout
1.5.7.1 Using SETS/SETU
1.5.7.2 Using ROLS
1.5.8 Writing a Message-Driven Program
1.5.9 Coding DC Calls and Data Areas
1.5.9.1 Your Input
1.5.9.2 Skeleton MPP
1.5.9.3 Coding Your Program in Assembler Language
1.5.9.4 Coding Your Program in C Language
1.5.9.5 Coding Your Program in COBOL
1.5.9.6 Coding Your Program in Pascal
1.5.9.7 Coding Your Program in PL/I
2.0 Message Format Service
2.1 Introduction to MFS
2.1.1 Advantages of Using MFS
2.1.1.1 Simplify Development and Maintenance
2.1.1.2 Improve Online Performance of a Terminal
2.1.2 MFS Control Blocks
2.1.2.1 MFS Examples
2.1.2.2 Relationship Between MFS Control Blocks and Screen Format
2.1.3 Overview of MFS Components and Operation
2.1.3.1 MFS Language Utility
2.1.3.2 MFS Service Utility
2.1.3.3 MFS Device Characteristics Table Utility
2.1.3.4 MFS Message Editor
2.1.3.5 MFS Pool Manager
2.1.3.6 MFSTEST Pool Manager
2.1.4 Devices and Logical Units That Operate with MFS
2.1.5 Using Distributed Presentation Management (DPM)
2.2 Message Formatting Functions
2.2.1 Input Message Formatting
2.2.1.1 How MFS Is Selected
2.2.1.2 How MFS Formats Input Messages
2.2.2 General Rules for Multiple DPAGE Input
2.2.3 3270 and SLU 2 Input Substitution Character
2.2.4 Input Format Control for ISC (DPM-Bn) Subsystems
2.2.4.1 Input Message Formatting
2.2.4.2 Input Modes
2.2.4.3 Paging Requests
2.2.5 Output Message Formatting
2.2.5.1 How MFS Is Selected
2.2.5.2 How MFS Formats Output Messages
2.2.6 Output Format Control for ISC (DPM-Bn) Subsystems
2.2.6.1 Format Control
2.2.6.2 Function Management (FM) Headers
2.2.6.3 Paged Output Messages
2.2.6.4 Output Modes
2.2.6.5 Variable-Length Output Data Stream
2.2.6.6 FILL=NULL Specification
2.2.6.7 Trailing Blank Compression
2.2.6.8 Data Structure Name
2.2.6.9 Version Identification
2.2.7 Your Control of MFS
2.2.7.1 Operator Logical Paging
2.2.7.2 Operator Control Tables
2.2.7.3 3270 or SLU 2-Only Feature Definitions
2.2.7.4 Paging Action at the Device
2.2.7.5 Unprotected Screen Option
2.2.7.6 The 3290 in Partitioned Format Mode
2.2.7.7 The 3180 in Partitioned Format Mode
2.2.8 MFS Format Sets Supplied by IMS
2.2.8.1 System Message Format
2.2.8.2 Multisegment System Message Format
2.2.8.3 Output Message Default Format
2.2.8.4 Block Error Message Format
2.2.8.5 /DISPLAY Command Format
2.2.8.6 Multisegment Format
2.2.8.7 MFS 3270 or SLU 2 Master Terminal Format
2.2.8.8 MFS Sign-On Device Formats
2.2.9 MFS Formatting for the 3270 or SLU 2 Master Terminal
2.2.10 MFS Device Characteristics Table
2.2.11 Version Identification Function for DPM Formats
2.3 MFS Application Program Design
2.3.1 Relationships Between MFS Control Blocks
2.3.1.1 Device Considerations Relative to Control Block Linkages
2.3.2 Format Library Member Selection
2.3.3 3270 or SLU 2 Screen Formatting
2.3.3.1 3290 Screen Formatting
2.3.3.2 3180 Screen Formatting
2.3.4 Performance Factors
2.3.4.1 All MFS-Supported Devices
2.3.4.2 3270 or SLU 2 Display Devices
2.3.4.3 3270 or SLU 2 Devices with Large Screens
2.3.4.4 SLU P and ISC Subsystems with DPM
2.3.4.5 Loading Programmed Symbol Buffers
2.4 Application Programming Using MFS
2.4.1 Input Message Formats
2.4.1.1 Logical Pages
2.4.1.2 Device-Dependent Input Information (3270 or SLU 2)
2.4.2 Output Message Formats
2.4.2.1 Logical Pages
2.4.2.2 Segment Format
2.4.2.3 Field Format (Options 1 and 2)
2.4.2.4 Field Format (Option 3)
2.4.2.5 Device-Dependent Output Information
2.4.2.6 Dynamic Attribute Modification
2.4.2.7 Dynamic Modification of Extended Field Attributes
2.4.2.8 Dynamic Modification of EGCS Data
2.4.2.9 Dynamic Modification of DBCS/EBCDIC Mixed Data
2.4.2.10 Specification of Message Output Descriptor Name
2.4.2.11 MFS Bypass for the 3270 or SLU 2
2.5 MFS Language Utility
2.5.1 Utility Control Statements
2.5.1.1 Control Statement Syntax
2.5.1.2 Summary of Control Statements
2.5.1.3 EXEC Statement Parameters
2.5.1.4 Message Definition Statements
2.5.1.5 Format Definition Statements
2.5.1.6 Partition Set Definition Statements
2.5.1.7 Table Definition Statements
2.5.1.8 Compilation Statements
3.0 IMS Adapter for REXX
3.1 IMS Adapter for REXX
3.1.1 Addressing Other Environments
3.1.2 REXX Transaction Programs
3.1.2.1 IMS Adapter for REXX Overview Diagram
3.1.2.2 IVPREXX Sample Application
3.1.3 REXXTDLI Commands
3.1.3.1 Addressable Environments
3.1.4 REXXTDLI Calls
3.1.4.1 Return Codes
3.1.4.2 Parameter Handling
3.1.4.3 Example DL/I Calls
3.1.5 REXXIMS Extended Commands
3.1.5.1 DLIINFO
3.1.5.2 IMSRXTRC
3.1.5.3 MAPDEF
3.1.5.4 MAPGET
3.1.5.5 MAPPUT
3.1.5.6 SET
3.1.5.7 SRRBACK and SRRCMIT
3.1.5.8 STORAGE
3.1.5.9 WTO, WTP, and WTL
3.1.5.10 WTOR
3.1.5.11 IMSQUERY Extended Functions
3.2 Sample Execs Using REXXTDLI
3.2.1 SAY Exec: For Expression Evaluation
3.2.2 PCBINFO Exec: Display PCBs Available in Current PSB
3.2.3 PART Execs: Database Access Example
3.2.3.1 PARTNUM Exec: Show Set of Parts Near a Specified Number
3.2.3.2 PARTNAME Exec: Show a Set of Parts with a Similar Name
3.2.3.3 DFSSAM01 Exec: Load the Parts Database
3.2.4 DOCMD: IMS Commands Front End
3.2.5 IVPREXX: MPP/IFP Front End for General Exec Execution
4.0 For Your Reference
4.1 Summary of TM Message and System Service Calls
4.1.1 Transaction Management Call Summary
4.1.2 System Service Call Summary
4.2 DL/I Status Codes
4.2.1 Status Code Tables
4.2.1.1 Categories of DL/I Status Codes.
4.2.2 Status Code Explanations
4.3 DL/I Return and Reason Codes
4.3.1 Return and Reason Code Tables
4.3.2 DL/I Return and Reason Code Explanations
APPENDIX1 Appendixes
APPENDIX1.1 Appendix A. Sample Applications
APPENDIX1.2 Appendix B. MFS Definitions for Intersystem Communication
APPENDIX1.3 Appendix C. Device Compatibility with Previous Versions of MFS
APPENDIX1.3.1 Using STACK/UNSTACK to Convert MFS Device Formats to Symbolic Name Formats
APPENDIX1.3.2 3270 Device Format Conversion Example
APPENDIX1.3.3 3270 Printer and SLU 1 Compatibility
APPENDIX1.3.4 SLU P Compatibility
APPENDIX1.3.5 IBM 3278-52/3283-52 and IBM 5550 Family (as 3270) Compatibility
APPENDIX1.3.6 Existing 3270 and IBM 5550 Family (as 3270) Compatibility
APPENDIX1.4 Appendix D. Spool API
APPENDIX1.4.1 Understanding Parsing Errors
APPENDIX1.4.1.1 Keywords
APPENDIX1.4.1.2 Status Codes
APPENDIX1.4.1.3 Error Codes
APPENDIX1.4.1.4 Diagnosis Examples
APPENDIX1.4.2 Understanding Allocation Errors
APPENDIX1.4.3 Understanding Dynamic Output for Print Data Sets
APPENDIX1.4.3.1 CHNG Call with PRTO Option
APPENDIX1.4.3.2 CHNG Call with TXTU Option
APPENDIX1.4.3.3 CHNG Call with OUTN Option
APPENDIX1.4.4 Sample Program Using the Spool API
APPENDIX1.4.4.1 Application PCB Structure
APPENDIX1.4.4.2 GU Call to I/O PCB
APPENDIX1.4.4.3 CHNG Call to Alternate PCB
APPENDIX1.4.4.4 ISRT Call to Alternate PCB
APPENDIX1.4.4.5 Program Termination
APPENDIX1.5 Appendix E. Using the DL/I Test Program (DFSDDLT0)
APPENDIX1.5.1 Control Statements
APPENDIX1.5.2 Planning the Control Statement Order
APPENDIX1.5.3 ABEND Statement
APPENDIX1.5.3.1 Examples of ABEND Statement
APPENDIX1.5.4 CALL Statement
APPENDIX1.5.4.1 CALL FUNCTION Statement
APPENDIX1.5.4.2 CALL DATA Statement
APPENDIX1.5.4.3 OPTION DATA Statement
APPENDIX1.5.4.4 FEEDBACK DATA Statement
APPENDIX1.5.4.5 Call Functions
APPENDIX1.5.4.6 Examples of DL/I Call Functions
APPENDIX1.5.4.7 CALL FUNCTION Statement with Column-Specific SSAs
APPENDIX1.5.4.8 DFSDDLT0 Call Functions
APPENDIX1.5.4.9 Examples of DFSDDLT0 Call Functions
APPENDIX1.5.5 COMMENT Statement
APPENDIX1.5.5.1 Conditional COMMENT Statement
APPENDIX1.5.5.2 Unconditional COMMENT Statement
APPENDIX1.5.5.3 Example of COMMENT Statement
APPENDIX1.5.6 COMPARE Statement
APPENDIX1.5.6.1 COMPARE DATA Statement
APPENDIX1.5.6.2 COMPARE AIB Statement
APPENDIX1.5.6.3 COMPARE PCB Statement
APPENDIX1.5.6.4 Examples of COMPARE DATA and PCB Statements
APPENDIX1.5.7 IGNORE Statement
APPENDIX1.5.7.1 Example of IGNORE (N or .)
APPENDIX1.5.8 OPTION Statement
APPENDIX1.5.8.1 Example of OPTION Control Statement
APPENDIX1.5.9 PUNCH Statement
APPENDIX1.5.9.1 Example of PUNCH CTL Statement
APPENDIX1.5.9.2 Example of PUNCH CTL Statement for All Parameters
APPENDIX1.5.10 STATUS Statement
APPENDIX1.5.10.1 Examples of STATUS Statement
APPENDIX1.5.11 WTO Statement
APPENDIX1.5.11.1 Example of WTO Statement
APPENDIX1.5.12 WTOR Statement
APPENDIX1.5.12.1 Example of WTOR Statement
APPENDIX1.5.13 JCL Requirements
APPENDIX1.5.13.1 SYSIN DD Statement
APPENDIX1.5.13.2 SYSIN2 DD Statement
APPENDIX1.5.13.3 PRINTDD DD Statement
APPENDIX1.5.13.4 PUNCHDD DD Statement
APPENDIX1.5.13.5 Using the PREINIT Parameter for DFSDDLT0 Input Restart.
APPENDIX1.5.14 Execution of DFSDDLT0 in IMS Regions
APPENDIX1.5.15 Explanation of DFSDDLT0 Return Codes
APPENDIX1.5.16 Hints on Using DFSDDLT0.
APPENDIX1.5.16.1 To Load a Database.
APPENDIX1.5.16.2 To Print the Segments in a Database.
APPENDIX1.5.16.3 To Retrieve and Replace a Segment.
APPENDIX1.5.16.4 To Delete a Segment.
APPENDIX1.5.16.5 To Do Regression Testing.
APPENDIX1.5.16.6 To Use as a Debugging Aid
APPENDIX1.5.16.7 To Verify How a Call Is Executed.
BIBLIOGRAPHY Bibliography
BIBLIOGRAPHY.1 IMS Version 7 Library
INDEX Index
BACK_1 We'd Like to Hear from You
COMMENTS Readers' Comments
© Copyright IBM Corp. 1974, 2001
IBM Library Server Copyright 1989, 2005 IBM Corporation. All rights reserved.