Re: JDBC feature request: auto savepoint per command
От | Mark Lewis |
---|---|
Тема | Re: JDBC feature request: auto savepoint per command |
Дата | |
Msg-id | 1177355195.20922.17.camel@archimedes обсуждение исходный текст |
Ответ на | JDBC feature request: auto savepoint per command (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-jdbc |
The idea has been raised on this list before: http://archives.postgresql.org/pgsql-performance/2006-07/msg00245.php There is a negative performance impact but there's no reason it couldn't be a driver option. There isn't one right now though. -- Mark Lewis On Mon, 2007-04-23 at 14:25 -0400, Tom Lane wrote: > 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 > > ---------------------------(end of broadcast)--------------------------- > TIP 6: explain analyze is your friend
В списке pgsql-jdbc по дате отправления: