On 02/02/2015 04:47 PM, Thiago Kronig wrote:
I just tried the same approach using JMS consumers. No success.
Source at:
https://github.com/thiagokronig/activemq-camel-test/blob/master/src/main/java/com/thiagokronig/activemqcameltest/ActiveMQJMSParallelTest.java

On Mon Feb 02 2015 at 7:30:00 PM Thiago Kronig <thiagokro...@gmail.com>
wrote:

You need to take consumer prefetch values into account when dealing with concurrent consumers.
http://activemq.apache.org/what-is-the-prefetch-limit-for.html

Tim, you're right: 1 second is to small timeout to begin with.
But even if I set to 10 minutes, I get the same discouraging results: 3
consumers, sometimes 8 consumers processing different messages in parallel.
Sometimes 10 consumers, as my test requires, consumes all the messages in
parallel and exit before the `10 minute` timeout; but that is *sometimes*.


On Mon Feb 02 2015 at 7:12:58 PM Tim Bain <tb...@alumni.duke.edu> wrote:

Are you sure that your assumption that a Camel context can be initialized
enough to consume messages in all 10 threads within 1 second is a valid
one?  In my experience, Camel contexts aren't quick to start, and it
wouldn't surprise me if there was some asynchronous startup logic that
took
place in parallel after control returns from you call to
camelContext.addRoutes().  Can you point us to any documentation that
validates that startup is supposed to work as quickly as your code
assumes?  If not, you could increase the timeouts to 2 seconds, and I
would
expect your test would start succeeding most/all of the time...

On Mon, Feb 2, 2015 at 1:49 PM, Thiago Kronig <thiagokro...@gmail.com>
wrote:

Tim, other thing: I tried to Thread.sleep(5000); between the producer
commit and the consumer initialization, but had no success.

On Mon Feb 02 2015 at 6:45:19 PM Thiago Kronig <thiagokro...@gmail.com>
wrote:

Tim, in may scenario I want to consume N messages in N consumers, one
for
each. My consumers wait on a barrier only to show the parallelism,
and to
show that none of them processed two messages or more. Maybe my Camel
configuration is wrong, or there is something wrong with the broker
configuration.


On Mon Feb 02 2015 at 6:17:38 PM Tim Bain <tb...@alumni.duke.edu>
wrote:
Why do your consumers all wait for the Nth message to be received
before
they return to process another?  Why don't you use an AtomicInteger
to
subtract one each time, and succeed if you hit 0 and fail if you
haven't
hit 0 by the end of your timeout interval?  Based on what you've
shows
us
so far, this appears to be an artifact of your test code, not a
problem
with the broker.

On Mon, Feb 2, 2015 at 1:02 PM, Thiago Kronig <
thiagokro...@gmail.com>
wrote:

Hi list.

I'm trying to concurrently consume 10 messages sent to an embedded
ActiveMQ
broker over the VM transport. Sometimes my code works, sometimes it
hangs
at the n-th message, randomly.

If I change to a JBossMQ, my Camel client works.

Can someone help me in setting my ActiveMQ broker?

Source at: https://github.com/thiagokronig/activemq-camel-test

Thanks in advance.



--
Tim Bish
Sr Software Engineer | RedHat Inc.
tim.b...@redhat.com | www.redhat.com
skype: tabish121 | twitter: @tabish121
blog: http://timbish.blogspot.com/

Reply via email to