We have AMQ client applications in C++ that only use topics, and for which latency is more important than guaranteed delivery. If messages were persisted in a database for a significant amount of time before they were consumed by a slow consumer, that would introduce problems of the same magnitude or worse than letting those messages be lost.
For AMQ to work the way we want, there are two places where messages may have to be explicitly dropped: the broker and the activemq-cpp. Ideally the broker would be the place were messages are usually dropped, but if for some reason the TCP connection begins to block, then the activemq-cpp library would need to drop messages. Does the current implementation of activemq-cpp do this? Can someone please provide a summary of how we should be configuring our brokers, and the transport and topic URIs to obtain what we want? We're currently using AMQ 5.3.1 but we'll probably upgrade to 5.4 soon so I am happy to take recommendations specific to 5.4. Thanks, Jim Lloyd