Re: Closing Statements and ResultSets

Поиск
Список
Период
Сортировка
От Barry Lind
Тема Re: Closing Statements and ResultSets
Дата
Msg-id 3D7E2D61.8000208@xythos.com
обсуждение исходный текст
Ответ на Closing Statements and ResultSets  (Daniel Serodio <daniel@checkforte.com.br>)
Список pgsql-jdbc
Daniel,

Yes the connection could, but the connection pool cannot.  Connection
pools work by creating a wrapper around the real connection object.  So
when you call close on the connection pool wrapper you are not really
calling close on the connection object.  The connection pool wrapper
doesn't know what statements and result sets are open and thus can't
close them, and you don't want to call close on the real connection
object because this will not only close the statements and result sets
but will really close the connection when makes the connection pool
useless.

This is why the jdbc spec is clear that it is the application coders
responsibility to close statements and result sets when finished using them.

thanks,
--Barry

Daniel Serodio wrote:
> Barry,
>
> Thanks for the reply. But i'm thinking, since the Connection holds
> references to it's Statements, it could close the Statements before
> returning the Connection to the pool, couldn't it?
>
> On Mon, 2002-09-09 at 18:11, Barry Lind wrote:
>
>>Daniel,
>>
>>If you are using virtually any connection pool closing the connection
>>alone will not be enough.  Because in a connection pool environment
>>closing a connection doesn't really close the connection, it just
>>returns it to the pool, thus any resources you haven't closed explicitly
>>will remain open and allocated.
>>
>>--Barry
>>
>>Daniel Serodio wrote:
>>
>>>    Hi! I usually close just the Connection object, understanding that it's
>>>associated Statement's, PreparedStatement's and ResultSet's will be
>>>automatically closed.
>>>
>>>    I'm trying to setup Protomatter JDBC Connection Pool with PostgreSQL,
>>>and Protomatter's documentation state that "It's also important to make
>>>sure you close all Statement, PreparedStatement and ResultSet objects
>>>associated with a connection before you close the connection itself.".
>>>
>>>    I emailed Protomatter's author, and he said that "specifically Oracle
>>>is not good about doing that.  If you don't close the statements you'll
>>>eventually get an error like "can't open any more cursors" or something
>>>like that..."
>>>
>>>    My question is: do I need to close the Statements or is closing the
>>>Connection enough?
>>>
>>
>>
>>---------------------------(end of broadcast)---------------------------
>>TIP 2: you can get off all lists at once with the unregister command
>>    (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
>


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

Предыдущее
От: Daniel Serodio
Дата:
Сообщение: Re: Closing Statements and ResultSets
Следующее
От: Barry Lind
Дата:
Сообщение: Re: Blobs and "No results were returned by the query."