Re: "Idle in Transaction" revisited.

Поиск
Список
Период
Сортировка
От Jeffrey Tenny
Тема Re: "Idle in Transaction" revisited.
Дата
Msg-id 414CADC3.5050907@comcast.net
обсуждение исходный текст
Ответ на "Idle in Transaction" revisited.  ("John R Pierce" <pierce@hogranch.com>)
Ответы Re: "Idle in Transaction" revisited.
Список pgsql-jdbc
> John R Pierce <pierce@hogranch.com>, pgsql-jdbc@postgresql.org
>
> Gaetano Mendola wrote:
>
>> John R Pierce wrote:
>>
>>> I'm curious what common practice is for threads that do nothing
>>> but SELECTS... do folks just enable auto_commit, thereby
>>> preventing pgJDBC from doing BEGIN; ?  Do they lace their code
>>> with COMMIT() calls?
>>
>>
>>
>> We were bitten by this problem too, and my solution was to suggest
>> our developer to do and explicit: "ABORT" after the connection, and
>> do explicit "BEGIN"   "END"  instead of rely on the jdbc interface.
>>
>
>
> This is a pretty bad idea as it can confuse the driver's idea of the
> current transaction state. For example, cursor-based resultsets won't
> ever be used if you do your own transaction demarcation in this way.
>
> Better to use the standard JDBC autocommit API and a driver that has
> the premature-BEGIN problem fixed.

Second that, it's a very bad idea. I once naively had my own transaction
management using begin/end via jdbc for multi-statement transactions
against PostgreSQL.
Then the driver was updated at some point and I was getting all kinds
of screwed up commit logic and inconsistent data models.

Stick with and support the proper JDBC interfaces.  Anything else is
platform dependeng, among other bad things.



В списке pgsql-jdbc по дате отправления:

Предыдущее
От: Oliver Jowett
Дата:
Сообщение: raising the default prepareTheshold
Следующее
От: Jeffrey Tenny
Дата:
Сообщение: Re: "Idle in Transaction" revisited.