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 2019/03/18 04:49:00 UTC

[jira] [Commented] (ARTEMIS-2278) Lost Message - Never Delivered - STOMP? Maybe

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

Justin Bertram commented on ARTEMIS-2278:
-----------------------------------------

How are the brokers from the two versions (i.e. 2.4.0 & 2.6.4) configured? Can you attach the broker.xml from those?

From my initial inspection of the attached logs it appears that in 2.6.4 the message you sent is being routed as multicast (i.e. using pub/sub semantics) which means since there is no subscriber the message will be discarded, and in 2.4.0 the message is being routed as anycast which means the address & queue get auto-created and the message is placed in the queue for the subscriber to retrieve once it connects.

There's been a few bugs fixed since 2.4.0 regarding message routing for STOMP so my feeling is that there was a bug in 2.4.0 that was causing the anycast routing, but it's hard to say for sure without knowing the broker configuration.

In any event, you can control the routing-type a couple of different ways:
* Set the routing-type explicitly on the message using the {{destination-type}} header. This would be {{ANYCAST}} in your case. This is discussed in [the STOMP documentation|https://activemq.apache.org/artemis/docs/latest/stomp.html] in the "Sending" section.
* Configuring a prefix on the appropriate acceptor. This is mentioned in the STOMP documentation (with a link) and discussed [here|https://activemq.apache.org/artemis/docs/latest/address-model.html#using-prefixes-to-determine-routing-type].
* Configuring the {{default-queue-routing-type}} and {{default-address-routing-type}} address setting. This is also discussed in the [Address Model documentation|https://activemq.apache.org/artemis/docs/latest/address-model.html#configuring-addresses-and-queues-via-address-settings].

> Lost Message - Never Delivered - STOMP? Maybe
> ---------------------------------------------
>
>                 Key: ARTEMIS-2278
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-2278
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: STOMP
>    Affects Versions: 2.5.0
>            Reporter: Guy Allard
>            Assignee: Justin Bertram
>            Priority: Major
>         Attachments: artnomsg.zip
>
>
> Problem Description:
> STOMP is used to SEND a message to the broker, and then SUBSCRIBE and
> receive messages. In this problem no MESSAGE frame is ever received
> from the broker (and client hangs during receive).
> What Artemis level?:
> I see this using *Artemis 2.5.0 or any of the 2.6.x series.* I have
> a 2.4.0 system that runs flawlessly.
> The attachment has:
> - a short Ruby script that recreates the problem here
> - data from a working 2.4.0 system: a) artemis.log and b) a tcpdump
> of packet traffic
> - data from a failing 2.6.4 system: a) artemis.log and b) a tcpdump
> of packet traffic
> My Thoughts:
> This seems to be STOMP related because I also have a JMS test bed that
> does not fail like this.
> However, I develop/maintain two different STOMP client libraries (one Ruby, one go).
> I see this problem in both of them.
> Guide me please. Is this a bug or am I doing something totally
> stupid.
> The attachment should be named: artnomsg.zip.
>  



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

Re: [jira] [Commented] (ARTEMIS-2278) Lost Message - Never Delivered - STOMP? Maybe

Posted by Francesco Nigro <ni...@gmail.com>.
Not sure if is relevant, but stomp (and mqtt) was wrongly using direct
delivery without supporting it ie they could have suffered many races that
could cause misbehaviours.
This has been recently addresses for the latest release.

Il lun 18 mar 2019, 05:49 Justin Bertram (JIRA) <ji...@apache.org> ha
scritto:

>
>     [
> https://issues.apache.org/jira/browse/ARTEMIS-2278?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16794717#comment-16794717
> ]
>
> Justin Bertram commented on ARTEMIS-2278:
> -----------------------------------------
>
> How are the brokers from the two versions (i.e. 2.4.0 & 2.6.4) configured?
> Can you attach the broker.xml from those?
>
> From my initial inspection of the attached logs it appears that in 2.6.4
> the message you sent is being routed as multicast (i.e. using pub/sub
> semantics) which means since there is no subscriber the message will be
> discarded, and in 2.4.0 the message is being routed as anycast which means
> the address & queue get auto-created and the message is placed in the queue
> for the subscriber to retrieve once it connects.
>
> There's been a few bugs fixed since 2.4.0 regarding message routing for
> STOMP so my feeling is that there was a bug in 2.4.0 that was causing the
> anycast routing, but it's hard to say for sure without knowing the broker
> configuration.
>
> In any event, you can control the routing-type a couple of different ways:
> * Set the routing-type explicitly on the message using the
> {{destination-type}} header. This would be {{ANYCAST}} in your case. This
> is discussed in [the STOMP documentation|
> https://activemq.apache.org/artemis/docs/latest/stomp.html] in the
> "Sending" section.
> * Configuring a prefix on the appropriate acceptor. This is mentioned in
> the STOMP documentation (with a link) and discussed [here|
> https://activemq.apache.org/artemis/docs/latest/address-model.html#using-prefixes-to-determine-routing-type
> ].
> * Configuring the {{default-queue-routing-type}} and
> {{default-address-routing-type}} address setting. This is also discussed in
> the [Address Model documentation|
> https://activemq.apache.org/artemis/docs/latest/address-model.html#configuring-addresses-and-queues-via-address-settings
> ].
>
> > Lost Message - Never Delivered - STOMP? Maybe
> > ---------------------------------------------
> >
> >                 Key: ARTEMIS-2278
> >                 URL: https://issues.apache.org/jira/browse/ARTEMIS-2278
> >             Project: ActiveMQ Artemis
> >          Issue Type: Bug
> >          Components: STOMP
> >    Affects Versions: 2.5.0
> >            Reporter: Guy Allard
> >            Assignee: Justin Bertram
> >            Priority: Major
> >         Attachments: artnomsg.zip
> >
> >
> > Problem Description:
> > STOMP is used to SEND a message to the broker, and then SUBSCRIBE and
> > receive messages. In this problem no MESSAGE frame is ever received
> > from the broker (and client hangs during receive).
> > What Artemis level?:
> > I see this using *Artemis 2.5.0 or any of the 2.6.x series.* I have
> > a 2.4.0 system that runs flawlessly.
> > The attachment has:
> > - a short Ruby script that recreates the problem here
> > - data from a working 2.4.0 system: a) artemis.log and b) a tcpdump
> > of packet traffic
> > - data from a failing 2.6.4 system: a) artemis.log and b) a tcpdump
> > of packet traffic
> > My Thoughts:
> > This seems to be STOMP related because I also have a JMS test bed that
> > does not fail like this.
> > However, I develop/maintain two different STOMP client libraries (one
> Ruby, one go).
> > I see this problem in both of them.
> > Guide me please. Is this a bug or am I doing something totally
> > stupid.
> > The attachment should be named: artnomsg.zip.
> >
>
>
>
> --
> This message was sent by Atlassian JIRA
> (v7.6.3#76005)
>