activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Scott the Red <>
Subject Re: c++ client doesn't receive on all topic consumers
Date Thu, 25 Oct 2007 16:45:39 GMT

nmittler wrote:
> Which version of ActiveMQ-CPP are you using and against which ActiveMQ
> broker version?  Also, platform might be helpful.

ActiveMQ 4.1.1
ActiveMQ CPP 2.1 
Fedora Linux 

nmittler wrote:
> Could it be that this first consumer was started at or after the time the
> message was sent?  Consumers won't get messages they missed unless they
> are
> retroactive consumers
> (

No, I start the process with the consumers, wait for it to tell me it's
ready, and then send the messages from an external program.  In the case of
the single process talking to itself, I sleep before starting the producer.

nmittler wrote:
> That shouldn't be a problem.  Our example does this:
> To help isolate the problem, you might try not using selectors to see if
> you
> get all the messages you expect.

I tried removing the selector.  No luck.  

nmittler wrote:
> Are your java consumers using selectors as well, or do they simply receive
> everything?  Also, what is the lifetime of the java consumers?  Do you
> typically start them before you start the C++ consumers?

The java consumers seem to work both with and without the selectors.  They
receive the messages that the C++ client is missing.  I've generally started
the java consumers before the C++.

nmittler wrote:
> I'm not convinced this is a reliability issue.  We have flooded our
> consumers pretty hard in our testing.  How many messages are you sending
> per
> second?  How many producers and consumers.  Is there just a single topic
> or
> do you have several?

It could easily be an issue with how I'm managing the consumers.

At this phase, I'm sending just a very few messages.  They all go to a
single topic, and I use a messageType property to differentiate the contents
of the message.

As far as I can see, the main ways my code deviates from the example are

1) it uses a selector     (but removing the selector doesn't help)

2) scope - my adapter setups up the activemq consumer, and then stores it in
a registry, where they sit and wait to be unregistered.

3) the example runs its consumer in a thread.  But I think that's just for
the example's purposes so that the producers and consumer can both work in
the same process.  I believe activemq-cpp is creating all the threads it
needs when I create the consumer.

Thanks much!

View this message in context:
Sent from the ActiveMQ - User mailing list archive at

View raw message