Hello,

I have a configuration where one broker builds network connections to other
brokers. Some of the queues have to be two-way (duplex="true") and some have
to be one-way (duplex="false"). For the network connector configuration, see
below. The ActiveMQ version is 5.14.5.

The goal is that queue1 and topic1 are visible in all brokers, since the
consumer is connected to broker1, the producers to broker2 and broker3. For
the queues with the name queue2.<ID>, the producer is connected to broker1,
the consumers to broker2 or broker3. This bridge has duplex="false", because
these queues should be visible in broker1 and the broker to which the
consumer is connected, but not the other broker. E.g.: The consumer for
queue2.abc is in broker2, so this queue should only be visible in broker1
(where the producer is) and broker2, the consumer for queue2.edf is in
broker3, so this one should only be visible in broker1 and broker3.

Now the problem: when sending a message to queue2.abc, sometimes it arrives
at broker2 and is correctly consumerd there. But sometimes the message
arrives at broker3, and the Web console of broker3 shows that queue2.abc is
created there and a message enqueued. Although the queue has zero consumers,
after few seconds it is consumed from there, but nothing else happens.
Possibly, the message goes to broker2 (where it originally was meant to go),
but then dies due to networkTTL="3".

When I used a dynamic bridge and dynamicallyIncludedDestinations and
activate the advisorySupport for all involved brokers, all works correctly.

So the question is whether with static bridges, the duplex="false" clause
should work. With this, queue2.abc should never be synced to broker3, but
obviously the messages appear at broker3 anyways.

Regards,
Jochen


Network connector configuration snippet from activemq.xml of broker1 (for
the test configuration, all brokers are running on the same host in docker
containers with 61616 mapped to different ports):

<networkConnectors>
    <networkConnector
uri="static:(failover:(tcp://myhost:62616)?maxReconnectAttempts=0)"
                        name="broker1_broker2_duplex"
        duplex="true"
        networkTTL="3"
        staticBridge="true">
        <staticallyIncludedDestinations>
            <queue physicalName="queue1"/>
            <topic physicalName="topic1"/>
        </staticallyIncludedDestinations>
    </networkConnector>
    
    <networkConnector
uri="static:(failover:(tcp://myhost:62616)?maxReconnectAttempts=0)"
                        name="broker1_broker2_simplex"
        duplex="false"
        networkTTL="3"
        staticBridge="true">
        <staticallyIncludedDestinations>
                <queue physicalName="queue2.>"/>
        </staticallyIncludedDestinations>
    </networkConnector>

    <networkConnector
uri="static:(failover:(tcp://myhost:63616)?maxReconnectAttempts=0)"
                        name="broker1_broker3_duplex"
        duplex="true"
        networkTTL="3"
        staticBridge="true">
        <staticallyIncludedDestinations>
            <queue physicalName="queue1"/>
            <topic physicalName="topic1"/>
        </staticallyIncludedDestinations>
    </networkConnector>
    
    <networkConnector
uri="static:(failover:(tcp://myhost:63616)?maxReconnectAttempts=0)"
                        name="broker1_broker3_simplex"
        duplex="false"
        networkTTL="3"
        staticBridge="true">
        <staticallyIncludedDestinations>
                <queue physicalName="queue2.>"/>
        </staticallyIncludedDestinations>
    </networkConnector>
</networkConnectors>






--
View this message in context: 
http://activemq.2283324.n4.nabble.com/Network-of-brokers-problem-with-duplex-false-for-static-bridges-tp4727986.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to