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

Re: [BUGS] BUG #2444: XA Connections given by posgres driver has

From: Jagadish Prasath Ramu <Jagadish(dot)Ramu(at)Sun(dot)COM>
To: Kris Jurka <books(at)ejurka(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: [BUGS] BUG #2444: XA Connections given by posgres driver has
Date: 2006-05-23 06:14:34
Message-ID: 1148364874.4088.7.camel@sunonehpux1.india.sun.com (view raw or flat)
Thread:
Lists: pgsql-bugspgsql-jdbc
Hi Kris,
I am trying to use this XA-Connection without any transaction context.

eg: I have a test case using 2 XA-Connections on 2 different DBs and
DB-operations go fine.
As a part of the test, I need to check whether the data is actually is
persisted. 
In this case,  I get a connection (XAConnection) from the datasource and
do a query. This connection's auto-commit value is false.
According to the JDBC 3.0 Specification, auto-commit need to be true
when created.  [ my case ]
Only when the connection is taking part in a transaction, setting
auto-commit value is not allowed.

Since I am using the connection without any transaction context,
auto-commit need to be true in this case according to the specification.

Thanks,
-Jagadish

On Mon, 2006-05-22 at 15:14 -0500, Kris Jurka wrote:

> Moving to -jdbc.
> 
> On Fri, 19 May 2006, Jagadish Prasath Ramu wrote:
> 
> > The following bug has been logged online:
> >
> > Bug reference:      2444
> > 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.
> >
> 
> I'm not sure what the purpose of this is.  Why would you want a connection 
> to be in autocommit = true when this is a condition you are explicitly not 
> allowed to set yourself?
> 
> Kris Jurka
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 3: Have you checked our extensive FAQ?
> 
>                http://www.postgresql.org/docs/faq

In response to

Responses

pgsql-bugs by date

Next:From: Chris SmithDate: 2006-05-23 06:58:03
Subject: Re: [BUGS] BUG #2444: XA Connections given by posgres driver has
Previous:From: Alex WeslowskiDate: 2006-05-23 03:27:01
Subject: BUG #2451: Short column names return no values within function

pgsql-jdbc by date

Next:From: Chris SmithDate: 2006-05-23 06:58:03
Subject: Re: [BUGS] BUG #2444: XA Connections given by posgres driver has
Previous:From: Kris JurkaDate: 2006-05-22 23:17:14
Subject: Re: DatabaseMetaData

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