Atomikos Forum |
|
Hi, Guy. This is what I read about XA support for PostgreSQL on this link: http://jdbc.postgresql.org/documentation/faq.html
---- 1.1. Does the driver have XA support? ^ Yes, starting with the 8.1dev-403 driver. However, transaction interleaving is not supported. 1.2. What is "transaction interleaving"? ^ Transaction interleaving means that one database connection can be used for multiple transactions at the same time, switching between the transactions. 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. 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. 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. See the JTA specification, section 3.4.4, or search the pgsql-jdbc mailing list archives for more information. ---- Here are my questions: 1) how do I turn off transaction interleaving in Atomikos? 2) is this problem the only one in PostgreSQL XA support? Thanks for your reply. Anton.
Hi Anton,
Transaction interleaving is no longer used in our pools - so you don't have to switch it off :-) Is this the only PostgreSQL issue? To be honest we're not sure. However, we'd like to add PostgreSQL to our list of supported databases. To do so requires the writing of a reasonable testbench for PostgreSQL - is this something you would be able to sponsor? Thanks |