Apologize if this is a re-post...

From: Joe Smith <joesmithc...@yahoo.com>
Subject: Broker forwards msg only once or twice then msg stuck in queue.
To: users@activemq.apache.org
Date: Friday, June 24, 2011, 2:53 AM

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


Reply via email to