You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Gordon Sim (JIRA)" <ji...@apache.org> on 2011/07/14 14:24:59 UTC

[jira] [Updated] (QPID-3356) Dynamic Federation doesn't work as expected for headers exchange

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

Gordon Sim updated QPID-3356:
-----------------------------

    Description: 
start two brokers, link amq.match using a dynamic route in one direction, start two subscribers on the destination broker (e.g two drain instances from amq.match; {link:{x-bindings:[{arguments:{source:B, x-match:any}}]}} and amq.match; {link:{x-bindings:[{arguments:{format:standard, x-match:any}}]}} respectively), you then see the following error appear on the source broker after a second or so:

error Detected two management objects with the same identifier: 0-614-1--18(org.apache.qpid.broker:binding:org.apache.qpid.broker:exchange:amq.match,org.apache.qpid.broker:queue:bridge_queue_1_a51ddbb5-bac4-4e6a-ba45-3a2e1b096858,)

Further, duplicate messages can then be received at the subscribers. E.g. send a message to the source broker that matches each subscriber and observe that the message is received twice by each of them (e.g. spout --content my-message -P format=standard -P source=B amq.match)

This appears to be due to the same binding key being used for two different subscriptions. E.g. if you changes the addresses for the drains above to: amq.match; {link:{x-bindings:[{key: key1, arguments:{source:B, x-match:any}}]}} and amq.match; {link:{x-bindings:[{key: key2, arguments:{format:standard, x-match:any}}]}} respectively, i.e. add unique keys to each, then you avoid the error and the message duplication.

  was:
start two brokers, link amq.match using a dynamic route in one direction, start two subscribers on the destination broker (e.g two drain instances from amq.match; {link:{x-bindings:[{arguments:{source:B, x-match:any}}]}} and amq.match; {link:{x-bindings:[{arguments:{format:standard, x-match:any}}]}} respectively), you then see the following error appear on the source broker after a second or so:

error Detected two management objects with the same identifier: 0-614-1--18(org.apache.qpid.broker:binding:org.apache.qpid.broker:exchange:amq.match,org.apache.qpid.broker:queue:bridge_queue_1_a51ddbb5-bac4-4e6a-ba45-3a2e1b096858,)

There also seems to be duplicate queues in place (though the management tools don't show them, I think because of the error above), such that you get duplicated messages. E.g. send a message to the source broker that matches each subscriber and observe that the message is received twice by each of them (e.g. spout --content my-message -P format=standard -P source=B amq.match)

This appears to be due to the same binding key being used for two different subscriptions. E.g. if you changes the addresses for the drains above to: amq.match; {link:{x-bindings:[{key: key1, arguments:{source:B, x-match:any}}]}} and amq.match; {link:{x-bindings:[{key: key2, arguments:{format:standard, x-match:any}}]}} respectively, i.e. add unique keys to each, then you avoid the error and the message duplication.


> Dynamic Federation doesn't work as expected for headers exchange
> ----------------------------------------------------------------
>
>                 Key: QPID-3356
>                 URL: https://issues.apache.org/jira/browse/QPID-3356
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Broker
>    Affects Versions: 0.13
>            Reporter: Gordon Sim
>
> start two brokers, link amq.match using a dynamic route in one direction, start two subscribers on the destination broker (e.g two drain instances from amq.match; {link:{x-bindings:[{arguments:{source:B, x-match:any}}]}} and amq.match; {link:{x-bindings:[{arguments:{format:standard, x-match:any}}]}} respectively), you then see the following error appear on the source broker after a second or so:
> error Detected two management objects with the same identifier: 0-614-1--18(org.apache.qpid.broker:binding:org.apache.qpid.broker:exchange:amq.match,org.apache.qpid.broker:queue:bridge_queue_1_a51ddbb5-bac4-4e6a-ba45-3a2e1b096858,)
> Further, duplicate messages can then be received at the subscribers. E.g. send a message to the source broker that matches each subscriber and observe that the message is received twice by each of them (e.g. spout --content my-message -P format=standard -P source=B amq.match)
> This appears to be due to the same binding key being used for two different subscriptions. E.g. if you changes the addresses for the drains above to: amq.match; {link:{x-bindings:[{key: key1, arguments:{source:B, x-match:any}}]}} and amq.match; {link:{x-bindings:[{key: key2, arguments:{format:standard, x-match:any}}]}} respectively, i.e. add unique keys to each, then you avoid the error and the message duplication.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org