Can you create a test case to reproduce this? You can take a look at
https://fisheye6.atlassian.com/browse/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/usecases/ThreeBrokerQueueNetworkTest.java?hb=true for a way on how to create such a test Regards -- Dejan Bosanac - http://twitter.com/dejanb ----------------- The experts in open source integration and messaging - http://fusesource.com ActiveMQ in Action - http://www.manning.com/snyder/ Blog - http://www.nighttale.net On Fri, Jun 24, 2011 at 4:53 AM, Joe Smith <joesmithc...@yahoo.com> wrote: > Hi, > > We have a cluster of 4 brokers (A, B, C, D). The test scenario is for one > produce connected to broker A. > > 1. producer sends msgs to broker A's queue. > 2. stop producer. we see pending messages in queue on broker A. > 3. consumer connect to broker D. consumer recv msgs. > 4. stop consumer. we see remaining/pending msgs in queue on brokers D and > A. > 5. consumer connect to broker C. consumer recv msgs. > 6. stop consumer. we see pending msgs in C and D. pending msgs on A > drained to 0. > 7. consumer connect to broker C, again. it read all remaining pending msg > on C and then waiting for more msgs (but not receiving any more). pending > msgs on D still remain pending. > 8. stop consumer on C. > 9. start consumer on B. no msg received, but msg are pending on broker D. > > The pattern seem to be the msg forwarding only do one hop and then stuck in > that queue/broker. When consumer connected to other brokers, the msgs are > not forwarded. > > Broker version: 5.4.2 > Java 1.6 > Linux > > broker > advisorySupport="true" > > <destinationPolicy> > <policyMap> > <policyEntries> > <policyEntry topic=">" producerFlowControl="true" > memoryLimit="1mb"> > <pendingSubscriberPolicy> > <vmCursor /> > </pendingSubscriberPolicy> > </policyEntry> > <policyEntry queue=">" producerFlowControl="true" > memoryLimit="1mb"> > <!-- Use VM cursor for better latency > For more information, see: > > http://activemq.apache.org/message-cursors.html > > <pendingQueuePolicy> > <vmQueueCursor/> > </pendingQueuePolicy> > --> > </policyEntry> > </policyEntries> > </policyMap> > </destinationPolicy> > > <networkConnector > uri="static:(tcp://host1:61616,tcp://host2:61616,tcp://host3:61616)" > conduitSubscriptions="false" > networkTTL="40" > dynamicOnly="true" > suppressDuplicateQueueSubscriptions="false" > decreaseNetworkConsumerPriority="false" > > > </networkConnector> > > <transportConnector name="openwire" uri="tcp://0.0.0.0:61616" > updateClusterClients="true" updateClusterClientsOnRemove="true"/> > > We use prefetchPolicy of 1 but msgs are still stuck. > > url=tcp://host1:61616?jms.prefetchPolicy.all=1 > > This problem seems to affect other settings. We already have one sys in > production that showed msgs were stuck and not being re-routed to idle > consumers. The app team is considering this a serious issue and want > resolution or else we will move off ActiveMQ platform. > > I'm building another system that showed the same issues. We need to > resolve this - else we cannot proceed with ActiveMQ. > > Your help is really appreciated. > > > > Regards > > >