You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Alex Rudyy (Created) (JIRA)" <ji...@apache.org> on 2011/11/23 17:43:40 UTC

[jira] [Created] (QPID-3642) Implement Dead Letter Queue functionality

Implement Dead Letter Queue functionality
-----------------------------------------

                 Key: QPID-3642
                 URL: https://issues.apache.org/jira/browse/QPID-3642
             Project: Qpid
          Issue Type: New Feature
          Components: Java Broker
            Reporter: Alex Rudyy
            Assignee: Alex Rudyy
             Fix For: 0.15


Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Assigned] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Keith Wall (Assigned) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Keith Wall reassigned QPID-3642:
--------------------------------

    Assignee: Alex Rudyy  (was: Keith Wall)
    
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker, Java Client
>            Reporter: Alex Rudyy
>            Assignee: Alex Rudyy
>             Fix For: 0.15
>
>         Attachments: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Updated] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Alex Rudyy (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Rudyy updated QPID-3642:
-----------------------------

    Attachment:     (was: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch)
    
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker, Java Client
>            Reporter: Alex Rudyy
>            Assignee: Alex Rudyy
>             Fix For: 0.15
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Issue Comment Edited] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Keith Wall (Issue Comment Edited) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13157187#comment-13157187 ] 

Keith Wall edited comment on QPID-3642 at 11/25/11 3:19 PM:
------------------------------------------------------------

Hi Alex/Andy

My only comment is that AMQBrokerManagerMBean#createNewQueue has been changed to chain tyhe AMQException to the JMException.  It is likely this will cause a unmarshall exception on the client as the client wont have the class. No other comments.

cheers Keith
                
      was (Author: k-wall):
    Hi Alex/Andy

My only comment is that AMQBrokerManagerMBean#createNewQueue has been unchanged to chain an AMQException to the JMException.  It is likely this will cause a unmarshall exception on the client as the client wont have the class. No other comments.

cheers Keith
                  
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker, Java Client
>            Reporter: Alex Rudyy
>            Assignee: Alex Rudyy
>             Fix For: 0.15
>
>         Attachments: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch, 0002-QPID-3642-QPID-3640-Add-Dead-Letter-Queue-functional.patch
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Updated] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Alex Rudyy (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Rudyy updated QPID-3642:
-----------------------------

    Attachment:     (was: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch)
    
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker
>            Reporter: Alex Rudyy
>            Assignee: Keith Wall
>             Fix For: 0.15
>
>         Attachments: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Assigned] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Andrew MacBean (Assigned) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andrew MacBean reassigned QPID-3642:
------------------------------------

    Assignee: Andrew MacBean  (was: Alex Rudyy)
    
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker, Java Client
>            Reporter: Alex Rudyy
>            Assignee: Andrew MacBean
>             Fix For: 0.15
>
>         Attachments: 0001-QPID-3642-Fix-for-redelivery-regression-found-by-pyt.patch, 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch, 0002-QPID-3642-QPID-3640-Add-Dead-Letter-Queue-functional.patch
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Resolved] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Keith Wall (Resolved) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Keith Wall resolved QPID-3642.
------------------------------

    Resolution: Fixed

Patches applied.
                
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker, Java Client
>            Reporter: Alex Rudyy
>            Assignee: Alex Rudyy
>             Fix For: 0.15
>
>         Attachments: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch, 0002-QPID-3642-QPID-3640-Add-Dead-Letter-Queue-functional.patch
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Updated] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Andrew MacBean (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andrew MacBean updated QPID-3642:
---------------------------------

    Attachment: 0001-QPID-3642-Fix-for-redelivery-regression-found-by-pyt.patch
    
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker, Java Client
>            Reporter: Alex Rudyy
>            Assignee: Alex Rudyy
>             Fix For: 0.15
>
>         Attachments: 0001-QPID-3642-Fix-for-redelivery-regression-found-by-pyt.patch, 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch, 0002-QPID-3642-QPID-3640-Add-Dead-Letter-Queue-functional.patch
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Updated] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Alex Rudyy (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Rudyy updated QPID-3642:
-----------------------------

    Attachment:     (was: 0002-QPID-3642-QPID-3640-Add-Dead-Letter-Queue-functional.patch)
    
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker, Java Client
>            Reporter: Alex Rudyy
>            Assignee: Alex Rudyy
>             Fix For: 0.15
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Commented] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Alex Rudyy (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13156852#comment-13156852 ] 

Alex Rudyy commented on QPID-3642:
----------------------------------

Keith,

> 1) Can you extract the separate bug fix we discussed into a separate Jira/patch?

I extracted changes into 2 patches.
The first patch adds DLQ & max delivery count functionality for 0-8/0-9/0-9-1 paths.
The second patch adds DLQ & max delivery count functionality for 0-10 paths.
Also, in second patch I fixed issue with setting of re-delivery flag  for pre-fetched messages(QPID-3640).

> 2) AMQBrokerManagerMBean#createNewQueue surely the old method should call the new override, and avoid duplicating the method.

Fixed.

> 3) AMQConnection.java could you document that rejectBehaviour member only applies to 0-8..0-9-1.

I moved getRejectBehaviour functionality from AMQConnection into BasicMessageConsumer_0_8 as it is the place where it is needed.
However, I could not moved AMQDestinaton#getRejectBehaviour into BasicMessageConsumer, so, I added more commentaries about "rejectbehaviour" option in AMQDestinaton.
                
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker, Java Client
>            Reporter: Alex Rudyy
>            Assignee: Alex Rudyy
>             Fix For: 0.15
>
>         Attachments: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch, 0002-QPID-3642-QPID-3640-Add-Dead-Letter-Queue-functional.patch
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Updated] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Alex Rudyy (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Rudyy updated QPID-3642:
-----------------------------

    Attachment: 0002-QPID-3642-QPID-3640-Add-Dead-Letter-Queue-functional.patch
                0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch
    
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker, Java Client
>            Reporter: Alex Rudyy
>            Assignee: Alex Rudyy
>             Fix For: 0.15
>
>         Attachments: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch, 0002-QPID-3642-QPID-3640-Add-Dead-Letter-Queue-functional.patch
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Commented] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Alex Rudyy (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13157213#comment-13157213 ] 

Alex Rudyy commented on QPID-3642:
----------------------------------

Keith,

I changed AMQBrokerManagerMBean#createNewQueue and updated patch.
                
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker, Java Client
>            Reporter: Alex Rudyy
>            Assignee: Alex Rudyy
>             Fix For: 0.15
>
>         Attachments: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch, 0002-QPID-3642-QPID-3640-Add-Dead-Letter-Queue-functional.patch
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Updated] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Alex Rudyy (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Rudyy updated QPID-3642:
-----------------------------

    Attachment: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch
    
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker, Java Client
>            Reporter: Alex Rudyy
>            Assignee: Alex Rudyy
>             Fix For: 0.15
>
>         Attachments: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch, 0002-QPID-3642-QPID-3640-Add-Dead-Letter-Queue-functional.patch
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Commented] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Keith Wall (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13156691#comment-13156691 ] 

Keith Wall commented on QPID-3642:
----------------------------------

Hi Alex

Couple of comments:

1) Can you extract the separate bug fix we discussed into a separate Jira/patch?
2) AMQBrokerManagerMBean#createNewQueue surely the old method should call the new override, and avaoid duplicating the method.
3) AMQConnection.java could you document that rejectBehaviour member only applies to 0-8..0-9-1.

Thanks, Keith.
                
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker, Java Client
>            Reporter: Alex Rudyy
>            Assignee: Keith Wall
>             Fix For: 0.15
>
>         Attachments: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Commented] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Alex Rudyy (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13157124#comment-13157124 ] 

Alex Rudyy commented on QPID-3642:
----------------------------------

Updated patches to fix JMX API version and docs.
Refactored client to store pre-fetched message tags in a separate queue.
                
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker, Java Client
>            Reporter: Alex Rudyy
>            Assignee: Alex Rudyy
>             Fix For: 0.15
>
>         Attachments: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch, 0002-QPID-3642-QPID-3640-Add-Dead-Letter-Queue-functional.patch
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Updated] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Alex Rudyy (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Rudyy updated QPID-3642:
-----------------------------

    Attachment: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch
    
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker
>            Reporter: Alex Rudyy
>            Assignee: Keith Wall
>             Fix For: 0.15
>
>         Attachments: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Updated] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Alex Rudyy (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Rudyy updated QPID-3642:
-----------------------------

    Status: Ready To Review  (was: In Progress)
    
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker
>            Reporter: Alex Rudyy
>            Assignee: Alex Rudyy
>             Fix For: 0.15
>
>         Attachments: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Updated] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Alex Rudyy (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Rudyy updated QPID-3642:
-----------------------------

    Attachment:     (was: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch)
    
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker, Java Client
>            Reporter: Alex Rudyy
>            Assignee: Alex Rudyy
>             Fix For: 0.15
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Reopened] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Keith Wall (Reopened) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Keith Wall reopened QPID-3642:
------------------------------


