activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From pypen <>
Subject Message redelivery when producer broker killed (without persistence)
Date Thu, 12 Oct 2017 23:08:27 GMT
I am trying to solve a problem and I am wondering if Virtual Topics provide
a solution for the problem.
I have 2 brokers in a network of brokers.
Broker A has a producer to VirtualTopic.Test and a local consumer
Consumer.A.VirtualTopic.Test (lets call it consumer A).
Broker B has a local consumer Consumer.A.VirtualTopic.Test (lets call it
consumer B).
(All clients [producers and consumers] are connected to the local brokers

Broker A and Broker B are both running, consumer A is running, consumer B is
not running.

I want to be able to kill consumer A and broker A entirely (pull the plug),
start consumer B and redeliver/process all messages that were not
acknowledged by consumer A on consumer B.

What I thought would happen (a very naive assumption) is that when a message
is produced on the VirtualTopic.Test topic, both brokers will receive the
message and when it is acknowledged by consumer A consumer B will not
receive it (basically that the topics are treated as separate topics, but
the queues as one). But the way it seems is that the message is handed from
broker A to consumer A, if consumer A does not acknowledge the message is
handed back to the broker A, then handled over to broker B and then to
consumer B. The problem is that when broker A is killed, that message is

I tried also to use a statically included destination (VirtualTopic.Test),
which seems to send copies of the messages to consumer A and consumer B so
that once consumer B starts, it will receive all messages (that did not
expire), even the ones that were acknowledged already by consumer A. (when
both consumers are running all messages are delivered to both consumers)

So, am I just missing something or are virtual topics not a solution?

Sent from:

View raw message