81 - AMQP Topic Exhange Routing

Reported by pehughespehughes (1262046077|%O ago)

A queue is bound to a topic exchange with a wildcard, prior to a topic being created. Subsequently another queue binds to the topic exchange without a wildcard. Publishing to the topic generates a hit only on the non-wildcard binding. If the binding order is reversed (i.e. the wildcard binding occurs after the topic is created), the message is routed to both queues as expected. Is this behavior correct?

Here is a simple test that routes a message to two queues bound to a topic exhange. Only one queue receives the message

<?xml?>
<pal script="amq_pal_gen">
    <session>
        <exchange_declare exchange="worker.topic" type="topic" />
        <queue_declare queue="auto.0" />
        <queue_bind queue="auto.0" exchange="worker.topic"
            routing_key="m.*" />
        <queue_declare queue="auto.1" />
        <queue_bind queue="auto.1" exchange="worker.topic"
            routing_key="m.r" />
        <basic_content message_id="this message should arrive twice" />
        <basic_publish exchange="worker.topic" routing_key="m.r" />
        <set name="count" value="0" />
        <repeat times="10">
            <basic_get queue="auto.0" />
            <basic_arrived>
                <echo>$message_id</echo>
                <inc name="count" />
            </basic_arrived>
            <basic_get queue="auto.1" />
            <basic_arrived>
                <echo>$message_id</echo>
                <inc name="count" />
            </basic_arrived>
            <if name = "count" value = "2">
                <exit/>
            </if>
            <wait timeout="500" />    
        </repeat>
    </session>
</pal>

Tests were compiled and run on Fedora 11. I tested against Fedora 11 OpenAMQ/1.3d0 and Windows XP OpenAMQ/1.4c0 brokers.

Two pal scripts are inlcuded: pass_test and fail_test. Note that if you run pass_test then fail_test, without restarting the broker in between, fail_test fails to fail.

Attachments:

File nameFile typeSize
fail_test.palXML document text929 BytesInfo
pass_test.palXML document text929 BytesInfo

Comments

Add a New Comment

Edit | Files | Tags | Print

rating: 0+x

Who's following this issue?

pieterhpieterh
martin_sustrikmartin_sustrik
CybariteCybarite
Watch: site | category | page

Submitted by pehughespehughes

Use one of these tags to say what kind of issue it is:

  • issue - a fault in the software or the packaging or the documentation.
  • change - a change or feature request.

Use one of these tags to say what state the issue is in:

  • open - a new, open issue.
  • closed - issue has been closed.
  • rejected - the issue has been rejected.

Use one of these tags to say how urgent the issue is:

  • fatal - the issue is stopping all work.
  • urgent - it's urgent.

All open

89 - multi-threaded client connection failure (17 Nov 2012 16:28) [open]
87 - Zyre returns incomplete XML (26 Apr 2010 08:15) [open]
86 - SFL 'random(num)' macro is wrong in sfl.h (31 Mar 2010 09:23) [open]
85 - Zyre does not start on Solaris (23 Mar 2010 01:29) [open]
84 - OpenAMQ JMS - AMQTopic constructor use HEADER name and class instead of TOPIC (28 Jan 2010 17:04) [open]
83 - WireAPI: How to 'override' signal handlers? (14 Jan 2010 17:33) [open]
82 - Opf Classes Cannot Accept Default Values With Characte (06 Jan 2010 09:34) [open]
81 - AMQP Topic Exhange Routing (29 Dec 2009 00:21) [open]
80 - OpenAMQ reports malformed frame on 0-9-1 queue.unbind (20 Nov 2009 12:33) [open]
79 - AMQ Server crashing if subscribe topic is set as #.# (30 Oct 2009 06:11) [open]
78 - Error while publishing the messages faster (30 Oct 2009 05:57) [open]
77 - Tuning for latency (28 Oct 2009 16:47) [open]
76 - New user forum (28 Oct 2009 11:29) [change open]
74 - Simulaneous connect/disconnect from multiple threads crashes (03 Sep 2009 15:32) [open]
73 - Topic Exchange not sending a message to XXX.* (25 Aug 2009 21:10) [open]
72 - amq_content_basic_new() causes seg fault if not connected to broker (12 Aug 2009 23:50) [open]
71 - zyre bugs (06 Aug 2009 09:33) [open]
69 - OpenAMQ and Zyre (15 Jul 2009 11:27) [open]
68 - Change names of max and min source code macros (10 Jul 2009 16:52) [open]
67 - Server crash when multiple consumers ack on shared queue (26 Jun 2009 11:35) [open]

page 1 of 212next »

Most recent