activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Darius Schier (Commented) (JIRA)" <>
Subject [jira] [Commented] (AMQ-3157) Garbage collecting inactive destinations does not work with queue mirroring
Date Tue, 22 Nov 2011 08:32:39 GMT


Darius Schier commented on AMQ-3157:

Not sure if we have exactly the same problem but it looks pretty familiar.
We gave the snapshot a try, unfortunately we still have very similar problems as described
by Jim.
Same as above: GC seems to work fine with destinations that are available after restart but
not with dynamically created ones.
Also queues that were created before restart dynamically and still have some load work fine
(as the server creates them on startup).

Here is our configuration.

  <mirroredQueue copyMessage = "true" postfix=".qmirror" prefix=""/>
      <policyEntry topic="testQueue.>" producerFlowControl="false" memoryLimit="1 mb"
      <policyEntry queue="testQueue.>" producerFlowControl="false" memoryLimit="1 mb"

  <kahaDB directory="${activemq.base}/data/kahadb"/>

      <memoryUsage limit="10 mb"/>
      <storeUsage limit="10 gb"/>
      <tempUsage limit="10 mb"/>

Would you mind to reopen this issue? 
We use mirrors a lot. From our point of view this could lead to OOM, so we think the priority
could/should be increased.

> Garbage collecting inactive destinations does not work with queue mirroring
> ---------------------------------------------------------------------------
>                 Key: AMQ-3157
>                 URL:
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.4.2
>         Environment: Windows 2003 Server, Java JDK 1.6
>            Reporter: Jim Gomes
>            Priority: Minor
>             Fix For: 5.6.0
>         Attachments:,
> When using the garbage collection feature of inactive queues, the queues are not collected
if queue mirroring is turned on.  The following snippet shows a basic configuration for reproducing
the problem:
> {code:xml}
> <broker xmlns=""
>           brokerName="localhost"
>           dataDirectory="${activemq.base}/data"
>           destroyApplicationContextOnStop="true"
>           schedulePeriodForDestinationPurge="10000">
>         <destinationInterceptors>
>             <mirroredQueue copyMessage="true" postfix="" prefix="Monitor."/>
>         </destinationInterceptors>
>         <destinationPolicy>
>             <policyMap>
>                 <policyEntries>
>                     <!-- Set auto-cleanup of inactive topics and queues -->
>                     <policyEntry queue=">" producerFlowControl="true" memoryLimit="50mb"
gcInactiveDestinations="true" inactiveTimoutBeforeGC="30000">
>                         <pendingQueuePolicy>
>                             <vmQueueCursor/>
>                         </pendingQueuePolicy>
>                     </policyEntry>
>                     <policyEntry topic=">" producerFlowControl="true" memoryLimit="50mb"
gcInactiveDestinations="true" inactiveTimoutBeforeGC="30000">
>                         <pendingSubscriberPolicy>
>                             <vmCursor />
>                         </pendingSubscriberPolicy>
>                     </policyEntry>
>                 </policyEntries>
>             </policyMap>
>         </destinationPolicy>
> </broker>
> {code}
> With this configuration, the topics will be collected, but the queues will not be collected.
 In order to get the queues to be collected, the {{<destinationInterceptors>}} section
needs to be commented out.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message