Re: a simple example of XA (not working)
- From: Kris Jurka <books(at)ejurka(dot)com>
- To: Heikki Linnakangas <heikki(at)enterprisedb(dot)com>
- Cc: Luca Ferrari <fluca1978(at)infinito(dot)it>, pgsql-jdbc(at)postgresql(dot)org
- Subject: Re: a simple example of XA (not working)
- Date: Fri, 22 Jun 2007 17:05:02 -0400 (EDT)
- Message-id: <Pine.BSO.4.64.0706221659120.23726@leary.csoft.net> <text/plain>
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
Home |
Main Index |
Thread Index