As discussed, causing a regression failure against the Python test suite:

https://builds.apache.org/view/M-R/view/Qpid/job/Qpid-Python-Java-Test/35/

    * qpid.tests.messaging.endpoints.ReceiverTests.testAtMostOnce
    * qpid.tests.messaging.endpoints.ReceiverTests.testUnreliable
                
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker, Java Client
>            Reporter: Alex Rudyy
>            Assignee: Alex Rudyy
>             Fix For: 0.15
>
>         Attachments: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch, 0002-QPID-3642-QPID-3640-Add-Dead-Letter-Queue-functional.patch
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Updated] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Alex Rudyy (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Rudyy updated QPID-3642:
-----------------------------

    Attachment: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch
    
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker, Java Client
>            Reporter: Alex Rudyy
>            Assignee: Alex Rudyy
>             Fix For: 0.15
>
>         Attachments: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch, 0002-QPID-3642-QPID-3640-Add-Dead-Letter-Queue-functional.patch
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Updated] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Alex Rudyy (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Rudyy updated QPID-3642:
-----------------------------

    Component/s: Java Client
    
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker, Java Client
>            Reporter: Alex Rudyy
>            Assignee: Keith Wall
>             Fix For: 0.15
>
>         Attachments: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Updated] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Alex Rudyy (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Rudyy updated QPID-3642:
-----------------------------

    Attachment: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch
    
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker
>            Reporter: Alex Rudyy
>            Assignee: Alex Rudyy
>             Fix For: 0.15
>
>         Attachments: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Resolved] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Keith Wall (Resolved) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Keith Wall resolved QPID-3642.
------------------------------

    Resolution: Fixed

Patch applied.
                
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker, Java Client
>            Reporter: Alex Rudyy
>            Assignee: Keith Wall
>             Fix For: 0.15
>
>         Attachments: 0001-QPID-3642-Fix-for-redelivery-regression-found-by-pyt.patch, 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch, 0002-QPID-3642-QPID-3640-Add-Dead-Letter-Queue-functional.patch
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Commented] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Andrew MacBean (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13159969#comment-13159969 ] 

Andrew MacBean commented on QPID-3642:
--------------------------------------

Regression caused by our use of the redelivered flag when in ServerSession.onClose we call release on the subscriptions. Fixed this and changed the logic in subscription release method to handle correctly.  Also added equivalent Java test for this case.

Subsequent patch attached.
                
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker, Java Client
>            Reporter: Alex Rudyy
>            Assignee: Alex Rudyy
>             Fix For: 0.15
>
>         Attachments: 0001-QPID-3642-Fix-for-redelivery-regression-found-by-pyt.patch, 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch, 0002-QPID-3642-QPID-3640-Add-Dead-Letter-Queue-functional.patch
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Assigned] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Alex Rudyy (Assigned) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Rudyy reassigned QPID-3642:
--------------------------------

    Assignee: Keith Wall  (was: Alex Rudyy)

Keith, could you please review and commit the patch attached?
                
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker
>            Reporter: Alex Rudyy
>            Assignee: Keith Wall
>             Fix For: 0.15
>
>         Attachments: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Updated] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Alex Rudyy (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Rudyy updated QPID-3642:
-----------------------------

    Description: 
Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.

The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).

If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.

This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.

