[rabbitmq-discuss] Shovel with exchange-exchange bindings

Matthew Sackman matthew at rabbitmq.com
Mon Jul 25 11:56:59 BST 2011

Hi Simone,

On Mon, Jul 25, 2011 at 09:45:09AM +0000, Busoli, Simone wrote:
> I'm trying to set up a shovel with exchange-exchange bindings to
> workaround the issue with infinite loops when configuring a symmetric
> shovel between two brokers (to achieve transparent bidirectional
> communication), but I get an error on broker startup as if the shovel
> didn't support exchange-exchange bindings.
> As suggested by Matthew some time ago on the list this is what I'm
> trying to accomplish:
>               /---------------------[ Shovel 2 ]---------------------\
>               |                                                      |
>               V                                                      |
> --->[X1]--->[X2]---->[[my queues]]        [[my queues]]<---[X2]<---[X1]<---
>      |                                                       ^
>      |                                                       |
>      \------------------[ Shovel 1 ]-------------------------/

That's a very pretty picture ;)

> But on broker startup I get  this:
> {"Kernel pid terminated",application_controller,"{application_start_failure,rabbitmq_shovel,{{invalid_shovel_configuration,test1,{invalid_parameter_value,sources,{unknown_method_name,'exchange.bind'}}},{rabbit_shovel,start,[normal,[]]}}}"}

Yup. I've just fixed this on default - if you pull from our hg repos,
update, and compile again, then you'll get it working though check the
README because a few other things have changed in the mean time (like
support for confirms has been added, and support for transactions has
been removed).

In short, the problem was that the shovel predated Rabbit's support of
AMQP 0-9-1. When 0-9-1 was added, the shovel seems to have been forced
to check only 0-8 methods. As such, it didn't have support for our
extensions to 0-9-1 (at least from configuration - the actual erlang
client being used does connect using 0-9-1 and uses those features that
we've added, such as confirms). Anyway, fixed now.

Many thanks for the bug reports - the shovel will clearly benefit!


More information about the rabbitmq-discuss mailing list