cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sylvain Wallez <sylvain.wal...@anyware-tech.com>
Subject Re: Use of a connection in an avalon component
Date Thu, 09 Oct 2003 13:10:13 GMT
Olivier Billard wrote:

> Hi all !
>
> I wonder how to use a DataSourceComponent and its connection in a 
> custom cocoon avalon component, that is ThreadSafe, to use all 
> performance and connection pool used in Cocoon.
>
> Should I :
>  - get a connection via datasource.getConnection() and close() it for 
> each public method call,
>  - get a connection in the initialize() method from the interface 
> Initializable, close() it on the dispose() method from Disposable 
> interface, and only create a Statement for each public method call ?
>  - implement another avalon interface, like Runnable, to get/relase 
> the Connection ?
>
> I looked for exemples in the databases block, but the helpers are not 
> Components. 


If your component is ThreadSafe, a single instance of it will exist in 
the whole system. JDBC connections being non thread safe, you *must* get 
and close them at each call. Don't be afraid to call close(): the 
connection you get is a wrapper managed by the DataSourceComponent which 
puts back the real request in the pool for later reuse when close() is 
called on the wrapper.

Sylvain

-- 
Sylvain Wallez                                  Anyware Technologies
http://www.apache.org/~sylvain           http://www.anyware-tech.com
{ XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }
Orixo, the opensource XML business alliance  -  http://www.orixo.com



Mime
View raw message