You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Moch Sebastian <SM...@cyberport.de> on 2020/11/11 15:06:13 UTC

Strange? behaviour while using VirtualTopics with selectorAware & virtualSelectorCacheBrokerPlugin

Hello everyone,

we are using ActiveMQ 5.15.12 and use VirtualTopics with selectorAware & virtualSelectorCacheBrokerPlugin. Please see parts of the ActiveMQ.xml at the end.

I observed the following:

I have a virtual topic OrderDistribute and two consumers which consume from two different queues.
OrderDistribute.C.ConsumerA with messageSelector version=1.1.0
OrderDistribute.C.ConsumerB with message Selector version=2.0.0
Version is a JMS property set for each message sent to that virtual topic.
Messages with both versions get published to the virtual topic. Messages get pushed to the correct queues based on their version.

Now ConsumerA decides to switch to version 2.0.0 as well and changes his messageSelector from version=1.1.0 to version=2.0.0.

Observation now is that still messages with version=1.1.0 get pushed into queue OrderDistribute.C.ConsumerA but they are not consumed by application A. Messages with version=2.0.0 do not get forwarded into that queue. Even deleting and recreating the queue does not help.
Only creating a new queue by choosing a new "consumer id" helps --> OrderDistribute.C.ConsumerANew with messageSelector version=2.0.0

Is this the desired behaviour? Is there something wrong in my configuration?

Help is kindly appreciated.

Kind regards
Sebastian

Activemq.xml excerpt:
<virtualDestinationInterceptor> 
	<virtualDestinations> 
		<virtualTopic name=">" postfix=".C.*" prefix="" selectorAware="true" transactedSend="true" concurrentSend="true"/>
	</virtualDestinations>
</virtualDestinationInterceptor>

<plugins>
	<virtualSelectorCacheBrokerPlugin persistFile="${activemq.data}/selectorcache_new.data" />
</plugins>