You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by mr12345 <ma...@ymail.com> on 2011/11/17 10:51:44 UTC

NetworkOfBrokers/VirtualTopic - duplicates

AMQ 5.4

      <amq:networkConnectors>
            <amq:networkConnector
                    uri="static:(tcp://the.other.broker)"
                    conduitSubscriptions="true" duplex="false"
dynamicOnly="false"
                    suppressDuplicateQueueSubscriptions="true"
                    suppressDuplicateTopicSubscriptions="true"
                    decreaseNetworkConsumerPriority="false">
                <amq:excludedDestinations>
                    <amq:queue physicalName="Consumer.*.VirtualTopic.>"/>
                </amq:excludedDestinations>
            </amq:networkConnector>
        </amq:networkConnectors>

1. Network of 2 brokers, B1 and B2
2. Single consumer C, connected via failover protocol to B1
*3. Message sent to VirtualTopic VT on B1*
4. Message received by C via Consumer.C.VT queue on B1, nothing left in the
queue B1
*5. Message duplicated in Consumer.C.VT queue on B2
6. Reconnect consumer to B2 - duplicate messages delivered from B2*

similarly 

*3. Message sent to VirtualTopic VT on B2*
4. Message received by C via Consumer.C.VT queue on B1, nothing left in the
queue B1
*5. Message duplicated in Consumer.C.VT queue on B2
6. Reconnect consumer to B2 - duplicate messages delivered from B2*

conclusion

- Messages get removed only from the physical queue the consumer is
currently connected to
- Messages pile up in the queue on the broker the consumer is not currently
connected to

is this expected? I can set message expiry, but it would still be in hours,
which would introduce crazy amount of duplication.

--
View this message in context: http://activemq.2283324.n4.nabble.com/NetworkOfBrokers-VirtualTopic-duplicates-tp4079456p4079456.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Re: NetworkOfBrokers/VirtualTopic - duplicates

Posted by mr12345 <ma...@ymail.com>.
Gary,

I'm not sure if this is something that you've had in mind?

<amq:networkConnector
                    uri="static:(tcp://the.other.broker)"
                    conduitSubscriptions="true" duplex="false"
dynamicOnly="false"
                    suppressDuplicateQueueSubscriptions="true"
                    suppressDuplicateTopicSubscriptions="true"
                    decreaseNetworkConsumerPriority="false">
                <amq:excludedDestinations>
                    <amq:topic physicalName="VirtualTopic.Orders"/>
                </amq:excludedDestinations>
            </amq:networkConnector>
 
With this config, the messages sent to the broker that the consumer is not
currently connected to are not being forwarded at all. 

mr

--
View this message in context: http://activemq.2283324.n4.nabble.com/NetworkOfBrokers-VirtualTopic-duplicates-tp4079456p4080696.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Re: NetworkOfBrokers/VirtualTopic - duplicates

Posted by Gary Tully <ga...@gmail.com>.
you should exclude the topic from the network and allow the virtual
queues to propagate in this case.
There was also a recent change on trunk to make a virtual topic local only.
see: https://issues.apache.org/jira/browse/AMQ-3550

On 17 November 2011 09:51, mr12345 <ma...@ymail.com> wrote:
> AMQ 5.4
>
>      <amq:networkConnectors>
>            <amq:networkConnector
>                    uri="static:(tcp://the.other.broker)"
>                    conduitSubscriptions="true" duplex="false"
> dynamicOnly="false"
>                    suppressDuplicateQueueSubscriptions="true"
>                    suppressDuplicateTopicSubscriptions="true"
>                    decreaseNetworkConsumerPriority="false">
>                <amq:excludedDestinations>
>                    <amq:queue physicalName="Consumer.*.VirtualTopic.>"/>
>                </amq:excludedDestinations>
>            </amq:networkConnector>
>        </amq:networkConnectors>
>
> 1. Network of 2 brokers, B1 and B2
> 2. Single consumer C, connected via failover protocol to B1
> *3. Message sent to VirtualTopic VT on B1*
> 4. Message received by C via Consumer.C.VT queue on B1, nothing left in the
> queue B1
> *5. Message duplicated in Consumer.C.VT queue on B2
> 6. Reconnect consumer to B2 - duplicate messages delivered from B2*
>
> similarly
>
> *3. Message sent to VirtualTopic VT on B2*
> 4. Message received by C via Consumer.C.VT queue on B1, nothing left in the
> queue B1
> *5. Message duplicated in Consumer.C.VT queue on B2
> 6. Reconnect consumer to B2 - duplicate messages delivered from B2*
>
> conclusion
>
> - Messages get removed only from the physical queue the consumer is
> currently connected to
> - Messages pile up in the queue on the broker the consumer is not currently
> connected to
>
> is this expected? I can set message expiry, but it would still be in hours,
> which would introduce crazy amount of duplication.
>
> --
> View this message in context: http://activemq.2283324.n4.nabble.com/NetworkOfBrokers-VirtualTopic-duplicates-tp4079456p4079456.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>



-- 
http://fusesource.com
http://blog.garytully.com