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="&gt;">
> >           <pendingMessageLimitStrategy>
> >             <constantPendingMessageLimitStrategy limit="1000"/>
> >           </pendingMessageLimitStrategy>
> >         </policyEntry>
> >         <policyEntry advisoryForConsumed="true"
> advisoryForDelivery="true"
> > gcInactiveDestinations="true" inactiveTimoutBeforeGC="604800000"
> > includeBodyForAdvisory="true" memoryLimit="512MB" queue="&gt;"
> > 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.&gt;" prefix="Consumer.*."/>
> >         <virtualTopic name="VirtualTopicSB.&gt;" 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="&gt;"/>
> >         <topic physicalName="VirtualTopic.&gt;"/>
> >         <topic physicalName="VirtualTopicSB.&gt;"/>
> >       </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="&gt;"/>
> >       </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="&gt;.DEV"/>
> >         <queue physicalName="&gt;.Dev"/>
> >         <queue physicalName="&gt;.dev"/>
> >       </dynamicallyIncludedDestinations>
> >       <excludedDestinations>
> >         <topic physicalName="&gt;"/>
> >       </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
>
>
>

Reply via email to