tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Diego Rodríguez Martín <>
Subject Re: Tomcat 6 classloader leak in Commons Pool
Date Thu, 28 Jun 2007 19:32:54 GMT

    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 
    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?

    Thank you very much in advance for your help


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 <> 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:
>>>> To unsubscribe, e-mail:
>>>> For additional commands, e-mail:
>> ---------------------------------------------------------------------
>> To start a new topic, e-mail:
>> To unsubscribe, e-mail:
>> For additional commands, e-mail:

Diego Rodríguez Martín (
ALTIRIA TIC - Servicios SMS - Desarrollo Web
Tel. +34 913311198 - Fax +34 913310087 - Móvil +34 610299750

To start a new topic, e-mail:
To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message