Re: Connection.setReadOnly() - Mailing list pgsql-jdbc

From Craig Ringer
Subject Re: Connection.setReadOnly()
Date
Msg-id 4B225922.1090705@postnewspapers.com.au
Whole thread Raw
In response to Re: Connection.setReadOnly()  (Oliver Jowett <oliver@opencloud.com>)
Responses Re: Connection.setReadOnly()
List pgsql-jdbc
Oliver Jowett wrote:
> John R Pierce wrote:
>> Oliver Jowett wrote:
>
>>> If your oracle developers don't want manually committed transactions,
>>> perhaps they should.. turn on autocommit.
>>>
>> otherwise, an app thats doing purely read queries has to periodically
>> issue a Commit().   I have to say, doing Commit() on read operations is
>> NOT at all intuitive.
>
> Maybe not, but it's a fairly well known quirk of Postgresql that
> long-running transactions don't work so well; the JDBC driver is no
> different to any other interface in this regard.

Does Pg have issues with long-running read-only transactions in
read-committed mode? Or are they an exception to the usual "avoid
long-running mostly-idle transactions" guideline?

Pg doesn't have to worry about retaining old rows in vacuum with such a
statement, because each new statement creates a new snapshot, so if it's
idle it effectively has _no_ snapshot and vacuum is free to clear old
rows. It doesn't need to keep track of anything to roll back, since the
transaction is read only.

So ... for READ COMMITTED, READ ONLY transactions, _are_ there any
VACUUM issues?

--
Craig Ringer

pgsql-jdbc by date:

Previous
From: Greg Stark
Date:
Subject: Re: Connection.setReadOnly()
Next
From: "Albe Laurenz"
Date:
Subject: Re: Connection.setReadOnly()