activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Strachan" <james.strac...@gmail.com>
Subject Re: Problem with message groups
Date Tue, 19 Jun 2007 17:51:44 GMT
On 6/19/07, jcm231 <jcordoba@dynasty.es> wrote:
>
>
>
> James.Strachan wrote:
> >
> > On 6/18/07, jcm231 <jcordoba@dynasty.es> wrote:
> >>
> >> Hi!
> >>
> >> I am have a standalone ActiveMQ server and I am sending messages using a
> >> producer. The messages include the JMSXGroupID header with two different
> >> values: "one" and "two". I launch two Consumer objects, both being
> >> threads
> >> and implementing the interface MesageListener. The result is that only
> >> one
> >> of the two consumers receives all the messages. Sometimes is the first
> >> consumer and sometimes is the second who receives them all.
> >>
> >> What am I doing wrong? It is the first time I use ActiveMQ and I would
> >> thank
> >> any help anybody could give me.
> >
> > We don't yet guarrentee an exact round-robin dispatch policy on a per
> > message group basis; consumers tend to eagerly grab as many messages
> > as will fit into their pre-fetch buffer.
> > http://activemq.apache.org/what-is-the-prefetch-limit-for.html
> >
> > to mimick round-robin, try setting the prefetch to 1 on both
> > consumers; or try using thousands of messages
> >
> >
> >
> >
> > --
> > James
> > -------
> > http://macstrac.blogspot.com/
> >
> >
>
>
> I have sent 34000 messages but they all get consumed by the same consumer.
>
>
> I tried to specify the prefetchSize as indicated in:
>
> http://activemq.apache.org/what-is-the-prefetch-limit-for.html
>
> but I am not creating the ActiveMQQueue on the consumer's code but on the
> xml file. So I put this on my activemq.xml file:
>
>
>   <!-- Destination -->
>   <bean id="destination" class="org.apache.activemq.command.ActiveMQQueue">
>     <constructor-arg>
>
> <value>example.MyQueue?consumer.prefetchSize=1;consumer.exclusive=false</value>
>     </constructor-arg>
>   </bean>
>
> but it seems not be effective.

Creating a queue does nothing, unless you actually use it in your JMS
client (e.g. to consume from)

If you're struggling to set the prefetch groups; try sending say
50,000 messages to group 1, then start mixing 1 and 2; then the first
consumer will get its pre-fetch buffer filled with the first group; so
it won't grab group 2. (Or have lots of groups)

-- 
James
-------
http://macstrac.blogspot.com/

Mime
View raw message