Details
Description
Env:
ActiveMQ version: 5.15.0
8 ActiveMQ Broker to form a mesh topology with "duplex=false messageTTL=-1 consumerTTL=1". See:
<networkConnectors>
<networkConnector uri="static:(tcp://ip1:61616,tcp://ip2:61616,...)" duplex="false" messageTTL="-1" dynamicOnly="false" />
</networkConnectors>
8000 clients are connected to brokers using failover:(tcp://ip1:61616,ip2:61616,ip3:61616,...). These clients are non-durable subscribers subscribe to Topics according to there IP addresses.
For example: client 192.168.10.1 subscribes to TOPIC://VLAN.192.168.10
In this case, I got about 200 topics in my ActiveMQ broker cluster.
The problem is demand forward bridges where not created <b>occasionally</b>. For example:
Client 192.168.10.1 is connecting to Broker A and subscribing TOPIC://VLAN.192.168.10.
Producer is connecting to Broker B and sending messages to TOPIC://VLAN.192.168.10.
Normally client can receive message, which are sent to Broker B by the producer, from Broker A since A and B are in the same cluster.
However, I found some of the clients in Broker A cannot receive any message. When checking the subscribers of the topic, I found the bridge to Broker B is missing.
I realize that whether the demand forward bridge is created depending on advisory consumer messages. So I try to receive ConsumerInfo of the client from "ActiveMQ.Advisory.Consumer.VLAN.192.168.10" and resend this ConsumerInfo message to the same topic "ActiveMQ.Advisory.Consumer.VLAN.192.168.10".
Then the client could receive messages correctly.