qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robert Godfrey <rob.j.godf...@gmail.com>
Subject Re: can't config a fanout exchange
Date Wed, 30 Sep 2009 00:19:37 GMT
And a little more digging....

Looking at how the code interprets the configuration file, versus how the
example is used in virtualhosts.xml ... it appears to me as if the example
in our release is wrong

I *think* that instead of looking like

<exchange>
    <name>test</name>
    <type>fanout</type>
    <durable>true</durable>
</exchange>

instead it should be specified as

<exchange>
    <name>test</name>
    <test>   <!-- use tag with the same name as the exchange you are
defining -->
        <type>fanout</type>
        <durable>true</durable>
    </test>
</exchange>

There is some code that says that if it doesn't find a configuration,
default to direct as the type....

I shall test this tomorrow when I'm back using a computer that's actually
capable of running the broker

Apologies,
Rob

2009/9/30 Robert Godfrey <rob.j.godfrey@gmail.com>

> Hi Mark,
>
> 2009/9/30 mARK bLOORE <mbloore@gmail.com>
>
>> Thanks for the reply, Rob, but actually I set the exchange to fanout
>> in the config file, and declared it to be fanout in my code, but the
>> broker seems to think it was configured as direct.
>>
>> If I don't configure it the code runs fine, but I would rather have it
>> already exist, so that I can publish to it without having to ensure
>> that a queue is bound to it first.
>>
>>
>>
> My apologies, I read the error message in haste.... and must have mentally
> swapped the order of "fanout" and "direct"
>
> The error code from the Java Broker says
>
> 'Attempt to redeclare exchange: test-exchange of type direct to
> fanout. [error code 530: not allowed]'
>
> This is generated by the following code inside the Java Broker:
>
> else if (!exchange.getType().equals(body.getType()))
>             {
>
>                 throw new AMQConnectionException(AMQConstant.NOT_ALLOWED,
> "Attempt to redeclare exchange: " + body.getExchange() + " of type " +
> exchange.getType() + " to " + body.getType() +".",body.getClazz(),
> body.getMethod(),body.getMajor(),body.getMinor(),null);
>             }
>
> So it appears that the config is creating a direct exchange and not a
> fanout exchange as you would expect...
>
> I'm presuming that your config:
>
>            <exchanges>
>                <exchange>
>                    <type>fanout</type>
>                    <name>test-exchange</name>
>                    <durable>true</durable>
>                </exchange>
>            <.exchanges>
>
> is not a completely accurate cut and paste (i.e. the last line is actually
> </exchanges> in the config file?)
>
> However looking at the current codebase I can see no reason why an exchange
> declared in the config would be created as direct... Can you confirm which
> release of the broker you are using?
>
> Thanks,
> Rob
>
>
>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message