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: 60slvmmm80.fsf@dba2.int.libertyrms.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
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.

<http://www.opengroup.org/public/pubs/catalog/c193.htm>

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
mystifying.

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
interface.

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")
http://www3.sympatico.ca/cbbrowne/finances.html
"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?"
--Coleridge

In response to

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

Responses

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

Browse pgsql-advocacy by date

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