2009/9/30 Jonathan Robie <[email protected]>:
> Hmmm, the markup in the "wrong" configuration file is a lot more
> straightforward.
>
> I find it confusing to use the name of the exchange is used as both data and
> metadata (element content and the name of an element).

Indeed and it makes it very difficult it validate, AIUI XML parsers
can't validate XML with dynamicly created elements.

How does the CPP broker do it.. starting to make steps to move towards
a single configuration file format would be great.

Martin

> Jonathan
>
> 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 <[email protected]>
>
>> Hi Mark,
>>
>> 2009/9/30 mARK bLOORE <[email protected]>
>>
>>> 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
>>
>>
>>
>>
>>
>
>
> ---------------------------------------------------------------------
> Apache Qpid - AMQP Messaging Implementation
> Project:      http://qpid.apache.org
> Use/Interact: mailto:[email protected]
>



-- 
Martin Ritchie

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to