Обсуждение: commit after select

Поиск
Список
Период
Сортировка

commit after select

От
bob1234@pi.be (Bob Bie)
Дата:
Hello,

I'm writing a java program that uses transactions. For this reason I
turned of the autocimmit in java (sqlConnection.setAutocommit(false);)
This seems to work but now he also seems to lock the tables when I
only do a select. I can solve this bij doing a commit after each
select.

I only want to know if it is normal that I have to do a commit after a
select.
I use java 1.4.2_01 and postgres 7.3. The jdbc driver I use is called
pg73jdbc3.

Thanx in advance,
Bob

Re: commit after select

От
Oliver Jowett
Дата:
Bob Bie wrote:
> Hello,
>
> I'm writing a java program that uses transactions. For this reason I
> turned of the autocimmit in java (sqlConnection.setAutocommit(false);)
> This seems to work but now he also seems to lock the tables when I
> only do a select. I can solve this bij doing a commit after each
> select.

In general, SELECTs do not acquire locks. What behaviour leads to
believe they do?

Have you read the concurrency control chapter of the docs?
http://developer.postgresql.org/docs/postgres/mvcc.html

> I only want to know if it is normal that I have to do a commit after a
> select.

With autocommit off, a SELECT (or in fact *any* query) will start a new
transaction. It's your responsibility to eventually close that
transaction (via commit() or rollback()) at an apropriate point.

> I use java 1.4.2_01 and postgres 7.3. The jdbc driver I use is called
> pg73jdbc3.

This is quite an old driver; you're better off running the current 7.4
drivers (they will talk to a 7.3 database fine).

-O