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

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search archives
  Advanced Search

Re: XA support


  • From: Oliver Jowett <oliver(at)opencloud(dot)com>
  • To: Heikki Linnakangas <hlinnaka(at)iki(dot)fi>
  • Cc: pgsql-jdbc(at)postgresql(dot)org
  • Subject: Re: XA support
  • Date: Thu, 30 Jun 2005 10:19:00 +1200
  • Message-id: <42C31E54.20000@opencloud.com> <text/plain>

Heikki Linnakangas wrote:

> B. When the second transaction starts, the first transaction is prepared
> behind the scenes, freeing the connection for the new transaction.

This is probably the way to go initially, since it's much simpler. It
should also deal with the more common uses of XA where you're just
coordinating 2 or more resources in an otherwise straightforward
begin-do stuff-commit sequence. We can get clever later :)

Related issues: supporting this case:

  xaRes.start(xid1, XAResource.TMNOFLAGS);
  stmt.executeUpdate("...");
  xaRes.end(xid1, XAResource.TMSUSPEND);
  // ...
  xaRes.start(xid1, XAResource.TMRESUME);
  stmt.executeUpdate("...");
  xaRes.end(xid1, XAResource.TMSUCCESS);

and this one:

  xaRes.start(xid1, XAResource.TMNOFLAGS);
  stmt.executeUpdate("...");
  xaRes.end(xid1, XAResource.TMSUCCESS);
  // ...
  xaRes.start(xid1, XAResource.TMJOIN);
  stmt.executeUpdate("...");
  xaRes.end(xid1, XAResource.TMSUCCESS);

and this one (yow!):

 (thread 1):
  xaRes.start(xid1, XAResource.TMNOFLAGS);
  stmt.executeUpdate("...");

 (thread 2):
  xaRes.start(xid1, XAResource.TMJOIN);
  stmt.executeUpdate("...");

-O



Home | Main Index | Thread Index

Privacy Policy | About PostgreSQL
Copyright © 1996 – 2012 PostgreSQL Global Development Group