[
https://issues.apache.org/activemq/browse/AMQNET-248?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Timothy Bish reassigned AMQNET-248:
-----------------------------------
Assignee: Timothy Bish (was: Jim Gomes)
> Duplicate MessageID received.
> -----------------------------
>
> Key: AMQNET-248
> URL: https://issues.apache.org/activemq/browse/AMQNET-248
> Project: ActiveMQ .Net
> Issue Type: Bug
> Components: Stomp
> Affects Versions: 1.2.0
> Environment: ActiveMQ.NMS 1.2.0 Stomp Protocol
> Windows Mobile 5.x
> Compact Framework 3.5
> Reporter: Steve Higgins
> Assignee: Timothy Bish
>
> There is a bug which causes duplicate MessageIDs to be received. Note, the
> Message IDs are duplicated not the actual messages. This happens if a
> producer sends several messages to the same queue over the same session.
> Note 1: In MessageID.cs SetValue(string messageKey) the producerSequenceId is
> stripped from the original unique key when a message is received.
> {code}
> public void SetValue(string messageKey)
> {
> this.key = messageKey;
> // Parse off the sequenceId
> int p = messageKey.LastIndexOf(":");
> if(p >= 0)
> {
> producerSequenceId = Int64.Parse(messageKey.Substring(p + 1));
> messageKey = messageKey.Substring(0, p);
> }
> producerId = new ProducerId(messageKey);
> }
> {code}
> Note 2: In the Message.cs NMSMessageId get method the unique Id is
> reconstructed without the sequence id. Because the sequence id is part of
> what makes the message id itself unique, multiple received messages will now
> have the same id.
> {code}
> public string NMSMessageId
> {
> get
> {
> if(null != MessageId)
> {
> return MessageId.ProducerId.ConnectionId + ":" +
> MessageId.ProducerId.SessionId + ":" +
> MessageId.ProducerId.Value;
> }
> return String.Empty;
> }
> {code}
> Suggested Fix: The sequenceID should be added back to the MessageId in the
> above get method unless I am not seeing other potential problems.
> Better Approach: As a side note, with this approach NMS can't be used with
> any other message queue because the current implementation would force the
> other queues to construct their unique message ids the same exact way. In
> bound messages should be void of any message id formatting.
> Steve
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.