I've got a DMLC with concurrentConsumers set to a non-1 value and ActiveMQ 5.1, no app server, no transactions. I noticed that if one thread gets a message, the next message may go to that same thread, even if that thread is still working in onMessage(). In other words, ActiveMQ doesn't seem to send the message to the consumers that are in receive(), it just sends it to any of the consumers, perhaps one that's blocked for a long time.
Has anyone seen this? Is it an ActiveMQ-specific problem? I was forced to spawn a thread in onMessage() to avoid blocking any consumers, and in fact then dropped my concurrentConsumers to 1, which solved it. This means I can't use transactions or client-ack, though, and it seems weird to have this DMLC with fancy but useless multi-consumer logic.
Lawrence


Reply With Quote
