Hi,
     First off I want to say I am sorry right up front if this is a very
basic question, but I as well as others have been searching for a solution
to this to no avail.  We have run into the following situation in testing
one of our new developments:

-Non-persistent TOPIC
-Very fast STOMP producer (>3000 msgs / sec)
-Multiple STOMP consumers

The problem we are running into is that this whole setup has been working
excellent up to this point; however, we discovered a major issue with Slow
Consumers being handled.  I know that there are many questions/postings
regarding handling slow consumers, but yet we still are running into this
issue, and I am beginning to wonder if it is currently how AMQ is just
functionally built.  Essentially what happens is if one of these consumers
is slow (we throttled the receive through TCPMon) or a breakpoint in hit on
the consuming application, the producer will continue to send for a time,
but eventually (and quickly) goes into a wait for the send-queue of the slow
consumer to have more space and no messages are sent to any of the clients. 
If the slow consumer disconnects or the breakpoint is done being debugged,
everything goes back to normal, but not until that point.  Below is the
config file section I tried to put into place given the other forum postings
/ AMQ articles I read; however, the same result occurred.  

What I really just want to have happen is messages get delivered to the
consumers on my topic as they come in, if a consumer is slow to take
messages and multiple messages come in while the slow delivery is occurring,
the subsequent messages get delivered to the other consumers and then just
thrown away.  I need to find a way to configure things where even if
consumers on my topic are not able to keep up, they will get messages as
fast as they can consume them, but they will not interfere with other
consumers getting the produced messages as well.  We have also tried
different subscription params such as:

activemq.dispatchAsync
activemq.maximumPendingMessageLimit

By the way, when I am sending the messages to AMQ, I am setting the message
to non-persistent, but that also had no effect.

<policyEntry topic="MyTopic.>">
            <subscriptionRecoveryPolicy>
                <noSubscriptionRecoveryPolicy/>
            </subscriptionRecoveryPolicy>
            
            <!-- lets force old messages to be discarded for slow consumers
-->
            <pendingMessageLimitStrategy>
              <constantPendingMessageLimitStrategy limit="1"/>
            </pendingMessageLimitStrategy>
          </policyEntry>

        </policyEntries>

Thanks in advance for your help, I really appreciate it.

-Eric
-- 
View this message in context: 
http://www.nabble.com/%27Hopefully%27-Configuration-Issue-tp14611574s2354p14611574.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to