[jira] Created: (AMQNET-221) Should be able to max out retries on a message and then sent to dead letter queue

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

[jira] Created: (AMQNET-221) Should be able to max out retries on a message and then sent to dead letter queue

JIRA jira+amqnet@apache.org
Should be able to max out retries on a message and then sent to dead letter queue
---------------------------------------------------------------------------------

                 Key: AMQNET-221
                 URL: https://issues.apache.org/activemq/browse/AMQNET-221
             Project: ActiveMQ .Net
          Issue Type: Bug
          Components: NMS
    Affects Versions: 1.2.0
         Environment: ActiveMQ 1.2
            Reporter: Mark Gellings
            Assignee: Jim Gomes
             Fix For: 1.2.0


Using AcknowledgementMode.ClientAcknowledge, after exhausting all of the retries of a message the message remains in the original queue.

With v1.1 message is sent to the DLQ.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Updated: (AMQNET-221) Should be able to max out retries on a message and then sent to dead letter queue

JIRA jira+amqnet@apache.org

     [ https://issues.apache.org/activemq/browse/AMQNET-221?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Timothy Bish updated AMQNET-221:
--------------------------------

    Fix Version/s:     (was: 1.2.0)

Please provide a sample test case demonstrating the issue,

> Should be able to max out retries on a message and then sent to dead letter queue
> ---------------------------------------------------------------------------------
>
>                 Key: AMQNET-221
>                 URL: https://issues.apache.org/activemq/browse/AMQNET-221
>             Project: ActiveMQ .Net
>          Issue Type: Bug
>          Components: NMS
>    Affects Versions: 1.2.0
>         Environment: ActiveMQ 1.2
>            Reporter: Mark Gellings
>            Assignee: Jim Gomes
>
> Using AcknowledgementMode.ClientAcknowledge, after exhausting all of the retries of a message the message remains in the original queue.
> With v1.1 message is sent to the DLQ.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Commented: (AMQNET-221) Should be able to max out retries on a message and then sent to dead letter queue

JIRA jira+amqnet@apache.org
In reply to this post by JIRA jira+amqnet@apache.org

    [ https://issues.apache.org/activemq/browse/AMQNET-221?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=56383#action_56383 ]

Mark Gellings commented on AMQNET-221:
--------------------------------------

This message remaining in the queue is also redelivered the next time a session is established.  It is redelivered again the number of times specified in the redelivery policy.

> Should be able to max out retries on a message and then sent to dead letter queue
> ---------------------------------------------------------------------------------
>
>                 Key: AMQNET-221
>                 URL: https://issues.apache.org/activemq/browse/AMQNET-221
>             Project: ActiveMQ .Net
>          Issue Type: Bug
>          Components: NMS
>    Affects Versions: 1.2.0
>         Environment: ActiveMQ 1.2
>            Reporter: Mark Gellings
>            Assignee: Jim Gomes
>
> Using AcknowledgementMode.ClientAcknowledge, after exhausting all of the retries of a message the message remains in the original queue.
> With v1.1 message is sent to the DLQ.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Commented: (AMQNET-221) Should be able to max out retries on a message and then sent to dead letter queue

JIRA jira+amqnet@apache.org
In reply to this post by JIRA jira+amqnet@apache.org

    [ https://issues.apache.org/activemq/browse/AMQNET-221?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=56399#action_56399 ]

Mark Gellings commented on AMQNET-221:
--------------------------------------

I've done some more troubleshooting and the issue is the ActiveMQTextMessage.Text property can't be set on a message being consumed in v1.2.  With v1.1 this was possible.  Now NMS ActiveMQ throws back:

?e.Message
"Message is in Read-Only mode."
?e.StackTrace
"   at Apache.NMS.ActiveMQ.Commands.ActiveMQMessage.FailIfReadOnlyBody()\r\n   at Apache.NMS.ActiveMQ.Commands.ActiveMQTextMessage.set_Text(String value)\r\n   at Quad.NMS.ActiveMQTextMessageExtensions.ToJson(ActiveMQTextMessage msg, Object list) in C:\\WIP\\QuadNMS\\src\\NMS\\ActiveMQTextMessageExtensions.cs:line 36\r\n   at Quad.NMS.ClientAcknowledgementHandler.GetSender(ActiveMQTextMessage concreteMessage, ISession session, Int32 redeliveredCount) in C:\\WIP\\QuadNMS\\src\\NMS\\ClientAcknowledgementHandler.cs:line 125\r\n   at Quad.NMS.ClientAcknowledgementHandler.Execute(Exception exception, ISession session, IMessage message) in C:\\WIP\\QuadNMS\\src\\NMS\\ClientAcknowledgementHandler.cs:line 56\r\n   at Quad.NMS.AcknowledgementHandler.Execute(ISession session, IMessage message, Exception exception) in C:\\WIP\\QuadNMS\\src\\NMS\\AcknowledgementHandler.cs:line 73\r\n   at Quad.NMS.Listener`1.OnMessage(IMessage message) in C:\\WIP\\QuadNMS\\src\\NMS\\Listener.cs:line 257"

We have some logic built into our NMS framework (which sits on top of NMS ActiveMQ) to enhance redelivery logic with ClientAcknowledgement mode.  We modify a message's text before sending it to the DLQ.  We reuse the same message in order to preserve its properties as they were originally set by the producer.

I'd have to think about how we can get around this.  I'm sure there's a good reason behind this change but it is breaking...what's the reasoning?

> Should be able to max out retries on a message and then sent to dead letter queue
> ---------------------------------------------------------------------------------
>
>                 Key: AMQNET-221
>                 URL: https://issues.apache.org/activemq/browse/AMQNET-221
>             Project: ActiveMQ .Net
>          Issue Type: Bug
>          Components: NMS
>    Affects Versions: 1.2.0
>         Environment: ActiveMQ 1.2
>            Reporter: Mark Gellings
>            Assignee: Jim Gomes
>
> Using AcknowledgementMode.ClientAcknowledge, after exhausting all of the retries of a message the message remains in the original queue.
> With v1.1 message is sent to the DLQ.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Commented: (AMQNET-221) Should be able to max out retries on a message and then sent to dead letter queue

JIRA jira+amqnet@apache.org
In reply to this post by JIRA jira+amqnet@apache.org

    [ https://issues.apache.org/activemq/browse/AMQNET-221?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=56401#action_56401 ]

Timothy Bish commented on AMQNET-221:
-------------------------------------

The properties and bodies of received messages are always marked as read-only when they are received by a client, if the client is going to rebroadcast the message then it can either call ClearBody if it wants to only alter the body, ClearProperties if it wishes to alter properties only.  

So in your case you could retrieve the Text of the message and then call ClearBody which will reset the message bodies state to Read / Write and then set your updated text on the message.

> Should be able to max out retries on a message and then sent to dead letter queue
> ---------------------------------------------------------------------------------
>
>                 Key: AMQNET-221
>                 URL: https://issues.apache.org/activemq/browse/AMQNET-221
>             Project: ActiveMQ .Net
>          Issue Type: Bug
>          Components: NMS
>    Affects Versions: 1.2.0
>         Environment: ActiveMQ 1.2
>            Reporter: Mark Gellings
>            Assignee: Jim Gomes
>
> Using AcknowledgementMode.ClientAcknowledge, after exhausting all of the retries of a message the message remains in the original queue.
> With v1.1 message is sent to the DLQ.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply | Threaded
Open this post in threaded view
|

[jira] Resolved: (AMQNET-221) Should be able to max out retries on a message and then sent to dead letter queue

JIRA jira+amqnet@apache.org
In reply to this post by JIRA jira+amqnet@apache.org

     [ https://issues.apache.org/activemq/browse/AMQNET-221?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mark Gellings resolved AMQNET-221.
----------------------------------

       Resolution: Fixed
    Fix Version/s: 1.2.0

Calling ClearBody did the trick.

> Should be able to max out retries on a message and then sent to dead letter queue
> ---------------------------------------------------------------------------------
>
>                 Key: AMQNET-221
>                 URL: https://issues.apache.org/activemq/browse/AMQNET-221
>             Project: ActiveMQ .Net
>          Issue Type: Bug
>          Components: NMS
>    Affects Versions: 1.2.0
>         Environment: ActiveMQ 1.2
>            Reporter: Mark Gellings
>            Assignee: Jim Gomes
>             Fix For: 1.2.0
>
>
> Using AcknowledgementMode.ClientAcknowledge, after exhausting all of the retries of a message the message remains in the original queue.
> With v1.1 message is sent to the DLQ.

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.