On 09/10/2003 15:10, Sylvain Wallez wrote:
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.
by later reuse, do you mean datasource.getConnection() ?
-- Olivier
