Thread: JDBC XA Support and Sample code?
Hello All, I am new to the XA world of PostgreSQL. What's the story of XA in PostgreSQL JDBC Driver? Also are there examples on how to use the "Experimental" XA driver in postgresql-jdbc? Thanks. Regards, Jignesh
On Wed, 5 Dec 2007, Jignesh K. Shah wrote: > I am new to the XA world of PostgreSQL. What's the story of XA in PostgreSQL > JDBC Driver? Also are there examples on how to use the "Experimental" XA > driver in postgresql-jdbc? > PG's XA support is not expiremental, it's been part of the driver since the 8.1 release. How it's used depends a lot on who/what is managing your transactions, so it's not real straightforward to put together concrete examples and configurations. The JDBC driver's testsuite (org.postgresql.test.xa) manually issues xa transaction commands, so it's the most clear use of XA, but not really representative of actual usage. Kris Jurka
So how come the API documentation for it is in privateapi and not publicapi.. That prompted me to infer that it is experimental. (I may not be alone in drawing that inference from it.) Thanks for pointer to the testsuite I will take a look at it. -Jignesh Kris Jurka wrote: > > > On Wed, 5 Dec 2007, Jignesh K. Shah wrote: > >> I am new to the XA world of PostgreSQL. What's the story of XA in >> PostgreSQL JDBC Driver? Also are there examples on how to use the >> "Experimental" XA driver in postgresql-jdbc? >> > > PG's XA support is not expiremental, it's been part of the driver > since the 8.1 release. How it's used depends a lot on who/what is > managing your transactions, so it's not real straightforward to put > together concrete examples and configurations. The JDBC driver's > testsuite (org.postgresql.test.xa) manually issues xa transaction > commands, so it's the most clear use of XA, but not really > representative of actual usage. > > Kris Jurka
On Wed, 5 Dec 2007, Jignesh K. Shah wrote: > So how come the API documentation for it is in privateapi and not publicapi.. > That prompted me to infer that it is experimental. (I may not be alone in > drawing that inference from it.) The driver just implements the standard interfaces in J2SE, so there's nothing that really needs to be exposed from an API standpoint. PGXADataSource should be moved to the public API, but it's unlikely for people to call it directly. Kris Jurka
Jignesh K. Shah wrote: > I am new to the XA world of PostgreSQL. What's the story of XA in > PostgreSQL JDBC Driver? Also are there examples on how to use the > "Experimental" XA driver in postgresql-jdbc? As Kris pointed out, it's not experimental. It's typically used together with an application server that also acts as the transaction manager, and manages the connections and transactions for you. In that case, you don't need to do anything special; if you use two database connections or other resource managers in a transaction, the application server will perform two-phase commit using the XA driver behind the scenes. The tricky part is configuring the application server/transaction manager to use the XA-enabled PGXADataSource. That's different on each product. It would be nice to get a sample config file and tutorial on Glassfish, hint hint ;-) -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com
> It's typically used together with an application server that > also acts as the transaction manager, and manages the > connections and transactions for you. In that case, you don't > need to do anything special; if you use two database > connections or other resource managers in a transaction, the > application server will perform two-phase commit using the XA > driver behind the scenes. Just FYI, I used Postgres XA driver against two databases using Spring and BTM transaction manager. My configuration wasbased on what is in BTM documentation. It worked just fine. I was not able to "break" it. > -----Original Message----- > From: pgsql-jdbc-owner@postgresql.org > [mailto:pgsql-jdbc-owner@postgresql.org] On Behalf Of Heikki > Linnakangas > Sent: Thursday, December 06, 2007 9:55 AM > To: Jignesh K. Shah > Cc: pgsql-jdbc@postgresql.org > Subject: Re: [JDBC] JDBC XA Support and Sample code? > > Jignesh K. Shah wrote: > > I am new to the XA world of PostgreSQL. What's the story of XA in > > PostgreSQL JDBC Driver? Also are there examples on how to use the > > "Experimental" XA driver in postgresql-jdbc? > > As Kris pointed out, it's not experimental. > > It's typically used together with an application server that > also acts as the transaction manager, and manages the > connections and transactions for you. In that case, you don't > need to do anything special; if you use two database > connections or other resource managers in a transaction, the > application server will perform two-phase commit using the XA > driver behind the scenes. > > The tricky part is configuring the application > server/transaction manager to use the XA-enabled > PGXADataSource. That's different on each product. It would be > nice to get a sample config file and tutorial on Glassfish, > hint hint ;-) > > -- > Heikki Linnakangas > EnterpriseDB http://www.enterprisedb.com > > ---------------------------(end of > broadcast)--------------------------- > TIP 1: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org > so that your > message can get through to the mailing list cleanly >
On Wed, 5 Dec 2007, Jignesh K. Shah wrote: > So how come the API documentation for it is in privateapi and not publicapi.. > That prompted me to infer that it is experimental. (I may not be alone in > drawing that inference from it.) > OK, I've moved PGXADataSource to the public API. Will be in the next site build. Kris Jurka