FAQ update about transaction interleaving - Mailing list pgsql-jdbc

From Heikki Linnakangas
Subject FAQ update about transaction interleaving
Date
Msg-id 4624AC46.3030100@enterprisedb.com
Whole thread Raw
Responses Re: FAQ update about transaction interleaving
List pgsql-jdbc
I posted this FAQ patch already in November, but got no reaction...

Could we please have the FAQ updated to give more information on the
missing support for transaction interleaving in the XA driver? The
current wording leaves the reader wondering what the heck it is and why
should they care. People ask about it on the list every now and then.

--
   Heikki Linnakangas
   EnterpriseDB   http://www.enterprisedb.com
? xa-faq-update.diff
Index: src/documentation/content/xdocs/documentation/faq.xml
===================================================================
RCS file: /usr/local/cvsroot/pgjdbc/www/src/documentation/content/xdocs/documentation/faq.xml,v
retrieving revision 1.3
diff -c -r1.3 faq.xml
*** src/documentation/content/xdocs/documentation/faq.xml    26 Sep 2006 05:14:10 -0000    1.3
--- src/documentation/content/xdocs/documentation/faq.xml    10 Nov 2006 16:23:38 -0000
***************
*** 10,18 ****
        <question>Does the driver have XA support?</question>
        <answer>
          <p>
!           Yes, starting with the 8.1dev-403 driver XADataSource support
!       is available.  It is not complete in that it does not support
!       transaction interleaving.
          </p>
        </answer>
      </faq>
--- 10,49 ----
        <question>Does the driver have XA support?</question>
        <answer>
          <p>
!           Yes, starting with the 8.1dev-403 driver. However, transaction
!       interleaving is not supported.
!         </p>
!       </answer>
!       <question>What is "transaction interleaving"?</question>
!       <answer>
!         <p>
!       Transaction interleaving means that one database connection can be
!       used for multiple transactions at the same time, switching between
!       the transactions.
!     </p>
!     <p>
!       Transaction interleaving is mostly useless, but it's a required part
!       of the JTA specification. Some application servers use it to allow a
!       bit more concurrency without allocating a bigger jdbc connection
!       pool.
!     </p>
!     <p>
!       Few JDBC drivers support transaction interleaving properly. Some
!       fake it by issuing early prepare commands, risking transaction
!       integrity, some give strange error messages, some fail in other,
!       subtle ways. The PostgreSQL JDBC driver does it's best to detect
!       interleaving and throws a proper error message when it can't do
!       what's requested.
!     </p>
!     <p>
!       Because of the lack of driver support, all of the popular application
!       servers provide options to work around it, or don't use it at all.
!       Therefore, lack of transaction interleaving shouldn't affect your
!       application or data integrity.
!     </p>
!     <p>
!       See the JTA specification, section 3.4.4, or search the pgsql-jdbc
!       mailing list archives for more information.
          </p>
        </answer>
      </faq>


pgsql-jdbc by date:

Previous
From: Kris Jurka
Date:
Subject: Re: junit test results
Next
From: Adrian Custer
Date:
Subject: Handling network errors during initial connection and ongoing use