You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "David Johle (JIRA)" <ji...@apache.org> on 2013/07/08 19:13:53 UTC

[jira] [Comment Edited] (AMQ-4223) Messages being distributed to exclusive consumers!

    [ https://issues.apache.org/jira/browse/AMQ-4223?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13702112#comment-13702112 ] 

David Johle edited comment on AMQ-4223 at 7/8/13 5:12 PM:
----------------------------------------------------------

I noticed something else today that may be related to this issue..

I connected to each of my brokers via JMX and was browsing the tree of MBeans under org.apache.activemq -> Broker -> (brokername) -> Queue.  For my application there are many queues, of which 5 of them behave as described above using exclusive consumers.  Viewing the attributes of the queues From one of the brokers I will see the Options has a value of "consumer.exclusive=true" on each Queue, whereas on the other broker I see 4 out of 5 have an empty string for that value.  The one that is different?  Well it also has the "consumer.exclusive=true" value there as well.  And it just so happens that the particular part of my application suffering from this bug at the moment is precisely that which shows this discrepancy.

-deleted-
When everything is working smoothly, I only see the "consumer.exclusive=true" listed in the options of the Queue which has the consumer that all messages are going to.  Thus, when more than one broker lists the queue with that option, they are not in agreement about where the messages go, and I end up with the lack of exclusivity.
-deleted-
(Upon further testing, the above statement didn't hold true.  I still saw it fail when it was consistent with other Queues.  And honestly with my limited nowledge of the AMQ guts, I'd expect ALL of them to show the option set on ALL brokers.

                
      was (Author: djohle):
    I noticed something else today that may be related to this issue..

I connected to each of my brokers via JMX and was browsing the tree of MBeans under org.apache.activemq -> Broker -> (brokername) -> Queue.  For my application there are many queues, of which 5 of them behave as described above using exclusive consumers.  Viewing the attributes of the queues From one of the brokers I will see the Options has a value of "consumer.exclusive=true" on each Queue, whereas on the other broker I see 4 out of 5 have an empty string for that value.  The one that is different?  Well it also has the "consumer.exclusive=true" value there as well.  And it just so happens that the particular part of my application suffering from this bug at the moment is precisely that which shows this discrepancy.

When everything is working smoothly, I only see the "consumer.exclusive=true" listed in the options of the Queue which has the consumer that all messages are going to.  Thus, when more than one broker lists the queue with that option, they are not in agreement about where the messages go, and I end up with the lack of exclusivity.

I hope this helps narrow down where the problem occurs.
                  
> Messages being distributed to exclusive consumers!
> --------------------------------------------------
>
>                 Key: AMQ-4223
>                 URL: https://issues.apache.org/jira/browse/AMQ-4223
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.6.0, 5.7.0, 5.8.0
>         Environment: RHEL5, Java 1.6
>            Reporter: David Johle
>
> Now that AMQ-3664 is out of the way I thought I could turn on optimizeAcknowledge back on as long as I gave it some decent timeOut & scheduledAckInterval values.
> Well, it turns out the behavior I was seeing still happens, and I think now it's clearer that it is something else, just was partially masked by that other issue.
> My configuration is a "network of brokers" two brokers with a producer on each one, and a consumer on each one.  The consumers are set up with exclusive=true as their part of my application is an "aggregation" step.  I'm using the exclusive mode to ensure that only one of them receives all the messages, and the other is essentially a standby/backup in case the first one is offline.
> When I have optimizeAcknowlege enabled, I see a situation where it is distributing (fairly equally, in fact) the messages to both of the consumers.  When I set that to false, all the messages funnel into the currently active consumer as expected.
> I cannot find anything that says these are incompatible features, and cannot figure out what it is that causes this behavior.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira