Re: SOLVED ... Re: Getting rid of a cursor from JDBC .... Re: [PERFORM] Re: HELP: How to tame the 8.3.x JDBC driver with a biq guery result set

Поиск
Список
Период
Сортировка
Искать
От
Kris Jurka
Тема
Re: SOLVED ... Re: Getting rid of a cursor from JDBC .... Re: [PERFORM] Re: HELP: How to tame the 8.3.x JDBC driver with a biq guery result set
Дата
Msg-id
alpine.BSO.2.00.1004201157210.17732@leary.csoft.net
Ответ на
Список
Дерево обсуждения
Re: SOLVED ... Re: Getting rid of a cursor from JDBC .... Re: [PERFORM] Re: HELP: How to tame the 8.3.x JDBC driver with a biq guery result set Kris Jurka <books@ejurka.com>


On Mon, 19 Apr 2010, Dave Crooke wrote:

> Statement.close() appears to get the job done (in my envrionment, PG's
> driver never sees a Connection.close() because of DBCP).
> 
> I'd consider the fact that ResultSet.close() does not release the implicit
> cursor to be something of a bug, but it may well have been fixed already.

PG doesn't release the locks acquired by the query until transaction end. 
So closing a cursor will release some backend memory, but it won't release 
the locks.  The way the driver implements ResultSet.close() is to put 
the close message into a queue so that the next time a message is sent to 
the backend we'll also send the cursor close message.  This avoids an 
extra network roundtrip for the close action.

In any case Statement.close isn't helping you here either.  It's really 
Connection.commit/rollback that's releasing the locks.

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