Torsten,I'm sure there is no problem with my network. Setting optimizeAcknowledge to be false then messages dispatched to consumer by broker come continuously. So I guess that consumer give no enough pull command to broker when Setting optimizeAcknowledge to be true. With thinking about this,I reset optimizeAcknowledge to be true and set prefetchSize to be 300 (default 1000) and it works!resetting prefetchSize to be 500, 400 does not work again.So when prefetchSize to be 300 consumer give applicable pull to broker and messages dispatched to consumer by broker never breaks anymore. It seems there is some relationship with message size ,disk read speed, buffer size and so on.
At 2011-09-02 20:57:55,"Torsten Mielke" <[email protected]> wrote: >From http://activemq.apache.org/performance-tuning.html >using optimizedAcknowledge will ack all outstanding msgs after either 300ms or >65% of the prefetch (650 msgs in your case). > >With such setting and given your use case, it should not take several seconds >before new msgs are dispatched to the broker. >Have you tried running the same test locally (with broker and >producer/consumer) on the same physical machine? I wonder if that gets you >different results. >If all works fine locally, then its something with your network. >If you see the same problem when running locally, perhaps try to reproduce the >issue using one of the ActiveMQ demos. >If you can't reproduce it there, it probably something in your application >that causes this. > >If you have a simple reproducible test case, we could have a look. > >Regards, >Torsten > > > >On Sep 2, 2011, at 4:47 AM, SuoNayi wrote: > >> Yes, messageListener of the only one consumer only prints the message on >> console . >> The size of message is only 1kb. >> Consumer and broker is in the same LAN(100m). >> The consumer session is not transacted but I have set optimizeAcknowledge to >> be true. >> The break when consumer wait for next buffered messages takes several >> seconds, this isreasonable or not? >> >> At 2011-09-01 23:34:20,"Torsten Mielke" <[email protected]> wrote: >>> you quickly does the consumer process the 1000 msgs and how fast is the >>> network between broker and consumer? >>> What's the size of the msg? Is the consumer session transacted? >>> >>> In general the broker can prefetch more msgs to your consumer once the >>> consumer has acked a few msgs. So the broker should try to keep the >>> consumers prefetch full (assuming there are more msgs on the queue to >>> dispatch). The broker generally does not wait for all the 1000 msgs to be >>> acked, before dispatching more msgs. >>> >>> >>> Torsten Mielke >>> [email protected] >>> [email protected] >>> >>> >>> > >Torsten Mielke >[email protected] >[email protected] > > >
