tags:

views:

121

answers:

1

Today, I saw many errors on my ActiveMQ 5.3.2 console:

INFO | Usage Manager Memory Limit reached. Stopping producer (ID:...) to prevent flooding topic://mytopic. See http://activemq.apache.org/producer-flow-control.html for more info (blocking for: 3422ms)

I did a little bit of poking around, and determined that the subscriber had gone out to lunch:

Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp6       0 130320 10.208.87.178:61613     66.31.31.216:37951      ESTABLISHED

In this situation, I don't want the producer to block; I would prefer to drop the client completely. http://activemq.apache.org/slow-consumer-handling.html explains how to limit the number of messages queued, which is a good start, but isn't really what I want. http://activemq.apache.org/slow-consumers.html alludes to being able to drop a slow consumer, but doesn't explain how one might do this.

So, this is my question: is it possible to set up ApacheMQ to drop slow consumers completely, and how do I do so?

A: 

I cannot give you an answer on how to drop the client ( in fact: i am not so sure it is possible all together) but what you can do is add a policy to not block the producer:

" memoryLimit="10mb" producerFlowControl="false"/>

This way, your producer will not suffer from slow consumers.

Noctris