[
https://issues.apache.org/activemq/browse/AMQ-2135?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=58248#action_58248
]
ying commented on AMQ-2135:
---------------------------
try suppressDuplicateQueueSubscriptions="true" on the networkConnector in the
conf, this issue seems fixed from 5.3 see
http://activemq.apache.org/networks-of-brokers.html by default this attribute
is false so you will still experience stuck message on a network of broker
bridged by multicast
> 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
> 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.