activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Strachan" <>
Subject Re: Topic consumer appears throttled
Date Mon, 25 Sep 2006 07:57:06 GMT
On 9/23/06, Rob Lugt <> wrote:
> I modified the test program to call IMessage.Acknowledge, but unfortunately
> it didn't make any difference.
> One thing I've discovered that does make a difference is if the broker is
> moved onto the local machine. When all three components (broker, publisher
> and consumer) are on one machine, the message rate is fast and constant.
> Unfortunately this is no real help because it doesn't match our target
> environment.

I wonder if you run a Java based consumer at the same time - does the
Java consumer slow down too or is it just the C# one? If you just run
the Java consumer, does it still slow down? Am wondering if its a C#
specific issue

> I'm going to take a wild stab in the dark...  Is it possible that my
> consumer is being identified as a "slow consumer", and therefore being given
> messages more slowly?  I'm completely ignorant to the internal workings of
> the AMQ broker, so have little idea if this is likely - but I did read the
> article [1] which indicates slow consumers are given special attention and
> so the symptoms could possibly be explained by it.  If this does turn out to
> be the case, it remains strange for (at least) two reasons:
> 1) the consumer is actually pretty fast, but even though it does nothing
> with the received message it can't consume quite consume at the rate that
> the producer can produce.
> 2) it seems the consumer slows down as soon as there are >1000 messages
> pending.  I would expect this slowdown to occur at 32,766 which is, I
> understand, the prefetch limit for a non-durable topic[2].
> Anyway, to test this theory I added "?consumer.prefetchSize=2000" to the
> TOPIC name in the consumer.  This made no difference :-(  Can you confirm
> that all destination options are transported to the broker via NMS/OpenWire?

I'm afraid those options are only supported currently in the Java
client. We've not implemented those in C# yet.

> Another related thought struck me. How can I be sure that I've created a
> non-durable Topic?  I use the ISession.GetTopic() method which magically
> creates the topic for me. I presume the result is a non-durable topic?

Things are persistent by default. To use non-persistent topics/queues
you set the delivery mode on a producer - which in NMS is the
Persistent property

> Thanks for the suggestions.  Hopefully I've given a clearer picture of the
> problem.

BTW I wonder if you get the same results with a java producer too?



View raw message