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

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 (view raw or flat)
Thread:
Lists: pgsql-bugspgsql-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

pgsql-bugs by date

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

pgsql-jdbc by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group