Active MQ VirtualTopic - сообщения остаются в очереди, даже если они отправляются во все определенные / связанные очереди - PullRequest
0 голосов
/ 10 сентября 2018

Используя Active MQ 5.15.4 и следуя документу от http://activemq.apache.org/virtual-destinations.html, при отправке в VirtualTopic, сообщения отправляются во все связанные очереди, но они никогда не удаляются из виртуальной темы, в которую они были отправлены.

Нужно ли вручную чистить виртуальную тему?

В чем причина хранения сообщений в теме? Это то, что они могут быть пересланы позже? Но когда новая очередь связывается с виртуальной темой, все существующие сообщения в очереди не отправляются в нее.

Не проверяли это, но соответствуют ли сообщения в подключенных очередях флагу сохранения для сообщения, отправленного в виртуальной теме?

1 Ответ

0 голосов
/ 11 сентября 2018

Если в самой Виртуальной теме нет потребителя, то единственные оставленные сообщения - это те, которые помещаются в очереди подписки для потребителей Виртуальной темы.Например, если вы отправляете в VirtualTopic.FOO, и нет подписок на эту тему или именованные очереди потребителя виртуальной темы, такие как Consumer.A.VirtualTopic.FOO, то сообщение будет полностью отброшено.Если в какой-то момент в очереди потребителя находился какой-то потребитель, то сообщения, отправленные в тему, затем направляются в очередь, но сама тема ничего не сохраняет.

Если в самой Виртуальной теме есть потребители, они будут получать сообщения, отправленные им или удерживаемые для них, до настроенного лимита ожидающих сообщений и т. Д. И т. Д.

Потребительские очереди будут учитывать постоянное значениеуказанный MessageProducer, который отправил их.

...