activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Zamir (JIRA)" <>
Subject [jira] [Commented] (AMQ-3446) Network of brokers does not pass messages when networkTTL is bigger then 1
Date Thu, 11 Aug 2011 10:39:27 GMT


Michael Zamir commented on AMQ-3446:

Nice work Victor:)

In my words:
we have 3 brokers, A, B and C.
Each of them is connected to the other in a network connector

<broker name="A" >
     <networkConnector name="toBrokerB" uri="static:(tcp://brokerB:61618" networkTTL="*2*"
     <networkConnector name="toBrokerC" uri="static:(tcp://brokerC:61618" networkTTL="*2*"

<broker name="B" >
     <networkConnector name="toBrokerA" uri="static:(tcp://brokerA:61618" networkTTL="*2*"
     <networkConnector name="toBrokerC" uri="static:(tcp://brokerC:61618" networkTTL="*2*"

<broker name="C" >
     <networkConnector name="toBrokerA" uri="static:(tcp://brokerA:61618" networkTTL="*2*"
     <networkConnector name="toBrokerB" uri="static:(tcp://brokerB:61618" networkTTL="*2*"

Client is registered on topic X into brokerA
*brokerA* then register on topic X to *broker B*
*brokerB* then register on topic X to *broker C*

Produce message to *brokerC* will work.
But then, if you stop *brokerB* and send/produce message to topic X on *brokerC*, the client
consumer won't receive the message.

> Network of brokers does not pass messages when networkTTL is bigger then 1
> --------------------------------------------------------------------------
>                 Key: AMQ-3446
>                 URL:
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.4.1, 5.4.2, 5.5.0
>            Reporter: VIctor Perepelitsky 
>              Labels: broker, network, networkBridge, networkConnector, ttl
>         Attachments:
> (Unit test is attached to prove the case)
> Given 3 brokers A, B and C.
> Each broker is connected to the others by a network bridge (so we have 3 brokers that
are connected to each other)
> The networkTTL is 2 on all network connectors.
> Start broker A and B
> Subscribe consumer on A
> Start Broker C
> Stop Broker B
> Publish message to C
> Expected result:
> The consumer that is subscribed on A receives the message
> Actual result:
> Sometimes it works and sometimes the consumer does not receive the message.
> Additional info:
> From my understanding the problem appears since a broker subscribes as a consumer to
other brokers only when there is a consumer that subscribed to this broker, but it does not
try to renew subscription to other brokers when some (another) broker in its network fails
(or stopped). 
> So we see the following situation:
> Client subscribed on topic X on A, A subscribed on topic X on B, B subscribed on topic
X on C
> When we stop B, A does not subscribe on topic X on C and the message of topic X cannot
pass from C to A.
> This BUG does not occur when networkTTL is 1 because subscription route in a network
will be not be greater then 2

This message is automatically generated by JIRA.
For more information on JIRA, see:


View raw message