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
