Hi,

We are experiencing a strange issue where we from time to time end up with a 
stale network bridge from one broker to another, where the destination broker 
does not have a connected consumer. As a result, all messages sent to this 
broker ends up being expired, and causing timeouts.

We have the following configuration on the brokers:

ActiveMQ Classic, latest version

Transport connector settings:
rebalanceClusterClients="true"
updateClusterClients="true"

Network Connector settings:
conduitSubscriptions="false"
decreaseNetworkConsumerPriority="false"
messageTTL="15"
suppressDuplicateQueueSubscriptions="true"

We are running a cluster of three brokers (network of brokers configuration, 
multicast discovery), where consumers and producers will connect to any of the 
three brokers at random.
In order to achieve an even load balancing between the consumers, we are using 
conduitSubscriptions="false" and decreaseNetworkConsumerPriority="false".

>From time to time, we end up with stale network bridges between the brokers. 
>Given three brokers: A, B and C. We have two producers, P1 and P2. We have two 
>consumers C1 and C2. Sometimes we see a scenario where
P1, C1 and C2 is connected to B, and only P1 is connected to A. When browsing 
active consumers on B, a network bridge towards A is listed, and we see 
messages being routed towards this bridge. Since A does not have any active 
consumers, the messages end up being expired on A. Even if we shut down all 
consumers on all nodes, the bridge still persist (?!).

We use ActiveMQ as the message bus between our REST layer nodes and service 
nodes, so for every message routed down a stale bridge, we experience a timeout 
in our service, which is less than optimal.

Has anyone seen anything similar before, or have any ideas to how we can avoid 
this issue?

Best regards

Reply via email to