Re: a simple example of XA (not working) - Mailing list pgsql-jdbc

From Kris Jurka
Subject Re: a simple example of XA (not working)
Date
Msg-id Pine.BSO.4.64.0706221659120.23726@leary.csoft.net
Whole thread Raw
In response to Re: a simple example of XA (not working)  (Heikki Linnakangas <heikki@enterprisedb.com>)
Responses Re: a simple example of XA (not working)  (Heikki Linnakangas <heikki@enterprisedb.com>)
List pgsql-jdbc

On Sun, 17 Jun 2007, Heikki Linnakangas wrote:

> getConnection sets autocommit to false, so even though start set it to true,
> it's reset to false in the call to getConnection. Attached patch fixes that
> by explicitly setting autocommit to the right mode in
> PGXAConnection.getConnection.
>

I don't think this fixes the problem completely if you have code
that calls XAConnection.getConnection more than once:

PGXADataSource xads = new PGXADataSource();
XAConnection xaconn = xads.getXAConnection();
XAResource xares = xaconn.getXAResource();

xares.start(xid, XAResource.TMNOFLAGS);

Connection conn1 = xaconn.getConnection();
conn1.createStatement().executeUpdate(...);

Connection conn2 = xaconn.getConnection();

The second call to get connection will result in:

setAutoCommit(true);
setAutoCommit(false);

on the real underlying connection, which will end up committing that part
of the transaction.

Kris Jurka

pgsql-jdbc by date:

Previous
From: Jeff Hubbach
Date:
Subject: Re: Unable to compile java file with all Classpaths set
Next
From: tomasz brymora
Date:
Subject: creating temporary table PostgreSql 8.1 and iBatis 2.3