You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Andreas Gies <an...@wayofquality.de> on 2018/12/06 07:39:13 UTC

Receiving messages via receiveNoWait()

Hello all,

we are using ActiveMQ 5.15.6 in our application. The application is 
built on top of OSGi and uses
ActiveMQ as an embedded Broker within the container. The container 
establishes a single intraVM
connection to the broker, messages are being sent and consumed in 
several sessions reusing the
same connection. External clients may establish connections via SSL to 
send or consume messages.

Essentially, each of our containers serves as a self-contained message 
router taking dispatching
dispatching messages from one technology to another.

The core of our ActiveMQ listener is implemented as an Akka Stream 
Source, which tries to consume
messages regularly using a receiveNoWait.

I have now seen in our integration tests, that in ~one of 100 runs the 
integration test fails. According to
the log files the consumer polls for messages, but none are delivered 
even if a message is available in
the destination.

Is receiveNoWait() the proper mechanism to consume messages in a polling 
fashion ? Should I use
receive(timeout) instead ? If so, what would be a reasonable value for 
the timeout ?

In this particular use case we do not want to use an event driven 
consumer as the stream source
has to wait until the message is processed, so that we can explicitly 
acknowledge the received message
using msg.acknowledge().


Any hints how I could debug this issue further would be greatly 
appreciated.

Best regards

Andreas