Re: X/Open XA Interface
Posted in 1995
Kevin, The X/Open Distributed Transaction Processing model defines three components of a TP system and the INTERFACES BETWEEN those components. The components are the Application Program (which can be a client or a service), the TP monitor, and the the Resource Manager (the database). The interface between the Application Program and the TP Monitor is a thing called ATMI. The interface between the TP Monitor and the Resource Manager is XA, and the interface between the Application Program and the Resource Manager is the SQL we all know and love. ---- |AP| ---- / \\ ATMI/ \\SQL / \\ ---- ---- |TM|----------|RM| ---- XA ---- As an application programmer you will write client programs that control the user interface, define transactions using ATMI (begin, commit and rollback) and make service requests. You will write service programs to perform highly specific tasks: (How much is there in account x ? Withdraw n dollars from account x. Deposit n dollars in account y). It is here of course that you use SQL. The one thing you will not be concerned about is XA: this is strictly between the TP Monitor and the Resource Manager. The TP Monitor coordinates the service requests. We are talking distributed transaction processing here: a transaction can involve a withdrawal from an account on a database in Moscow and a deposit to an account on a database in Jakarta. The TP Monitor (not the XA interface) does the load balancing and handles the routing and priorities of service requests. Different TP Monitors do this differently. The person in control of the TP monitor can launch service programs in response to demand. Service programs stay in memory on the servers and perform their jobs as and when they requests are passed to them by the TP Monitor. It is this combination of load balancing and memory resident services that give TP monitors their performance. To my knowledge most quoted TPC benchmarks involve a a TP Monitor. Tuxedo has the really neat concept of data-dependent routing: The request buffer that is sent from the client to the TP monitor contains no addressing information at all: its ultimate destination can be determined by fields within the buffer - for instance zipcodes that begin with "3" can be sent to Melbourne, those that begin with "2" can be sent to Sydney. Or not, they could just as easily go to the same machine in the same place just by changing the tuxedo configuration table. This makes your applications massively scalable. Informix was the first of the major players to have an XA compliant database in Online Tp/XA. There is (or was) a TP toolkit for 4gl to allow you to write clients and services in 4gl; I saw a posting recently that it was no longer available. I am not sure how accurate this is. I am not sure either if New-Era has any ATMI hooks. There are other products around, try posting on tuxtalk@imc.com. Regards, Pete. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ Pete Harris Financial Market Software Consultants~ ~ phr@fmsc.com.au 109 Pitt St Sydney NSW 2000 ~ ~ Australia ~ ~ ~ ~ Disclaimers apply ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ On 25 Jul 1995, Kevin Beyer wrote: > I am looking for information on X/Open's XA interface. Here's what I do know: > XA is a standard API to resource managers, e.g., a DBMS. It is intended to be > used at the system level, not the user level, by transaction processing > monitors (eg, CICS/6000, Encina, Tuxedo). It supports two phase commit (2PC) > and some resource monitoring, load balancing, and scheduling controls. > > What I don't know are the details. I am especially interested in the resource > monitoring, load balancing, and scheduling controls. What services are part > of the standard? What services are implemented by any particular dbms? > > The packages that support XA, according to CICS/6000 docs, are: > > - IBM DATABASE 2 AIX/6000 Version 1.1 > - Oracle Version 7.0.13 or Version 7.0.15 or Version 7.0.16 or Version 7.1.3 > - Sybase Version 10.0.1 > - Ingres 6.5 > - Informix Version 5.02 or Version 5.03 > > Any information regarding XA in these packages, or in general, would be greatly > appreciated. I don't want to be forced buy the official standard... > > --Kevin > > P.S. As usual, be sure to follow-up to all the newsgroups, but if nothing > else, > be sure to reply in comp.databases, which is where I'll be looking :-) >