BUG #2444: XA Connections given by posgres driver has auto-commit value false by default

From: "Jagadish Prasath Ramu" <jagadish(dot)ramu(at)Sun(dot)COM>
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #2444: XA Connections given by posgres driver has auto-commit value false by default
Date: 2006-05-19 10:09:24
Message-ID: 200605191009.k4JA9OjS042465@wwwmaster.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-jdbc


The following bug has been logged online:

Bug reference: 2444
Logged by: Jagadish Prasath Ramu
Email address: jagadish(dot)ramu(at)Sun(dot)COM
PostgreSQL version: posgres driver
Operating system: Fedora Core 4, Solaris
Description: XA Connections given by posgres driver has auto-commit
value false by default
Details:

Problem with PostgresDriver : postgresql-8.1-405.jdbc3.jar

I am using the above driver to get an XA Connection and I found that
auto-commit value of it is false by default.

Source : org/postgresql/xa/PGXAConnection.java
Constructor :

PGXAConnection(BaseConnection conn) throws SQLException
{
super(conn, false);
this.conn = conn;
this.conn.setAutoCommit(false);
this.state = STATE_IDLE;
this.logger = conn.getLogger();
}

From JDBC Specification 3.0, Chapter 10.1.1 > Disabling AutoCommit mode :

" The default is for auto-commit mode to be enabled when the Connection
object is
created. If the value of auto-commit is changed in the middle of a
transaction, the
current transaction is committed. It is an error to enable auto-commit for
a
connection participating in a distributed transaction, as described in
Chapter 12
Distributed Transactions. "

Chapter 12 > 12.4 Transaction Management :
"In contrast to the local case, the boundaries of a
distributed transaction must be controlled by an external transaction
manager that is
coordinating the work of multiple connections. For this reason, it is an
error for
applications to call any of the following Connection methods while they are
participating in a distributed transaction:
setAutoCommit(true)
commit
rollback
setSavepoint
The JDBC driver throws an SQLException if one of these operations is
attempted
on a connection that is participating in a distributed transaction. If the
connection is
later used for a local transaction, these operations are legal at that
point."

From these excerpts what I could understand is auto-commit for XA's
connection need to be true when created and auto-commit can not be set to
true when a transaction in progress.

Thanks,
-Jagadish

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Alvaro Herrera 2006-05-19 13:23:06 Re: sequences problem
Previous Message Tom Lane 2006-05-18 19:57:52 Re: BUG #2441: All useable indexes for an IN are used, not just one

Browse pgsql-jdbc by date

  From Date Subject
Next Message sathish kumar shanmugavelu 2006-05-20 09:27:04 Re: jdbc driver problem?
Previous Message Kris Jurka 2006-05-18 22:21:56 Re: Automatic cast