You might be able to use Camel routes embedded in the broker to move
messages from each topic into a single new queue.  That would preserve
message ordering even when the consumer is disconnected.

Note that I've never used embedded Camel routes, so I can't say for sure
that the approach would work, but I think it should based on what I know.
On Oct 1, 2015 2:15 PM, "artnaseef" <a...@artnaseef.com> wrote:

> First off, there are no ordering guarantees for messages across more than
> one
> destination.
>
> The closest to a workable solution I believe you'll find for needing to
> serialize the work from messages across multiple destinations, without some
> form of internal queueing in the application, would involve the use of
> composite destinations.  That is, to create a consumer of a composite
> destination that consists of all the individual destinations for which the
> application needs to consume messages.
>
> Keep in mind composite destinations introduce many complexities, so be
> careful to test with all the features of ActiveMQ in-use.
>
> Internal queueing might be the best solution to the problem.  If there's an
> issue of messages being held-up for long periods, perhaps it would be
> possible to set prefetch to 1 and have the processing push the messages
> onto
> the queue and then wait for processing of that message to complete before
> acknowledging it back to the broker.
>
> Hope this helps.
>
>
>
>
> --
> View this message in context:
> http://activemq.2283324.n4.nabble.com/Activemq-cpp-Synchronous-Receive-from-Multiple-Consumers-tp4702375p4702547.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>

Reply via email to