"Diego Rodríguez Martín" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > Hi, > > I have been making some more tests about this issue, using old > dbcp/pool factory to get rid of the memory leaks of tomcat embedded > libraries commons-pool/commons-dbcp > > When using my own factory for dbcp and commons pool (the old versions), > I clear the resources used invoking datasource.close() in my servlet > destroy method. With a memory profiler, I have found that the offending > class causing the leak is org.apache.tomcat.util.modeler.ManagedBean. It > keeps two attributes referencing my dbcp pool, called resource and > resourceType. > > Is there a way I can access from my servlet this class > (org.apache.tomcat.util.modeler.ManagedBean) in order to clean the > references? > Is there any other action to be taken to free a resource than calling > datasource.close() that I am missing? > Is my fault freeing the resource or its Tomcat fault? >
It is probably Tomcat's fault, since it looks like Tomcat doesn't unregister the DataSource elements from JMX when the context is stopped. You should probably open a BZ issue for this (it doesn't look like the fix is too hard, NamingContextListener just needs to handle a "stop" event). To work around it, you just need to unregister the MBean, so something like: ObjectName on = new ObjectName("Catalina:type=DataSource,path=/myapp,host=localhost,class=my.full.class.name,name=resourceName"); Registry.getRegistry(null, null).unregister(on); should work. > Thank you very much in advance for your help > > Diego > > > Diego Rodríguez Martín escribió: >> Hi, >> >> I have found what you said about the factory. It is ported to 6.0. I >> have tried to use the old commons-dbcp library, copying >> commons-pool-1.2.jar and commons-dbcp-1.2.2.jar in tomcat lib directory >> and defining the attribute >> factory="org.apache.commons.dbcp.BasicDataSourceFactory" in the resource >> in my context.xml. >> >> It works, but I still have a memory leak. Tomcat is retaining my new >> commons-dbcp classes, and I think it is related to this classes: >> >> org.apache.tomcat.util.modeler.BaseModelMBean, >> com.sun.jmx.mbeanserver.NamedObject, >> com.sun.jmx.mbeanserver.RepositorySupport. >> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor >> com.sun.jmx.mbeanserver.JmxMBeanServer, >> >> This part of Tomcat is completely unkown to me, Do you have any clue? >> >> Many thanks for your help >> >> >> Diego >> David Smith escribió: >>> In older versions of tomcat (5.0.x) there is a factory attribute >>> defining the pool to use. It's unclear from the limited look I did >>> whether that was carried forward to 5.5 and 6.0. >>> >>> --David >>> >>> Diego Rodríguez Martín wrote: >>>> Hi, >>>> >>>> Is there any way to fix this leak downgrading the version of commons >>>> pool. I have a production enviroment where we have a lot of >>>> deploy/undeploy and with this leak we have to stop/start Tomcat very >>>> often. Is there a possibility of replacing tomcat-dbcp.jar with the >>>> older individual jars? It will work or you have used new >>>> functionalities of these packages? >>>> >>>> Thanks >>>> >>>> Diego >>>> >>>> >>>> Rémy Maucherat escribió: >>>>> On 6/8/07, Diego Rodríguez Martín <[EMAIL PROTECTED]> wrote: >>>>>> It affects version 1.3 of commons pool. In tomcat 6, commons pool is >>>>>> embbeded in /tomcat-dbcp.jar/, and the docs don't say with version of >>>>>> commons is inside. >>>>> >>>>> It's that version. A new commons-pool version will be integrated when >>>>> it's available. >>>>> >>>>> Rémy >>>>> >>>>> --------------------------------------------------------------------- >>>>> To start a new topic, e-mail: users@tomcat.apache.org >>>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>>>> For additional commands, e-mail: [EMAIL PROTECTED] >>>>> >>>>> >>>> >>> >>> >>> --------------------------------------------------------------------- >>> To start a new topic, e-mail: users@tomcat.apache.org >>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> For additional commands, e-mail: [EMAIL PROTECTED] >>> >>> >> > > -- > ------------------------------------------------------------- > Diego Rodríguez Martín ([EMAIL PROTECTED]) > ALTIRIA TIC - Servicios SMS - Desarrollo Web > Tel. +34 913311198 - Fax +34 913310087 - Móvil +34 610299750 > www.altiria.com > ------------------------------------------------------------- > > > --------------------------------------------------------------------- > To start a new topic, e-mail: users@tomcat.apache.org > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]