Thomas Fischer wrote:

Closing works fine for SharedPoolDataSourceFactory and PerUserPoolDataSourceFactory. It does not work, however, for DataSourceFactories deployed/retrieved via JNDI. This has two reasons: - First, one does not want to close Pools retrieved via JNDI. Other applications might use the same Datasource. Also, because we have not deployed the Datasource, we are not responsible for shutting it down. - Second, even if we have deployed the Datasource, it is very problematic to shut it down because the interface DataSource does not have a close() method or anything similar. As any DataSource can be deployed, we do not know how to shut it down. One might think "See if it is a DBCP Datasource, if yes, we know how to shut it down, let's do it" is also no good solution because it is a very unintuitive behaviour and can lead to very strange errors.

AFAICS, the recommended handling of JNDI DataSources is to leave their management to the container. I suggest to implement an empty close() method in DataSourceFactory which could be overridden in implementations that support closing a DataSource.

Bye, Thomas.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to