Skip site navigation (1) Skip section navigation (2)

Re: XA

From: Chris Browne <cbbrowne(at)acm(dot)org>
To: pgsql-advocacy(at)postgresql(dot)org
Subject: Re: XA
Date: 2005-09-30 18:42:07
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-advocacy
simon(at)2ndquadrant(dot)com (Simon Riggs) writes:

> On Tue, 2005-09-27 at 23:10 -0400, Chris Browne wrote:
>> josh(at)agliodbs(dot)com (Josh Berkus) writes:
>> > Chris,
>> >
>> >> Two phase commit is a prerequisite for doing distributed transactions,
>> >> and XA is a particular standard to which the 2PC support does not, at
>> >> this point, conform.
>> >
>> > Eh?  I was under the impression that XA was implemented in the JDBC
>> > layer, not in the backend.
>> There was an JDBC-based *attempt* at an XA handler; it wasn't fully
>> functional, which essentially means it wasn't really XA.
>> When the 2PC discussion was going on, it definitely came up in the
>> discussion that this was a prerequisite to doing XA properly.  It
>> might not be forcibly necessary in the strictest sense, but 2PC is
>> certainly one of the normal means for synchronizing distributed
>> transactions...
> I didn't realise that the 2PC we have implemented was not XA.
> That's bad news. To most people they are the same thing, so I foresee
> some fairly poor feedback.

That seems somewhat silly.

XA is a Well Defined thing that is a whole lot more than just two
phase commit.


It is an API specified by an Open Group standard with a 12 function
call API.

Why anyone should _assume_ that something being called 2PC conforms to
a standard with a particular name that isn't being named seems a bit

If it was XA that was being implemented in PostgreSQL 8.2, then it
would be big-time dumb to not mention that.

> It is my understanding that an XA interface was required to interface
> correctly with transaction managers. AFAIK XA is an interface that
> JDBC/JTA provides a mapping for, but they are different things. 
> Who knows the full info on this?

Having 2 phase commit was to be a _prerequisite_ to implementing an XA

It looks like the main places where XA is getting used these days is
with Java frameworks.

BEA implemented Tuxedo, which was the basis for XA; these days, what
they are hawking are Java frameworks.
output = reverse("moc.enworbbc" "@" "enworbbc")
"What if you slept?  And what if, in your sleep, you dreamed?
 And what if, in your dream, you went to heaven and there
 plucked a strange and beautiful flower?  And what if, when
 you awoke, you had the flower in your hand?  Ah, what then?"

In response to

  • Re: XA at 2005-09-30 08:59:07 from Simon Riggs


  • Re: XA at 2005-10-01 02:58:44 from Leonard Soetedjo
  • Re: XA at 2005-10-01 10:11:54 from Peter Eisentraut

pgsql-advocacy by date

Next:From: Robert TreatDate: 2005-09-30 19:27:38
Subject: PR: release text updated
Previous:From: Josh BerkusDate: 2005-09-30 18:41:17
Subject: Re: Next version: putting the pedal down

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group