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