You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "VIctor Perepelitsky (JIRA)" <ji...@apache.org> on 2011/08/11 12:23:27 UTC

[jira] [Created] (AMQ-3446) Network of brokers does not pass messages when networkTTL is bigger then 1

Network of brokers does not pass messages when networkTTL is bigger then 1
--------------------------------------------------------------------------

                 Key: AMQ-3446
                 URL: https://issues.apache.org/jira/browse/AMQ-3446
             Project: ActiveMQ
          Issue Type: Bug
          Components: Broker
    Affects Versions: 5.5.0, 5.4.2, 5.4.1
            Reporter: VIctor Perepelitsky 


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: http://www.atlassian.com/software/jira

        

[jira] [Commented] (AMQ-3446) Network of brokers does not pass messages when networkTTL is bigger then 1

Posted by "VIctor Perepelitsky (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AMQ-3446?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13083175#comment-13083175 ] 

VIctor Perepelitsky  commented on AMQ-3446:
-------------------------------------------

I've run it with trace level, but don't see something interesting.
The attached test is a full maven project that you can run within a minute and see what I mean.

May be I didn't explain it clear enough, it seems after a specific sequence of actions there is a consumer that will never receive messages from broker in the network unless a restart to the consumer (or may be specific broker) will be done. It is not a 'one message issue' but a state when messages no longer consumed. So it seems the issue https://issues.apache.org/jira/browse/AMQ-2484 is not related to this one. 


> Network of brokers does not pass messages when networkTTL is bigger then 1
> --------------------------------------------------------------------------
>
>                 Key: AMQ-3446
>                 URL: https://issues.apache.org/jira/browse/AMQ-3446
>             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: activemqTest.zip
>
>
> (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: http://www.atlassian.com/software/jira

        

[jira] [Updated] (AMQ-3446) Network of brokers does not pass messages when networkTTL is bigger then 1

Posted by "VIctor Perepelitsky (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AMQ-3446?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

VIctor Perepelitsky  updated AMQ-3446:
--------------------------------------

    Labels: broker network networkBridge networkConnector ttl  (was: )

> Network of brokers does not pass messages when networkTTL is bigger then 1
> --------------------------------------------------------------------------
>
>                 Key: AMQ-3446
>                 URL: https://issues.apache.org/jira/browse/AMQ-3446
>             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: activemqTest.zip
>
>
> (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: http://www.atlassian.com/software/jira

        

[jira] [Issue Comment Edited] (AMQ-3446) Network of brokers does not pass messages when networkTTL is bigger then 1

Posted by "Michael Zamir (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AMQ-3446?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13083057#comment-13083057 ] 

Michael Zamir edited comment on AMQ-3446 at 8/11/11 1:10 PM:
-------------------------------------------------------------

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>

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

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



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*


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


      was (Author: michzem):
    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>

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

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



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: https://issues.apache.org/jira/browse/AMQ-3446
>             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: activemqTest.zip
>
>
> (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: http://www.atlassian.com/software/jira

        

[jira] [Issue Comment Edited] (AMQ-3446) Network of brokers does not pass messages when networkTTL is bigger then 1

Posted by "Michael Zamir (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AMQ-3446?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13083057#comment-13083057 ] 

Michael Zamir edited comment on AMQ-3446 at 8/11/11 1:10 PM:
-------------------------------------------------------------

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>

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

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



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*


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



      was (Author: michzem):
    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>

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

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



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*


If you produce message on topic *X* to *brokerC* , the client consumer will receive the message.
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: https://issues.apache.org/jira/browse/AMQ-3446
>             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: activemqTest.zip
>
>
> (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: http://www.atlassian.com/software/jira

        

[jira] [Updated] (AMQ-3446) Network of brokers does not pass messages when networkTTL is bigger then 1

Posted by "VIctor Perepelitsky (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AMQ-3446?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

VIctor Perepelitsky  updated AMQ-3446:
--------------------------------------

    Description: 
(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





  was:
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






> Network of brokers does not pass messages when networkTTL is bigger then 1
> --------------------------------------------------------------------------
>
>                 Key: AMQ-3446
>                 URL: https://issues.apache.org/jira/browse/AMQ-3446
>             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: activemqTest.zip
>
>
> (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: http://www.atlassian.com/software/jira

        

[jira] [Updated] (AMQ-3446) Network of brokers does not pass messages when networkTTL is bigger then 1

Posted by "VIctor Perepelitsky (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AMQ-3446?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

VIctor Perepelitsky  updated AMQ-3446:
--------------------------------------

    Attachment: activemqTest.zip

run 
mvn test 
or 
mvn -Dtest=NetworkOfBrokersTest test

NetworkOfBrokersTest shows that ttl1 works when ttl2 failes

> Network of brokers does not pass messages when networkTTL is bigger then 1
> --------------------------------------------------------------------------
>
>                 Key: AMQ-3446
>                 URL: https://issues.apache.org/jira/browse/AMQ-3446
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.4.1, 5.4.2, 5.5.0
>            Reporter: VIctor Perepelitsky 
>         Attachments: activemqTest.zip
>
>
> 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: http://www.atlassian.com/software/jira

        

[jira] [Commented] (AMQ-3446) Network of brokers does not pass messages when networkTTL is bigger then 1

Posted by "Gary Tully (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AMQ-3446?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13083118#comment-13083118 ] 

Gary Tully commented on AMQ-3446:
---------------------------------

have you run your test case with full trace level logging, that will show you the message dispatch and the implementation of the ttl limits in the network bridges.
Also have a peek at: https://issues.apache.org/jira/browse/AMQ-2484

> Network of brokers does not pass messages when networkTTL is bigger then 1
> --------------------------------------------------------------------------
>
>                 Key: AMQ-3446
>                 URL: https://issues.apache.org/jira/browse/AMQ-3446
>             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: activemqTest.zip
>
>
> (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: http://www.atlassian.com/software/jira

        

[jira] [Commented] (AMQ-3446) Network of brokers does not pass messages when networkTTL is bigger then 1

Posted by "Michael Zamir (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AMQ-3446?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13083057#comment-13083057 ] 

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>

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

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



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: https://issues.apache.org/jira/browse/AMQ-3446
>             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: activemqTest.zip
>
>
> (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: http://www.atlassian.com/software/jira