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:29:55 GMT
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