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 17:40:00 UTC

[jira] [Commented] (ARTEMIS-1794) Confusion when auto removing a queue

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

Justin Bertram commented on ARTEMIS-1794:
-----------------------------------------

What's happening is that when the acceptor uses {{anycastPrefix=/queue/;multicastPrefix=/topic/}} and a STOMP client subscribes to {{/queue/foo}} the STOMP protocol head will create an {{ANYCAST}} address {{foo}} and an {{ANYCAST}} queue {{foo}}. Then when a STOMP client attempts to send a message to {{/topic/foo}} the broker will try to update the {{ANYCAST}} address to be {{MULTICAST}} which results in the error. There is a related bug here because the prefix isn't being stripped properly when looking up the address. However, even after that is fixed the broker will still throw an error in this case because the client is attempting to send a {{MULTICAST}} message to an {{ANYCAST}} address. If this restriction was removed the STOMP client's send operation could complete, but the broker still wouldn't route the message and it would be silently discarded (probably confusing the user).

Can you clarify your use-case here? Perhaps the broker provides the functionality you're looking for in a different way.

> Confusion when auto removing a queue
> ------------------------------------
>
>                 Key: ARTEMIS-1794
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-1794
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: STOMP
>    Affects Versions: 2.5.0
>            Reporter: Lionel Cons
>            Priority: Major
>
> I'm using the following settings to try to mimic ActiveMQ 5 STOMP destination handling:
> {code}
> <acceptor name="stomp">tcp://0.0.0.0:61613?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=STOMP;useEpoll=true;anycastPrefix=/queue/;multicastPrefix=/topic/</acceptor>
> {code}
> This works as expected in most situations.
> However, when subscribing to a queue (via {{destination:/queue/foo}}) and sending a message to an eponymous topic ({{destination:/topic/foo}}) Artemis reports a fatal error:
> {code}
> AMQ119209 Can't remove routing type ANYCAST, queues exists for address foo. Please delete queues before removing this routing type.
> {code}
> I guess this happens when it tries to auto delete things.
> Doing the opposite (subscribing to the queue and sending a message to the topic), I get the same kind of error:
> {code}
> AMQ119209 Can't remove routing type MULTICAST, queues exists for address foo. Please delete queues before removing this routing type.
> {code}



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