![]() |
![]() |
e-docs > Tuxedo > Programming a Tuxedo ATMI Application Using C |
Programming a Tuxedo ATMI Application Using C
|
Introduction to BEA Tuxedo Programming
BEA Tuxedo Distributed Application Programming
Updating the UBBCONFIG Configuration File
Including the Required Header Files
Starting and Stopping the Application
Setting Environment Variables for a VIEW Typed Buffer
Creating a View Description File
Setting Environment Variables for an FML Typed Buffer
Using an XML Typed Buffer and the Apache Xerces C++ Parser
About the Apache Xerces C++ Parser
Using an MBSTRING Typed Buffer
Multibyte Character Encoding Control
Multibyte Character Encoding Support for GNU libiconv
Defining Your Own Buffer Types
Coding Switch Element Routines
Adding a New Buffer Type to tm_typesw
Compiling and Linking Your New tm_typesw
Compiling and Linking Your New tm_typesw for a 16-bit Windows Platform
Using Features of the TPINIT Typed Buffer
Unsolicited Notification Handling
System-Supplied Server and Services
System-Supplied Server: AUTHSVR( )
System-Supplied Services: tpsvrinit( ) Function
Receiving Command-line Options
System-Supplied Services: tpsvrdone( ) Function
Guidelines for Writing Servers
Example: Checking the Buffer Type
Example: Checking the Priority of the Service Request
Advertising and Unadvertising Services
Example: Dynamic Advertising and Unadvertising of a Service
Using Constructors and Destructors
Writing Request/Response Clients and Servers
Overview of Request/Response Communication
Example: Using the Same Buffer for Request and Reply Messages
Example: Testing for Change in Size of Reply Buffer
Example: Sending a Synchronous Message with TPSIGRSTRT Set
Example: Sending a Synchronous Message with TPNOTRAN Set
Example: Sending a Synchronous Message with TPNOCHANGE Set
Sending an Asynchronous Request
Example: Sending an Asynchronous Message with TPNOTRAN | TPNOREPLY
Example: Sending Asynchronous Requests
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
Notification via Unsolicited Message
Notification via Service Call or Reliable Queue
Suspending and Resuming a Transaction
Example: Suspending and Resuming a Transaction
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
Implicitly Defining a Transaction in a Service Routine
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
Effect on the tpcommit() Function
tpreturn( ) and tpforward( ) Functions
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
Debugging Application Processes
Debugging Application Processes on UNIX Platforms
Debugging Application Processes on Windows 2000 Platforms
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |