In my broker "B" which is the hub in the hub & spoke topology, and in
org.apache.activemq.network.ConduitBridge#addToAlreadyInterestedConsumers

There is this code:

protected boolean addToAlreadyInterestedConsumers(ConsumerInfo info) {
        // search through existing subscriptions and see if we have a match
        if (info.isNetworkSubscription()) {
            return false;
        }
        boolean matched = false;

        for (DemandSubscription ds : subscriptionMapByLocalId.values()) {
            DestinationFilter filter =
DestinationFilter.parseFilter(ds.getLocalInfo().getDestination());
            if (canConduit(ds) && filter.matches(info.getDestination())) {


I get two ConsumerInfo instances (as expected, from "C" and "D"), each of
these have isNetworkSubscription = false

On top of that, canConduit(ds) is true but
filter.matches(info.getDestination()) evaluates to false in both cases.

I would expect that when the first one comes, the subscriptionMapByLocalId
would get updated and the second one would result in a conduit. But that
does not happen.

I suspect that the glitch is in subscriptionMapByLocalId not getting updated
when it should...

Tomas



--
View this message in context: 
http://activemq.2283324.n4.nabble.com/Duplicate-messages-received-with-ActiveMQ-5-13-2-tp4728627p4729005.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to