Re: PostgreSQL (XADataSource) as Tomcat Resource

From: Heikki Linnakangas <hlinnaka(at)iki(dot)fi>
To: markds75 <markds75(at)gmail(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: PostgreSQL (XADataSource) as Tomcat Resource
Date: 2006-04-09 08:50:24
Message-ID: Pine.OSF.4.61.0604091059250.169983@kosh.hut.fi
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

On Wed, 5 Apr 2006, markds75 wrote:

> How can I get Postgres to be deployed in Tomcat's JNDI as an
> XADataSource?
>
> I'm running my web app in Tomcat, and I'm moving towards distributed
> transactions for my two data sources (JDO and JCR). I've got the Jencks
> library providing JTA support (based on Geronimo's TransactionManager)
> within Tomcat. Currently, I have Postgres configured as a local web-app
> Resource as follows:
>
> <Resource name="jdbc/whisper_db"
> auth="Container"
> type="javax.sql.DataSource"
> url="jdbc:postgresql://127.0.0.1:5432/my_db"
> driverClassName="org.postgresql.Driver"
> username="----------------"
> password="----------------"
> maxWait="3000"
> maxIdle="100"
> maxActive="10" />
>
> The web-app is able to start up without errors in this case and things
> function as expected. However, I've been told that I should be using an
> XADataSource if I want JDO to participate in distributed transactions
> (specifically, I'm trying to get 2 phase commit). When I change the
> type to "javax.sql.XADataSource", the web-app fails to start because
> Tomcat cannot create the JNDI entry. I'm running under Java 1.5, so to
> my knowledge XADataSource is included.
>
> Any pointers would be appreciated.

I don't know how to do it, but you certainly shouldn't have the driver
class name (org.postgresql.Driver) there. That's only used for non-XA
connections. You should somehow tell it that the class implementing
XADataSource is org.postgresql.xa.PGXADataSource.

I don't know anything about Jencks, but it seems that it uses the
TranQL connector module from Geronimo to glue in XADataSource
implementations. Unfortunately, there's no TranQL connector for
PostgreSQL. Fortunately, it shouldn't be too hard to write one, using the
existing connectors as an example.

However, I would suggest using another app server / JTA implementation. I
had success with JOnAS, which includes JOTM as it's JTA implementation.
JBoss should work too.

- Heikki

In response to

Browse pgsql-jdbc by date

  From Date Subject
Next Message Michael Schmidt 2006-04-10 03:28:13 Re; pg_dump from Java
Previous Message Michael Schmidt 2006-04-09 00:07:25 pg_dump from Java