JDBC feature request: auto savepoint per command

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-jdbc(at)postgreSQL(dot)org
Subject: JDBC feature request: auto savepoint per command
Date: 2007-04-23 18:25:13
Message-ID: 11539.1177352713@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Some folk at JBoss (now part of Red Hat) are complaining to me that
there's no way to deal with failing statements within a transaction
in the context of CMT (Container Managed Transactions). The normal
advice would be to do SAVEPOINT and RELEASE around each statement,
but they say this is disallowed:

> It's really a question of granularity. When using CMT a global
> transaction is not committed until the end of method completion.
> Prior to the JDBC connection being used, autocommit is set to false
> and the global transaction is officially started. When the global
> transaction completes, the transaction is committed as a whole. JDBC
> Rollback and commit within a managed transaction is prohibited as
> this is the responsibility of the container. So, setting a savepoint
> and rolling back (and subsequently committing) won't work in this
> context which is what the Postgres driver requires.

Can anyone see a solution for this in the context of the existing driver
facilities? If not, is it reasonable to ask for a driver option to do
auto-savepointing? There is already an equivalent facility in psql, so
the idea doesn't seem unreasonable to me.

regards, tom lane

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Mark Lewis 2007-04-23 19:06:35 Re: JDBC feature request: auto savepoint per command
Previous Message cvp3-3t1p 2007-04-23 08:00:34 Using interval type columns in Hibernate