activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thiago Kronig <thiagokro...@gmail.com>
Subject Re: Cannot concurrently consume from embedded broker
Date Mon, 02 Feb 2015 21:47:11 GMT
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 <thiagokronig@gmail.com>
wrote:

> 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 <tbain@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 <thiagokronig@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 <thiagokronig@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 <tbain@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 <
>> thiagokronig@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.
>> > >> >
>> > >>
>> > >
>> >
>>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message