You are viewing a plain text version of this content. The canonical link for it is here.
Posted to torque-dev@db.apache.org by John McNally <jm...@collab.net> on 2002/12/16 17:27:24 UTC

Re: Torque.shutdown() does not close underlying database connections.

Please add to scarab.werken.com.  And patches (cvs diff -u) would be
appreciated.

john mcnally

On Mon, 2002-12-16 at 05:46, neuro wrote:
> When using torque in my web-application I've noticed following:
> Than i use tomcat\manager to reload my web-app database connections "leak".
> 
> The reason was:
> Torque.shutdown() does not release any underlying database connections.
> 
> So I've dig into source and see that shutdown() does only release resources
> associated with DatabaseMaps(idBroker&etc.) but doesn't release
> any resources associated with DataSoucefFactorys (from dsFactoryMap
> in Torque sources). Pool implementations use threads so OPEN
> connections survive torque shutdown and application unloading. That's
> realy unpleasent.
> 
> To solve this we can add some code to Torque.shutdown:
> -------------Torque.java
>     public static void shutdown()
>     {
>         if (dbMaps != null)
>         {
>            ....
>         }
>     //NEW CODE BEGIN
>         if (dsFactoryMap != null)
>         {
>             Iterator factorys = dsFactoryMap.values().iterator();
>             while (factorys.hasNext())
>             {
>                 DataSourceFactory factory = (DataSourceFactory) factorys.next();
>                 factory.shutdown();
>             }
>         }
>     //NEW CODE END
>     }
> -------------
> And extend DataSourceFactory from single
>     void initialize(Configuration configuration) throws TorqueException;
> to
>     void shutdown();
> And add implementations to various implemantations :)
> 
> Since Torque relying on DBCP pools its enought to call pool.close();
> to close connections.
> 
> //regards, neuro
> 
> 
> --
> To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
> For additional commands, e-mail: <ma...@jakarta.apache.org>