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/07/20 15:27:00 UTC
[jira] [Commented] (ARTEMIS-1983) Usage of STOMP NACK command leads
to data loss
[ https://issues.apache.org/jira/browse/ARTEMIS-1983?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16550882#comment-16550882 ]
Justin Bertram commented on ARTEMIS-1983:
-----------------------------------------
As far as I can tell, the broker's behavior here is in accordance with the STOMP [1.1|https://stomp.github.io/stomp-specification-1.1.html#NACK] & [1.2|https://stomp.github.io/stomp-specification-1.2.html#NACK] specifications which state:
{quote}NACK is the opposite of ACK. It is used to tell the server that the client did not consume the message. The server can then either send the message to a different client, discard it, or put it in a dead letter queue. The exact behavior is server specific.
{quote}
Artemis chooses to discard the message which is valid per the specification.
> Usage of STOMP NACK command leads to data loss
> ----------------------------------------------
>
> Key: ARTEMIS-1983
> URL: https://issues.apache.org/jira/browse/ARTEMIS-1983
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Components: STOMP
> Affects Versions: 2.6.2
> Reporter: Miroslav Minárik
> Assignee: Justin Bertram
> Priority: Major
>
> Implementation of NACK command of STOMP protocol v1.1 and 1.2 causes message(s) loss. Bug is in source code in apache-artemis-2.6.2/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/v11/StompFrameHandlerV11.java in this part:
> {code}
> public StompFrame onNack(StompFrame request) {
> //this eventually means discard the message (it never be redelivered again).
> //we can consider supporting redeliver to a different sub.
> return onAck(request);
> }
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)