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
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 |