You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Gary Tully (JIRA)" <ji...@apache.org> on 2010/05/10 18:23:48 UTC

[jira] Resolved: (AMQ-2135) network of brokers distributes messages to brokers with 0 consumers with dynamicOnly=true set

     [ https://issues.apache.org/activemq/browse/AMQ-2135?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gary Tully resolved AMQ-2135.
-----------------------------

    Fix Version/s: 5.3.1
       Resolution: Fixed

making resolved post Ying's comment on the resolution. 

> network of brokers distributes messages to brokers with 0 consumers with dynamicOnly=true set
> ---------------------------------------------------------------------------------------------
>
>                 Key: AMQ-2135
>                 URL: https://issues.apache.org/activemq/browse/AMQ-2135
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.2.0
>         Environment: linux (centos 4.6) using ActiveMQ 5.2.0 binary distribution
>            Reporter: Don Hoffman
>            Assignee: Gary Tully
>             Fix For: 5.3.1
>
>         Attachments: AMQ-2135-022010.patch, AMQ-2135-Patch-03182009.patch, AMQ-2135-UnitTest.patch, AMQ2135Test.java, testamq1.log, testamq2.log, testamq3.log
>
>
> using only the example code, the 5.2.0 release can be made to distribute messages to brokers with no consumers, which remain at those brokers and are never consumed, unless a consumer later connects specifically to those brokers.
> this bug is not reproducible in 5.1.0.
> to reproduce:
> run 3 brokers.  connect a consumer to brokers 1 and 2.  connect a producer to broker 1.  not all messages produced will be received by the 2 consumers.  note that the specific brokers connected to matters for the 3-broker case.  for example, on my machine, if the producer connects to broker 2 instead of broker 1, all messages are received.  you may need to try various combinations of consumer/producer connections to reproduce the problem, but this specific setup breaks reliably for me.
> this problem becomes more pronounced and easier to reproduce as the number of brokers increases.
> specific configuration used to reproduce:
> 3 broker config xml files:
> testamq1.xml
> <beans
>   xmlns="http://www.springframework.org/schema/beans"
>   xmlns:amq="http://activemq.apache.org/schema/core"
>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
>   http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd
>   http://activemq.apache.org/camel/schema/spring http://activemq.apache.org/camel/schema/spring/camel-spring.xsd">
>   <broker brokerName="b1" xmlns="http://activemq.apache.org/schema/core" useJmx="false" advisorySupport="true">
>     <persistenceAdapter>
>       <amqPersistenceAdapter directory="activemq-data1" maxFileLength="32mb"/>
>     </persistenceAdapter>
>     <transportConnectors>
>       <transportConnector uri="tcp://localhost:61616"/>
>     </transportConnectors>
>     <networkConnectors>
>       <networkConnector uri="static://(tcp://localhost:61617,tcp://localhost:61618)" dynamicOnly="true" networkTTL="5"/>
>     </networkConnectors>
>   </broker>
> </beans>
> testamq2.xml
> <beans
>   xmlns="http://www.springframework.org/schema/beans"
>   xmlns:amq="http://activemq.apache.org/schema/core"
>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
>   http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd
>   http://activemq.apache.org/camel/schema/spring http://activemq.apache.org/camel/schema/spring/camel-spring.xsd">
>   <broker brokerName="b2" xmlns="http://activemq.apache.org/schema/core" useJmx="false" advisorySupport="true">
>     <persistenceAdapter>
>       <amqPersistenceAdapter directory="activemq-data2" maxFileLength="32mb"/>
>     </persistenceAdapter>
>     <transportConnectors>
>       <transportConnector uri="tcp://localhost:61617"/>
>     </transportConnectors>
>     <networkConnectors>
>       <networkConnector uri="static://(tcp://localhost:61616,tcp://localhost:61618)" dynamicOnly="true" networkTTL="5"/>
>     </networkConnectors>
>   </broker>
> </beans>
> testamq3.xml
> <beans
>   xmlns="http://www.springframework.org/schema/beans"
>   xmlns:amq="http://activemq.apache.org/schema/core"
>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
>   http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd
>   http://activemq.apache.org/camel/schema/spring http://activemq.apache.org/camel/schema/spring/camel-spring.xsd">
>   <broker brokerName="b3" xmlns="http://activemq.apache.org/schema/core" useJmx="false" advisorySupport="true">
>     <persistenceAdapter>
>       <amqPersistenceAdapter directory="activemq-data3" maxFileLength="32mb"/>
>     </persistenceAdapter>
>     <transportConnectors>
>       <transportConnector uri="tcp://localhost:61618"/>
>     </transportConnectors>
>     <networkConnectors>
>       <networkConnector uri="static://(tcp://localhost:61616,tcp://localhost:61617)" dynamicOnly="true" networkTTL="5"/>
>     </networkConnectors>
>   </broker>
> </beans>
> run 3 brokers:
> bin/activemq xbean:testamq1.xml
> bin/activemq xbean:testamq2.xml
> bin/activemq xbean:testamq3.xml
> run 2 consumers (from examples directory):
> ant consumer -Durl="failover:(tcp://localhost:61616)" -Dsubject="test.queue" -Dmax=100 -DsleepTime=3
> ant consumer -Durl="failover:(tcp://localhost:61617)" -Dsubject="test.queue" -Dmax=100 -DsleepTime=3
> run 1 producer (from examples directory) with 10 messages:
> ant producer -Durl="failover:(tcp://localhost:61616)" -Dsubject="test.queue" -Dmax=10
> consumers will not receive all messages.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.