You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Justin Bertram (JIRA)" <ji...@apache.org> on 2018/04/11 14:31:00 UTC

[jira] [Commented] (ARTEMIS-1802) Cannot use the same name for a divert and an address

    [ https://issues.apache.org/jira/browse/ARTEMIS-1802?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16434000#comment-16434000 ] 

Justin Bertram commented on ARTEMIS-1802:
-----------------------------------------

Internally in the broker a _queue_ and _divert_ are actually the same kind of thing. They are both "bindings." In other words, both diverts and queues are _bound_ to an address; they just do different things with the messages they receive. A _queue_ receives a message sent to an address and stores it. A _divert_ receives a message sent to an address and diverts it to another address.

You might be able to achieve the semantics you're looking for with this configuration: 
{noformat}
      <addresses>
        <!-- the receiving topic "foo" -->
        <address name="foo">
          <multicast>
            <queue name="foo-test"/>
            <queue name="foo-prod"/>
          </multicast>
        </address>
        ...
      </addresses>
{noformat}
Using this configuration any message sent to the address "foo" will go into the queues "foo-test" and "foo-prod."

> Cannot use the same name for a divert and an address
> ----------------------------------------------------
>
>                 Key: ARTEMIS-1802
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-1802
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>    Affects Versions: 2.5.0
>            Reporter: Lionel Cons
>            Priority: Major
>
> I'm trying to use diverts to emulate ActiveMQ 5's virtual destinations (http://activemq.apache.org/virtual-destinations.html). The use case is a single topic ({{foo}}) bound to two queues ({{foo-test}} and {{foo-prod}}).
> The following configuration snippet almost works:
> {code}
>       <addresses>
>         <!-- the receiving topic "foo" -->
>         <address name="foo">
>           <multicast/>
>         </address>
>         <!-- the backend queue "test" -->
>         <address name="foo-test">
>           <anycast>
>             <queue name="foo-test"/>
>           </anycast>
>         </address>
>         <!-- the backend queue "prod" -->
>         <address name="foo-prod">
>           <anycast>
>             <queue name="foo-prod"/>
>           </anycast>
>         </address>
>         ...
>       </addresses>
>       <diverts>
>         <!-- the divert to copy from "foo" to "foo-test" -->
>         <divert name="foo-test">
>           <address>foo</address>
>           <forwarding-address>foo-test</forwarding-address>
>           <exclusive>false</exclusive>
>         </divert>
>         <!-- the divert to copy from "foo" to "foo-prod" -->
>         <divert name="foo-prod">
>           <address>foo</address>
>           <forwarding-address>foo-prod</forwarding-address>
>           <exclusive>false</exclusive>
>         </divert>
>       </diverts>
> {code}
> Artemis give me an error:
> {code}
> AMQ222006: Binding already exists with name foo-test, divert will not be deployed
> {code}
> Changing the divert names fixes the problem.
> Why can't I use the same name both for the queue and the divert feeding the queue?
> Since these are different kinds of objects, I should be able to reuse the same name, shouldn't I?



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)