![]() |
![]() |
e-docs > Tuxedo > Programming a Tuxedo Application Using COBOL |
Programming a Tuxedo Application Using COBOL
|
Introduction to BEA Tuxedo Programming
BEA Tuxedo Distributed Application Programming
Updating the UBBCONFIG Configuration File
Defining Equivalent Data Types
Starting and Stopping the Application
Setting Environment Variables for a VIEW Typed Record
Creating a View Description File
Setting Environment Variables for an FML Typed Record
Using Features of the TPINFDEF-REC Record
Unsolicited Notification Handling
BEA Tuxedo System Controlling Program
System-supplied Server and Services
System-supplied Server: AUTHSVR( )
System-supplied Services: TPSVRINIT Routine
Receiving Command-line Options
System-supplied Services: TPSVRDONE Routine
Guidelines for Writing Servers
Advertising and Unadvertising Services
Example: Dynamic Advertising and Unadvertising of a Service
Writing Request/Response Clients and Servers
Overview of Request/Response Communication
Example: Using the Same Record for Request and Reply Messages
Example: Sending a Synchronous Message with TPSIGRSTRT Set
Example: Sending a Synchronous Message with TPNOTRAN Set
Sending an Asynchronous Request
Setting and Getting Message Priorities
Writing Conversational Clients and Servers
Overview of Conversational Communication
Sending and Receiving Messages
Example: Ending a Simple Conversation
Example: Ending a Hierarchical Conversation
Executing a Disorderly Disconnect
Building Conversational Clients and Servers
Understanding Conversational Communication Events
Writing Event-based Clients and Servers
Programming Interface for the EventBroker
Defining the Unsolicited Message Handler
Broadcasting Messages by Identifier
Checking for Unsolicited Messages
Committing the Current Transaction
Prerequisites for a Transaction Commit
Aborting the Current Transaction
Example: Committing a Transaction in Conversational Mode
Example: Testing for Participant Errors
Implicitly Defining a Global Transaction
Defining Global Transactions for an XA-Compliant Server Group
Testing Whether a Transaction Has Started
Programming a Multithreaded and Multicontexted ATMI Application
Support for Programming a Multithreaded/Multicontexted ATMI Application
Platform-specific Considerations for Multithreaded/Multicontexted Applications
Planning and Designing a Multithreaded/Multicontexted ATMI Application
What Are Multithreading and Multicontexting?
Licensing a Multithreaded or Multicontexted Application
Advantages and Disadvantages of a Multithreaded/Multicontexted ATMI Application
Advantages of a Multithreaded/Multicontexted ATMI Application
Disadvantages of a Multithreaded/Multicontexted ATMI Application
How Multithreading and Multicontexting Work in a Client
Client Threads Join Multiple Contexts
Client Threads Switch to an Existing Context
Userlog Maintains Thread-specific Information
How Multithreading and Multicontexting Work in an ATMI Server
Server-dispatched Threads Are Used
Application-created Threads Are Used
Bulletin Board Liaison Verifies Sanity of System Processes
System Keeps Statistics on Server Threads
Userlog Maintains Thread-specific Information
Design Considerations for a Multithreaded and Multicontexted ATMI Application
Is the Task of Your Application Suitable for Multithreading and/or Multicontexting?
How Many Applications and Connections Do You Want?
What Synchronization Issues Need to Be Addressed?
Will You Need to Port Your Application?
Which Threads Model Is Best for You?
Interoperability Restrictions for Workstation Clients
Implementing a Multithreaded/ Multicontexted ATMI Application
Preliminary Guidelines for Programming a Multithreaded/Multicontexted ATMI Application
Prerequisites for a Multithreaded ATMI Application
General Multithreaded Programming Considerations
Writing Code to Enable Multicontexting in an ATMI Client
Setting Up Multicontexting at Initialization
Implementing Security for a Multicontexted ATMI Client
Synchronizing Threads Before an ATMI Client Termination
Coding Rules for Transactions in a Multithreaded/Multicontexted ATMI Application
Writing Code to Enable Multicontexting and Multithreading in an ATMI Server
Coding Rules for a Multicontexted ATMI Server
Initializing and Terminating ATMI Servers and Server Threads
Programming an ATMI Server to Create Threads
Associating Threads with a Context
Sample Code for Creating an Application Thread in a Multicontexted ATMI Server
Writing a Multithreaded ATMI Client
Coding Rules for a Multithreaded ATMI Client
Initializing an ATMI Client to Multiple Contexts
Context State Changes for an ATMI Client Thread
Getting Replies in a Multithreaded Environment
Using Environment Variables in a Multithreaded and/or Multicontexted Environment
Using Per-context Functions and Data Structures in a Multithreaded ATMI Client
Using Per-process Functions and Data Structures in a Multithreaded ATMI Client
Using Per-thread Functions and Data Structures in a Multithreaded ATMI Client
Sample Code for a Multithreaded ATMI Client
Writing a Multithreaded ATMI Server
Compiling Code for a Multithreaded/Multicontexted ATMI Application
Testing a Multithreaded/Multicontexted ATMI Application
Testing Recommendations for a Multithreaded/Multicontexted ATMI Application
Troubleshooting a Multithreaded/Multicontexted ATMI Application
Improper Use of the TPMULTICONTEXTS Flag to tpinit( )
Calls to tpinit( ) Without TPMULTICONTEXTS
Insufficient Thread Stack Size
Error Handling for a Multithreaded/Multicontexted ATMI Application
General Communication Call Errors
TPESVCFAIL and TPESVCERR Errors
Called Service in Same Transaction as Caller
Called Service in Different Transaction with AUTOTRAN Set
Called Service That Starts a New Explicit Transaction
BEA TUXEDO System-supplied Subroutines
COBOL Language Bindings for the Workstation Component
Building ACCEPT/DISPLAY Clients
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |