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

Поиск
Список
Период
Сортировка
От Jagadish Prasath Ramu
Тема BUG #2444: XA Connections given by posgres driver has auto-commit value false by default
Дата
Msg-id 200605191009.k4JA9OjS042465@wwwmaster.postgresql.org
обсуждение исходный текст
Список pgsql-bugs
The following bug has been logged online:

Bug reference:      2444
Logged by:          Jagadish Prasath Ramu
Email address:      jagadish.ramu@Sun.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

В списке pgsql-bugs по дате отправления:

Предыдущее
От: gsmd@gmx-topmail.de
Дата:
Сообщение: sequences problem
Следующее
От: Alvaro Herrera
Дата:
Сообщение: Re: sequences problem