Hey JB, thank you! On broker 2 there is no duplex bridge defined to broker 1. Which two duplex bridges are you referring to?
Thanks, Ken On Wed, Oct 8, 2025 at 11:51 AM Jean-Baptiste Onofré <[email protected]> wrote: > Hi Ken, > > I think that the problem is that the vm endpoint is the same as you > are creating two full duplex. I guess it works if you don't use duplex > right ? > > I will try to reproduce. > > Regards > JB > > On Thu, Oct 2, 2025 at 11:10 PM Ken Liao <[email protected]> wrote: > > > > Hi, I have a question about the behaviour of network of brokers in > ActiveMQ > > Classic 5.18.7. > > > > I have two brokers connected in NoB with several duplex bridges. However, > > on start up, for NetworkConnector nc1 on broker-1, it keeps shutting down > > after start but on broker-2 the responder was able to start up correctly. > > > > ### activemq.log for Broker-1 > > > > ``` > > 2025-09-21 10:41:53,783 | INFO | Async start of > > DiscoveryNetworkConnector:nc1:BrokerService[broker-1] | > > org.apache.activemq.broker.BrokerService | NetworkConnector Start > Thread-3 > > > > 2025-09-21 10:42:23,921 | INFO | Error with pending remote brokerInfo > on: > > ssl://null:0 (Channel was inactive (no connection attempt made) for too > > (>30000) long: null) | > > org.apache.activemq.network.DemandForwardingBridgeSupport | ActiveMQ > > InactivityMonitor Worker 11 > > > > 2025-09-21 10:42:23,998 | WARN | Could not start network bridge between: > > vm://broker-1 and: ssl://<broker-2-uri> due to: connect timed out | > > org.apache.activemq.network.DiscoveryNetworkConnector | NetworkConnector > > Start Thread-0 > > > > 2025-09-21 10:42:24,011 | INFO | broker-1 Shutting down nc1 | > > org.apache.activemq.network.DemandForwardingBridgeSupport | ActiveMQ > > BrokerService[broker-1] Task-44 > > ``` > > > > ### activemq.log for Broker-2 > > > > ``` > > 2025-09-21 10:42:23,757 | WARN | Async error occurred | > > org.apache.activemq.broker.TransportConnection.Service | ActiveMQ NIO > > Worker 16677 > > 2025-09-21 10:42:25,809 | INFO | Started responder end of duplex bridge > > nc1@<broker-1-uri> | org.apache.activemq.broker.TransportConnection | > > ActiveMQ NIO Worker 16684 > > ``` > > > > > > My questions: > > > > 1. If that is the case, then the consumer on broker 1 will not be able to > > consume message from a queue in broker 2? Especially, that queue is a > > Consumer queue of a virtual topic. > > 2. However, with the responder end started, consumer on broker 2 will be > > able to consume message from a queue in broker 1? > > 2. Why would networkBridge from broker-2 -> broker-1 was able to start > but > > broker-1 -> broker-2 was shutdown almost immediately? > > > > Thank you so much!! > > > > Thanks, > > Ken > > > > > > Here are the configurations for both > > > > Broker-1 > > > > ```xml > > <broker > > advisorySupport="true" > > deleteAllMessagesOnStartup="true" > > schedulePeriodForDestinationPurge="10000" > > schedulerSupport="true" > > networkConnectorStartAsync="true" > > restartAllowed="false" > > xmlns="http://activemq.apache.org/schema/core"> > > <destinationPolicy> > > <policyMap> > > <policyEntries> > > <policyEntry advisoryForConsumed="true" > advisoryForDelivery="true" > > gcInactiveDestinations="true" inactiveTimoutBeforeGC="604800000" > > includeBodyForAdvisory="true" memoryLimit="512MB" topic=">"> > > <pendingMessageLimitStrategy> > > <constantPendingMessageLimitStrategy limit="1000"/> > > </pendingMessageLimitStrategy> > > </policyEntry> > > <policyEntry advisoryForConsumed="true" > advisoryForDelivery="true" > > gcInactiveDestinations="true" inactiveTimoutBeforeGC="604800000" > > includeBodyForAdvisory="true" memoryLimit="512MB" queue=">" > > queuePrefetch="10" reduceMemoryFootprint="true"> > > <deadLetterStrategy> > > <individualDeadLetterStrategy expiration="604800000" > > processExpired="true" queuePrefix="DLQ." > useQueueForQueueMessages="true"/> > > </deadLetterStrategy> > > <networkBridgeFilterFactory> > > <conditionalNetworkBridgeFilterFactory > > replayWhenNoConsumers="true"/> > > </networkBridgeFilterFactory> > > </policyEntry> > > </policyEntries> > > </policyMap> > > </destinationPolicy> > > > > <destinationInterceptors> > > <virtualDestinationInterceptor> > > <virtualDestinations> > > <virtualTopic name="VirtualTopic.>" prefix="Consumer.*."/> > > <virtualTopic name="VirtualTopicSB.>" prefix="ConsumerSB.*." > > selectorAware="true"/> > > </virtualDestinations> > > </virtualDestinationInterceptor> > > </destinationInterceptors> > > > > <plugins> > > <authorizationPlugin> > > <map> > > <cachedLDAPAuthorizationMap legacyGroupMapping="false" > > refreshInterval="1200000"/> > > </map> > > <map> > > <authorizationMap> > > <!-- Some authorization configuration for each queue --> > > </authorizationMap> > > </map> > > </authorizationPlugin> > > <timeStampingBrokerPlugin ttlCeiling="14400000" > > zeroExpirationOverride="14400000"/> > > <statisticsBrokerPlugin/> > > </plugins> > > > > <networkConnectors> > > <networkConnector conduitSubscriptions="true" > > decreaseNetworkConsumerPriority="true" duplex="true" name="nc1" > > prefetchSize="10" uri="static:(ssl://<uri to broker-2>)" > userName="qadmin"> > > <excludedDestinations> > > <queue physicalName=">"/> > > <topic physicalName="VirtualTopic.>"/> > > <topic physicalName="VirtualTopicSB.>"/> > > </excludedDestinations> > > </networkConnector> > > <networkConnector conduitSubscriptions="false" > > decreaseNetworkConsumerPriority="true" duplex="true" name="nc2" > > prefetchSize="10" uri="static:(ssl://<uri to broker-2>)" > userName="qadmin"> > > <excludedDestinations> > > <topic physicalName=">"/> > > </excludedDestinations> > > </networkConnector> > > <networkConnector conduitSubscriptions="false" > > decreaseNetworkConsumerPriority="false" duplex="true" name="nc3" > > prefetchSize="10" uri="static:(ssl://<uri to broker-2>)" > userName="qadmin"> > > <dynamicallyIncludedDestinations> > > <queue physicalName=">.DEV"/> > > <queue physicalName=">.Dev"/> > > <queue physicalName=">.dev"/> > > </dynamicallyIncludedDestinations> > > <excludedDestinations> > > <topic physicalName=">"/> > > </excludedDestinations> > > </networkConnector> > > > > <!-- a few other networkConnector that setup duplex bridge to > broker-2 > > that mimic the pattern above but for different sets of queues --> > > </networkConnectors> > > </broker> > > ``` > > > > Broker 2 > > > > ```xml > > <broker > > advisorySupport="true" > > deleteAllMessagesOnStartup="true" > > schedulePeriodForDestinationPurge="10000" > > schedulerSupport="true" > > networkConnectorStartAsync="true" > > restartAllowed="false" > > xmlns="http://activemq.apache.org/schema/core"> > > <!-- same destinationPolicy, plugins and destinationInterceptors > > configuration--> > > > > <!-- no network connectors because broker 1 is duplex--> > > </broker> > > ``` > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > For further information, visit: https://activemq.apache.org/contact > > >
