Does anyone have an example of a declare.queue statement in a Shovel config
that passes arguments, like x-ha-policy?

Elias
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20120203/35967e3a/attachment.htm>

Search Discussions

  • Lance Herron at Feb 7, 2012 at 5:04 pm
    Hello all, I'm also looking for an example of Shovel with x-ha-policy.
    Looks like I'm getting access_refused errors connecting to the destination
    queue because I'm missing this parameter. Is this a supported
    configuration?

    Thanks
    -------------- next part --------------
    An HTML attachment was scrubbed...
    URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20120207/e03eac8e/attachment.htm>
  • Jerry Kuch at Feb 22, 2012 at 3:24 am
    Hi, Lance and Elias...

    As you've surmised, the access_refused errors you're seeing are to be
    expected when you try to declare an already existing queue or exchange
    whose properties don't 100% match what you're now asking for. To
    avoid the problem, you'll need to make sure all of the easy fields in
    the Shovel config's declaration of the queue are exactly equal and
    then deal with the optional arguments list which requires a bit of
    care to encode.

    The arguments list can be a bit tricky since it ultimately gets passed
    through to the RabbitMQ Erlang client under the covers and I'm not
    sure we document how to properly populate the arguments list with the
    appropriate structures and type annotations anywhere.

    Here are a couple of examples corresponding to x-ha-policy settings of
    "all" and "nodes". In the case of the latter you also need a list of
    nodes in the "x-ha-policy-params" argument. The "nodes" example here
    has a single node, but with a bit of care you can complete the pattern
    using your own cluster's node names... Snippets of the forms below
    will replace the 'queue.declare' sections in your Shovel config:

    Example 1: "all" mirroring

    [{'queue.declare',
    [{queue, <<"backup_orders">>},
    durable,
    {arguments, [{<<"x-ha-policy">>,longstr,<<"all">>}]}]},

    Example 2: specified "nodes" mirroring

    [{'queue.declare',
    [{queue, <<"backup_orders">>},
    durable,
    arguments, [{<<"x-ha-policy-params">>,
    array,
    [{longstr,<<"rabbit at StrongMad">>}]},
    {<<"x-ha-policy">>,longstr,<<"nodes">>}]}}]},

    The key thing to note in the "nodes" case is that the we encode the
    node's names as Erlang binaries, wrap the binaries up in tuples with
    the atom-label longstr in first position, and then store them in a list,
    tagged with the atom array.

    While looking at this I also noticed that the "working shovel config"
    example we refer to on our website probably isn't all that working
    anymore due to the auto_ack and tx_size settings it contains. I've
    let the authors of that file (and the book in which it will appear)
    know that things may have changed and that they might want to
    sanity check it...

    Best regards,
    Jerry



    Lance-9 wrote:
    Hello all, I'm also looking for an example of Shovel with x-ha-policy.
    Looks like I'm getting access_refused errors connecting to the
    destination
    queue because I'm missing this parameter. Is this a supported
    configuration?

    Thanks

    _______________________________________________
    rabbitmq-discuss mailing list
    rabbitmq-discuss at lists.rabbitmq.com
    https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
    --
    View this message in context: http://old.nabble.com/Shovel-config-example-with-declare.queue-with-a-x-ha-policy-argument--tp33258095p33368593.html
    Sent from the RabbitMQ mailing list archive at Nabble.com.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouprabbitmq-discuss @
categoriesrabbitmq
postedFeb 3, '12 at 4:30p
activeFeb 22, '12 at 3:24a
posts3
users3
websiterabbitmq.com
irc#rabbitmq

People

Translate

site design / logo © 2022 Grokbase