activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lekan Omotayo (JIRA)" <j...@apache.org>
Subject [jira] Updated: (AMQ-1548) Mutlicast discovery with persistent topics leads to errors
Date Thu, 09 Sep 2010 17:49:40 GMT

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

Lekan Omotayo updated AMQ-1548:
-------------------------------

    Attachment: activemq-broker.xml
                activemq-broker2.xml
                jms configuration.txt

I have two brokers A & B.

I have attached both activemq config file, my jms provider configuration in camel and the
log that comes from servicemix.

Whenever I send a request from camel into a queue in brokerA, which a consumer in brokerB
is listening to, the request never gets to the consumer, instead it goes into DLQ.retailpay.

It appends DLQ to the queue because somewhere in my activemq config file, I ad specify this:

	<destinationPolicy xmlns="http://activemq.apache.org/schema/core">
	    <policyMap>
		<policyEntries>
		    <policyEntry queue=">" producerFlowControl="true" memoryLimit="20mb">
			<deadLetterStrategy>
			  <individualDeadLetterStrategy queuePrefix="DLQ." useQueueForQueueMessages="true" />
			</deadLetterStrategy>
		    </policyEntry>
		    <policyEntry topic=">" producerFlowControl="true" memoryLimit="20mb">
		    </policyEntry>
		</policyEntries>
	    </policyMap>
	</destinationPolicy>
	
Its quite strange, because when I insert message into brokerA's queue from activemq web console,
the consumer listening for the message on the queue in brokerB gets the message and samething
when I sent the message from "ant producer -Durl=tcp://broker1:61616 -Dtopic=false -Dsubject=myqueue
-Ddurable=true -Dmax=1"

> Mutlicast discovery with persistent topics leads to errors
> ----------------------------------------------------------
>
>                 Key: AMQ-1548
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1548
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker, Connector
>    Affects Versions: 5.0.0
>         Environment: 2 Ubuntu machines running virualized named activemq1 and activemq2
set up for multicast discovery.  Broker names are set to be the same as the host name
>            Reporter: Jeff Ward
>             Fix For: NEEDS_REVIEWED
>
>         Attachments: activemq-broker.xml, activemq-broker2.xml, jms configuration.txt
>
>
> After bringing the brokers up and down a few times, I'll get the following errors:
> INFO  DemandForwardingBridge         - Network connection between vm://activemq2#0 and
tcp://activemq1/192.168.2.129:61616(activemq1) has been established.
> ERROR Service                        - Async error occurred: javax.jms.JMSException:
Durable consumer is in use for client: NC_activemq1_inboundactivemq2 and subscriptionName:
activemq2_fof
> javax.jms.JMSException: Durable consumer is in use for client: NC_activemq1_inboundactivemq2
and subscriptionName: activemq2_fof
>         at org.apache.activemq.broker.region.TopicRegion.addConsumer(TopicRegion.java:75)
>         at org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:338)
>         at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:85)
>         at org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:80)
>         at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:85)
>         at org.apache.activemq.broker.MutableBrokerFilter.addConsumer(MutableBrokerFilter.java:95)
>         at org.apache.activemq.broker.TransportConnection.processAddConsumer(TransportConnection.java:525)
>         at org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:334)
>         at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:281)
>         at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:178)
>         at org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:100)
>         at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:67)
>         at org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:202)
>         at org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:98)
>         at org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRunner.java:36)
> INFO  DemandForwardingBridge         - Network connection between vm://activemq2#0 and
tcp://activemq1/192.168.2.129:61616 shutdown due to a local error: javax.jms.JMSException:
Durable consumer is in use for client: NC_activemq1_inboundactivemq2 and subscriptionName:
activemq2_fof
> INFO  TransportConnector             - Connector vm://activemq2 Stopped
> INFO  DemandForwardingBridge         - activemq2 bridge to activemq1 stopped
> My two servers are activemq1 and activemq2.  The queue is specified in the activemq.xml
using:
> <destinations>
>         <topic physicalName="fof" />
> </destinations>
> Through debugging, I tracked this down to a race condition between the listening port
(61616) and the created port (incremental) creating the connection.  In the one case, it creates
a durable topic, in the other it doesn't (I can't remember which is which).  Regardless, when
the connection fails (or is shutdown) the durable topic isn't stopped, and thus the reconnection
fails.

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


Mime
View raw message