When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

  was:Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.

    
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker
>            Reporter: Alex Rudyy
>            Assignee: Alex Rudyy
>             Fix For: 0.15
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Updated] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Alex Rudyy (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Rudyy updated QPID-3642:
-----------------------------

    Attachment: 0002-QPID-3642-QPID-3640-Add-Dead-Letter-Queue-functional.patch
    
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker, Java Client
>            Reporter: Alex Rudyy
>            Assignee: Alex Rudyy
>             Fix For: 0.15
>
>         Attachments: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch, 0002-QPID-3642-QPID-3640-Add-Dead-Letter-Queue-functional.patch
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Updated] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Alex Rudyy (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Rudyy updated QPID-3642:
-----------------------------

    Attachment:     (was: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch)
    
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker, Java Client
>            Reporter: Alex Rudyy
>            Assignee: Alex Rudyy
>             Fix For: 0.15
>
>         Attachments: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch, 0002-QPID-3642-QPID-3640-Add-Dead-Letter-Queue-functional.patch
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Assigned] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Andrew MacBean (Assigned) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andrew MacBean reassigned QPID-3642:
------------------------------------

    Assignee: Keith Wall  (was: Andrew MacBean)
    
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker, Java Client
>            Reporter: Alex Rudyy
>            Assignee: Keith Wall
>             Fix For: 0.15
>
>         Attachments: 0001-QPID-3642-Fix-for-redelivery-regression-found-by-pyt.patch, 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch, 0002-QPID-3642-QPID-3640-Add-Dead-Letter-Queue-functional.patch
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Updated] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Andrew MacBean (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andrew MacBean updated QPID-3642:
---------------------------------

    Status: Ready To Review  (was: In Progress)
    
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker, Java Client
>            Reporter: Alex Rudyy
>            Assignee: Andrew MacBean
>             Fix For: 0.15
>
>         Attachments: 0001-QPID-3642-Fix-for-redelivery-regression-found-by-pyt.patch, 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch, 0002-QPID-3642-QPID-3640-Add-Dead-Letter-Queue-functional.patch
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Commented] (QPID-3642) Implement Dead Letter Queue functionality

Posted by "Keith Wall (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-3642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13157187#comment-13157187 ] 

Keith Wall commented on QPID-3642:
----------------------------------

Hi Alex/Andy

My only comment is that AMQBrokerManagerMBean#createNewQueue has been unchanged to chain an AMQException to the JMException.  It is likely this will cause a unmarshall exception on the client as the client wont have the class. No other comments.

cheers Keith
                
> Implement Dead Letter Queue functionality
> -----------------------------------------
>
>                 Key: QPID-3642
>                 URL: https://issues.apache.org/jira/browse/QPID-3642
>             Project: Qpid
>          Issue Type: New Feature
>          Components: Java Broker, Java Client
>            Reporter: Alex Rudyy
>            Assignee: Alex Rudyy
>             Fix For: 0.15
>
>         Attachments: 0001-QPID-3642-QPID-3643-Add-Dead-Letter-Queue-functional.patch, 0002-QPID-3642-QPID-3640-Add-Dead-Letter-Queue-functional.patch
>
>
> Implement functionality to move messages into Dead Letter Queue on reaching Max Delivery Count limit.
> The Maximum Delivery Count is a property of a queue. If the client application is unable to process a message more than a specified number of times, the then the broker either moves the message to the specified DLQ, or it is dropped (producing an operation log message).
> If the application is unable to process a message it must call either Session#recover() or Session#rollback() (depending on transactionality) on the Session in use.  If during recovery the broker discovers that a message has been seen (at least) the maximum number of times then it will move the message to the DLQ or drop the message, depending on how the queue is configured.
> This feature can be enabled for a queue either through the XML configuration for the broker, or when declaring the queue using JMX.  It is also necessary to enable a setting on the client.   The feature is available for both synchronous consumers (i.e. those using MessageConsumer#receive()) and asynchronous consumers (i.e. those implementing MessageListener#onMessage) using all JMS delivery modes.
> When enabled for a given queue, the DLQ feature causes generation of a Dead Letter Exchange and a Dead Letter Queue, named according to the convention <queue_name>_DLE and <queue_name>_DLQ. If the client indicates it no longer wishes the receive the message (by means of the Max Delivery Count feature) then the message is routed through the dead letter exchange onto the DLQ and removed from the original queue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org