[
https://issues.apache.org/activemq/browse/AMQ-1790?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=47144#action_47144
]
NNZZ commented on AMQ-1790:
---------------------------
Hi there,
I just installed ActiveMQ 5.2, especially for the fix of the above problem, but
the above issue is still occurring.
After instantiating circa 1300 temp queues I am getting the following error:
java.lang.OutOfMemoryError : unable to create new native thread
Also if I go to the web admin (http://localhost:8161/admin/topics.jsp) I can
see a long list of temp queues that don't go anywhere...
Would you be able to advise us when the fix for this issue will be released.
Many thanks
N
> Memory leak in broker - Temporary Queue related (fix proposal included)
> -----------------------------------------------------------------------
>
> Key: AMQ-1790
> URL: https://issues.apache.org/activemq/browse/AMQ-1790
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.1.0
> Environment: ActiveMQ broker 5.1
> Spring based application with synchronous messages (temp queue based)
> Reporter: Gregory Mostizky
> Assignee: Rob Davies
> Priority: Critical
> Fix For: 5.2.0
>
>
> ActiveMQ broker leaks memory when using temp queues.
> This is critical for projects that use spring based synchronous messaging
> because each message creates & destroys new temp queue,
> however because of the leak they are not completely cleaned up resulting in
> OutOfMemory exception.
> First these are the classes that are leaked:
> org.apache.activemq.usage.MemoryUsage
> org.apache.activemq.management.PollCountStatisticImpl
> org.apache.activemq.usage.DefaultUsageCapacity
> Cause:
> org.apache.activemq.broker.region.BaseDestination is a base class for queues
> and by extension TempQueues.
> When TempQueue is created it will call BaseDestination constructor which will
> allocate some memory usage and statistics objects.
> However, the cleanup operation is missing - when TempQueue is destroyed these
> resources are not removed, and because these objects form a tree with the
> root being the root SystemUsage object they are never deleted.
> Solution:
> BaseDestination should implement dispose() method - this method is already
> defined in Destination interface but not implemented in BaseDestination.
> This method should cleanup all the resources allocated during it's creation.
> For example, see Queue.dispose().
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.