John Prillaman created AMQCPP-620:
-------------------------------------
Summary: Retroactive consumer not reliable
Key: AMQCPP-620
URL: https://issues.apache.org/jira/browse/AMQCPP-620
Project: ActiveMQ C++ Client
Issue Type: Bug
Components: Example Code
Affects Versions: 3.9.4
Environment: Red Hat 6, ActiveMQ 5.15.0
Reporter: John Prillaman
Assignee: Timothy Bish
Adding the retroactive parameter to the broker URI does not produce reliable
results. This can be reproduced by modifying the example code
(http://activemq.apache.org/cms/example.html), changing the brokerURI value to
"failover:(tcp://localhost:61616?consumer.retroactive=true)";
If the destination topic has been created and populated on the activeMQ broker
the expected result is to see the data printed from the onMessage immediately.
This happens most of the time but if the example program is run multiple times
the expected result will not be observed. Modifying the waitMillis by reducing
the wait time will allow for a quicker reproducing of the issue, however if the
data is not seen immediately the program can be killed and executed again.
The dispatch count is observed to be incremented in the JMX console when the
data is not printed. The data will be printed if the topic is populated through
another client connection publishing data even if the 'retroactive' data was
not received.
I believe this issue is in the ActiveMQ-CPP library as other clients reliably
receive this data through other connections. if the CPP client is changed to
use the synchronous blocking receive method as opposed to the asynchronous
callbacks in the consumer the data is received as expected.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)