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

Timothy Bish closed AMQ-3240.
-----------------------------

    Resolution: Cannot Reproduce

> load balance on a VirtualTopic queue broken where there are consumers 
> subscribining to both the VT queue and VirtualTopic itself
> --------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-3240
>                 URL: https://issues.apache.org/jira/browse/AMQ-3240
>             Project: ActiveMQ
>          Issue Type: Bug
>    Affects Versions: 5.4.2
>         Environment: Linux intel chip 64 bit
> Java HotSpot 64-Bit Server
>            Reporter: joe smith
>             Fix For: AGING_TO_DIE
>
>
> Thanks for any help.  I apologize that I'm not familiar with the source code, 
> but we plan to use this feature for production deployment.
> We have a broker cluster of 4 brokers with minimum configuration.  The 
> problem seem to occur only in a clustered environment.
> We have a virtual destination for both queue consumption as well as topic 
> consumption.  E.g: a producer sends to a virtual topic 
> VirtualTopic.testtopic.  One consumer group (3 consumers) subscribe to the VT 
> as a queue: Consumer.group1.VirtualTopic.testtopic.  Anther consumer group 
> subscribes to the VirtualTopic directly: VirtualTopic.testtopic.
> Where there is no topic consumer listening on VirtualTopic.testtopic, the 
> messages are load-balanced across the queue consumers (listening on 
> Consumer.group1.VirtualTopic.testtopic) which are connected to brokers in the 
> cluster randomly.  Working correctly.  However, as soon as we connect one or 
> more consumer subscribing to the virtual topic itself 
> (VirtualTopic.testtopic), the number of messages received by queue consumer 
> did not match what the producer sent.  Sometimes the number fall short of 
> what was sent.  Most of the times the numbers received were 2 or 3 time more.
> Also, sometimes when I shutdown and reconnect the queue consumers (when no 
> more msgs were received), more messages were received again by the consumers 
> on reconnect.
> Checking the redelivered flag were 0.  However, in checking the JMS 
> Destination name for the queue consumers, it included both queue destination 
> as well as topic destination.  Not sure if that's by design.  I assume the 
> queue consumers should only receive messages addressed to the queue 
> destination.
> The topic consumers always got the exact number of messages sent by the 
> producer.
> Clients connect using failover protocol with list of broker host/port w/tcp 
> transport.  Not other parameters are used on the client provider uri.
> Broker config is default out-of-the-box config, with the following changes:
> Added:
>         <destinationInterceptors>
>             <virtualDestinationInterceptor>
>                 <virtualDestinations>
>                         <virtualTopic name="VirtualTopic.>" />
>                 </virtualDestinations>
>             </virtualDestinationInterceptor>
>         </destinationInterceptors>
> Added for clustering:
>         <networkConnectors>
>             <networkConnector 
> uri="static:(tcp://host1:61616,tcp://host2:61616,tcp://host3:61616)"
>                         conduitSubscriptions="false"
>                         dynamicOnly="true"
>                         networkTTL="4"
>                         suppressDuplicateQueueSubscriptions="true"
>                         >
>                 <excludedDestinations>
>                         <queue physicalName="Consumer.*.VirtualTopic.>"/>
>                 </excludedDestinations>
>             </networkConnector>
>         </networkConnectors>
> Modified for connection load-balancing:
>         <transportConnectors>
>             <transportConnector name="openwire" uri="tcp://0.0.0.0:61616" 
> updateClusterClients="true" rebalanceClusterClients="true" 
> updateClusterClientsOnRemove="true"/>
>         </transportConnectors>
> Everything else is default config.  I also tried with an additional transport 
> (port 62001) dedicated to the networkConnector.  The same issue still 
> occurred.  Sometimes on client failover, the client were actually 
> re-connected to the 62001 port.  Not sure if this is also a problem.
> Thanks you.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to