[ https://issues.apache.org/jira/browse/AMQ-3451?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13430390#comment-13430390 ]
Claudio Corsi commented on AMQ-3451: ------------------------------------ @Sergey The issue is more fundamental than your patch. Those threads are created by the default task runner factory and this factory is created once and then never shutdown throwout the life time of the process. Adding a shutdown of the default task runner will remove this issue but will raise another issue when using the shared classloader of the application server with multiple containers. The default task runner should be associated with the broker server and not a self contained static class. This should resolve the case of its use within the broker side code but will not resolve this issue within the client side issue. That needs a little more work on getting this to work properly. I have tried to shutdown the default task runner factory fix but when I hot deploy the container again. It raises a rejected exception when trying to add a task to the runner since this executor has been shutdown already. I tried a fix to associates a default task runner factory to the broker and that resolved the issue I was initially seeing. I still have an issue with the client code that uses the default task runner factory. This still needs work on my end and will probably require a different fix that would provide a similar solution. I was thinking about using WeakReferences associated with a ReferenceQueue. Whenever the remove method is called the task runner factory can be shutdown. This might work. I just need to implement this. --Claudio > Tomcat 6.0.32 complains that ActiveMQ 5.5 doesn't shutdown a thread > ------------------------------------------------------------------- > > Key: AMQ-3451 > URL: https://issues.apache.org/jira/browse/AMQ-3451 > Project: ActiveMQ > Issue Type: Bug > Components: JMS client > Affects Versions: 5.5.0 > Environment: jdk 1.6.0_23 for Linux 64 bit, Ubuntu 11.04 > Tomcat 6.0.32 > Spring 3.0.5 > Reporter: John Miller > Labels: leak, resource > Attachments: inherited_access_cotrol_context_leak.png, patch.txt, > transport_thread_leak.png > > > Every time when restarting web application in Tomcat Manager I get messages: > SEVERE: The web application [/sms] appears to have started a thread named > [ActiveMQ Task-3] but has failed to stop it. This is very likely to create a > memory leak. > With every restart PermGen space is increased and finally i got OutOfMemory > error for PermGen space. > I use Spring DefaultMessageListenerContainer, and it's shutdown method closes > properly receivers threads. What is "ActiveMQ Task-3" thread and how to close > it properly ? -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira