Order Number: AA-REPMB-TE
This guide explains how to design application programs for use with Reliable Transaction Router.
Revision/Update Information: Revision/Update Information: This manual supersedes the Reliable Transaction Router Application Design Guide, for Version 3.2.
Reliable Transaction Router V4.0
Compaq Computer Corporation
© 2001 Compaq Computer Corporation
Compaq, the Compaq logo, AlphaServer, TruCluster, VAX, and VMS Registered in U.S. Patent and Trademark Office.
DECnet, OpenVMS, and PATHWORKS are trademarks of Compaq Information Technologies, L.P.
Microsoft, Windows, and Windows NT are trademarks of Microsoft Corporation. Intel is a trademark of Intel Corporation. UNIX and The Open Group are trademarks of The Open Group.
All other product names mentioned herein may be trademarks or registered trademarks of their respective companies.
Confidential computer software. Valid license from Compaq required for possession, use or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendor's standard commercial license.
Compaq shall not be liable for technical or editorial errors or omissions contained herein.
The information in this publication is subject to change without notice and is provided "AS IS" WITHOUT WARRANTY OF ANY KIND. THE ENTIRE RISK ARISING OUT OF THE USE OF THIS INFORMATION REMAINS WITH RECIPIENT. IN NO EVENT SHALL COMPAQ BE LIABLE FOR ANY DIRECT, CONSEQUENTIAL, INCIDENTAL, SPECIAL, PUNITIVE OR OTHER DAMAGES WHATSOEVER (INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION OR LOSS OF BUSINESS INFORMATION), EVEN IF COMPAQ HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THE FOREGOING SHALL APPLY REGARDLESS OF THE NEGLIGENCE OR OTHER FAULT OF EITHER PARTY AND REGARDLESS OF WHETHER SUCH LIABILITY SOUNDS IN CONTRACT, NEGLIGENCE, TORT, OR ANY OTHER THEORY OF LEGAL LIABILITY, AND NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY LIMITED REMEDY.
The limited warranties for Compaq products are exclusively set forth in the documentation accompanying such products. Nothing herein should be construed as constituting a further or additional warranty.
The goal of this document is to assist the experienced application programmer in designing applications for use with Reliable Transaction Router (RTR). Here you will find conceptual information and some implementation details to assist in:
As an application programmer, you should be familiar with the following concepts:
If you are not familiar with these software concepts, you will need to augment your knowledge by reading, taking courses, or through discussion with colleagues. You should also become familiar with the other books in the RTR documentation kit, listed in Related Documentation. Before reading this document, become familiar with the information in Reliable Transaction Router Getting Started.
This document is intended to be read from start to finish; later you can use it for reference.
|Reliable Transaction Router Getting Started||Provides an overview of RTR for both the application developer and the system manager. This book is a prerequisite for the RTR Application Design Guide .|
|Reliable Transaction Router C++ Foundation Classes||Provides descriptions of C++ API classes and their associated methods, with code examples for methods.|
|Reliable Transaction Router C Application Programmer's Reference Manual||Explains how to design and code RTR applications; contains descriptions and examples of the RTR C API calls.|
|Reliable Transaction Router System Manager's Manual||Describes how to configure, manage, and monitor RTR.|
|Reliable Transaction Router Migration Guide||Explains how to migrate from RTR Version 2 to RTR Version 3.|
|Reliable Transaction Router Installation Guide||Describes how to install RTR.|
|Reliable Transaction Router Release Notes||Describes new features, changes, and known restrictions for RTR.|
Other books that can be helpful in developing your transaction processing application include:
A useful web site for tips and tutorials on Oracle SQL is http://photo.net/sql .
You will find additional information on RTR and existing implementations on the RTR web site http://www.compaq.com/rtr/ .
|Example code||Programming examples are shown in a monospaced font.|
|Title||Titles of manuals and books are shown in italics . Italics are also used for emphasis.|
Figure 1 shows the reading path to follow when using the Reliable Transaction Router information set.
Figure 1 Reading Path
This document is for the application programmer who is developing an application for use with Reliable Transaction Router (RTR). Here you will find information on using RTR in the design and development of an application. The main emphasis is on providing design suggestions and considerations for writing the RTR application. Example designs describing existing applications that use RTR show implementations exploiting RTR features, and provide real examples where RTR is in use.
Before reading this manual, read the prerequisite: RTR Getting Started, which describes basic RTR concepts and terminology.
The C++ object-oriented interface is new with RTR V4.0. Most of the material in this document is generic to RTR and not specific to either the C or C++ API (application programming interface)
However, some implementation specifics for each API are shown in appendices. Each API also has its own reference document, the RTR C++ Foundation Classes manual for the C++ API, and the RTR C Application Programmer's Reference Manual for the C API. This document also contains material specific to each API in separate chapters.
In designing your application, Compaq recommends that you use object-oriented analysis and design techniques, whether or not you are using the new object-oriented API. This methodology includes the following:
Discussing this methodology is outside the scope of this document, but you can find more information in the following books, among others:
When designing your application:
A design flaw can be very expensive or impossible to correct in your application, so doing a thorough design, fully discussed and understood by your team, is essential to the ultimate success of your application in operation. One goal of this document is to help you understand some of the finer subtleties of the product, to help you design an optimum application.
Reliable Transaction Router (RTR) is transactional messaging middleware used to implement highly scalable, distributed applications with client/server technologies. With RTR, you can design and implement transaction management applications, take advantage of high availability, and implement failure-tolerant applications to maximize uptime. RTR helps ensure business continuity across multivendor systems and helps maximize uptime.
Implementing an application to use RTR embeds high availability capabilities in the application. Furthermore, RTR greatly simplifies the design and coding of distributed applications because, with RTR, client-server interactions can be bundled together in transactions. In addition, RTR applications can easily be deployed in highly available configurations.
RTR supports applications that run on different hardware and different operating systems. RTR has not been built to work with any specific database product or resource manager (file system, communication link, or queuing product), and thus provides an application the flexibility to choose the best product or technology suited for its purpose. There are, however, some resource managers with which RTR provides tight coupling.
(For more information on using this tighter coupling, see the section in this manual on Using XA.) For specifics on operating systems, operating system versions, and supported hardware, see the Reliable Transaction Router Software Product Description for each supported operating system.
RTR provides several benefits for your application:
RTR provides programming interfaces for use in implementing applications that work with RTR, including:
As Figure 1-1 illustrates, the C++ API sits on top of the C API, which is a layer on top of RTR.
Figure 1-1 RTR Layers
Client applications and server applications can use both the C++ API and the C API or just the C++ API. The C++ API maps RTR data elements, data structures, and C API functionality into the object-oriented design world.
C++ API and RTR Technology
The C++ API provides an object-oriented framework through which you can implement fault-tolerant systems.
The C++ API code resides beneath application or business logic code. Thus, the C++ API interfaces directly with RTR while application code does not. This transparency simplifies the development and implementation of transaction processing solutions with RTR.
The C++ API was created to assist RTR customers who:
The benefits include:
With the C++ API, applications can inherit functionality from RTR.
The C++ API Provides Ease of Use
The C++ API provides a simplified way for you to implement RTR solutions. With the C++ API:
C++ API Design
The C++ API upgrades RTR technology by providing a set of classes that streamlines the development and implementation of RTR transaction processing applications. The C++ API has been designed to:
Use of the C++ API
The C++ API can be used to:
The C++ API enables you to write management routines for both new and existing applications. Additionally, C++ API management classes simplify the process of moving from application design to implementation. For example, the RTRPartitionManager class enables you to write management routines for specifying server types, while methods such as CreateBackEndPartition enable you to specify the roles of servers for tolerating process and node failure.
The C API enables applications to be written with RTR calls using the C programming language. The C API is described in the Reliable Transaction Router C Application Programmer's Reference Manual .