You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Szymon Jachim (JIRA)" <ji...@apache.org> on 2016/07/20 10:17:20 UTC

[jira] [Updated] (AMQ-6368) Non-blocking redelivery does not calculate exponential delivery properly

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

Szymon Jachim updated AMQ-6368:
-------------------------------
    Description: 
Non-blocking redelivery does not calculate exponential delivery properly when retries of delivery are interspersed with (successful) deliveries of other mes sages. 

This is caused by the fact that last redelivery delay is stored in a field and is overwritten delivery of other messages. A possible fix is that redelivery delay can be calculated each time by simply doing multiplications in a loop (as it is done in broker) or using mathematical exponent function. At the same time redelivery count can not be a single field but an array with a counter per each message waiting for client side non-blocking redelivery.

I can provide a patch for this and a unit tests.

Related to: AMQ-3597 AMQ-1853

  was:
Non-blocking redelivery does not calculate exponential delivery properly when retries of delivery are interspersed with (successful) deliveries of other messages. 

This is caused by the fact that last redelivery delay is stored in a field and is overwritten delivery of other messages. A possible fix is that redelivery delay can be calculated each time by simply doing multiplications in a loop (as it is done in broker) or using mathematical exponent function. At the same time redelivery count can not be a single field but an array with a counter per each message waiting for client side non-blocking redelivery.

I can provide a patch for this and a unit tests.

Related to: AMQ-3597 AMQ-1853


> Non-blocking redelivery does not calculate exponential delivery properly
> ------------------------------------------------------------------------
>
>                 Key: AMQ-6368
>                 URL: https://issues.apache.org/jira/browse/AMQ-6368
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: JMS client
>    Affects Versions: 5.13.3
>            Reporter: Szymon Jachim
>
> Non-blocking redelivery does not calculate exponential delivery properly when retries of delivery are interspersed with (successful) deliveries of other mes sages. 
> This is caused by the fact that last redelivery delay is stored in a field and is overwritten delivery of other messages. A possible fix is that redelivery delay can be calculated each time by simply doing multiplications in a loop (as it is done in broker) or using mathematical exponent function. At the same time redelivery count can not be a single field but an array with a counter per each message waiting for client side non-blocking redelivery.
> I can provide a patch for this and a unit tests.
> Related to: AMQ-3597 AMQ-1853



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)