"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: [email protected]
>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>>
>>>>>
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To start a new topic, e-mail: [email protected]
>>> 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: [email protected]
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To start a new topic, e-mail: [email protected]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]