Stephane,
No.
Here is the basic usage of the connection ( regardless of the existance
of the pool)
get the connection
prepare the statement
execute the statement
do something with result
close statement
close connection ( this allows the connection to be re-used by another
request )
Having a pool does not change this pattern.
All the pool does is cache connections so that they can be re-used by
multiple threads without going through the overhead of opening the
connection.
It also minimizes the number of connections required for an application.
For example if you have 1000 requests you might only need 100
connections since they will share
the connections in the pool.
Dave
Stéphane RIFF wrote:
> I thought that preparedStatement know what connection to use even if i
> return it to the pool
>
> Dave Cramer wrote:
>
>> Stephane,
>>
>> Yes, that is true, but where do you get the connection from on the
>> next iteration of the loop ? The constructor of SQLoader.... so the
>> next loop it is gone.
>>
>> Dave
>>
>> Stéphane RIFF wrote:
>>
>>> I thought that the m_conn.close() released the connection to the
>>> pool doesn't it ?
>>> If i close the connection at the end of the loop byt a
>>> SQLoader.close() this will
>>> make one connection for each thread. I want each thread ask a
>>> connection to the pool
>>> and released it after each update.
>>>
>>> Thanks for your time
>>> Bye
>>>
>>> Kris Jurka wrote:
>>>
>>>> On Fri, 4 Feb 2005, [ISO-8859-1] St�phane RIFF wrote:
>>>>
>>>>
>>>>
>>>>> Hello,
>>>>> I implement like you said in the last post but now i get some
>>>>> errors like this :
>>>>>
>>>>> 2005-02-04 09:03:26,234 : [WARN] SQLoader - java.sql.SQLException:
>>>>> org.apache.commons.dbcp.DelegatingPreparedStatement is closed.
>>>>> I attach the two class i you want to see
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Your main loop is written:
>>>>
>>>> SQLoader sl = new SQLoader();
>>>> for(int i=0;i<100;i++) {
>>>> sl.saveTrame( ... );
>>>> }
>>>>
>>>> but the end of the saveTrame method you have:
>>>>
>>>> finally {
>>>> try {
>>>> m_conn.commit();
>>>> m_conn.close();
>>>>
>>>> This closes the connection on the first iteration of the loop. I'd
>>>> suggest something like adding SQLoader.close() which gets called at
>>>> the end of the for loop.
>>>>
>>>> Kris Jurka
>>>>
>>>> ---------------------------(end of
>>>> broadcast)---------------------------
>>>> TIP 8: explain analyze is your friend
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>
>
>
--
Dave Cramer
http://www.postgresintl.com
519 939 0336
ICQ#14675561