You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Martin Lichtin <li...@yahoo.com.INVALID> on 2021/01/27 17:41:45 UTC

Server-side redelivery no longer working with 5.16.0/5.16.1

Hi, has anything changed regarding server-side redelivery using the <redeliveryPlugin>?

Going from 5.15.14 to 5.16.1, it seems to no longer work as expected.

I see AMQ-7298 which may contribute to a change in this area.

- Martin



Re: Server-side redelivery no longer working with 5.16.0/5.16.1

Posted by Martin Lichtin <li...@yahoo.com.INVALID>.
Added a comment toAMQ-7298 on how to reproduce the issue:

https://issues.apache.org/jira/browse/AMQ-7298?focusedCommentId=17292431&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-17292431


On 01.02.2021 16:41, Martin Lichtin wrote:
> It could be related to AMQ-7298 which is a Jira I found that modified the redelivery code.
>
> On 31.01.2021 16:57, Jean-Baptiste Onofre wrote:
>> Hmmm, that’s really weird. SchedulerSupport is enabled on the broker ?
>>
>> Let me try to reproduce. I keep you posted.
>>
>> Regards
>> JB
>>
>>> Le 31 janv. 2021 à 16:54, Martin Lichtin <li...@yahoo.com.INVALID> a écrit :
>>>
>>> There's no exception, but the re-delivery no longer works.
>>> It's a server-side redelivery case, configuring the broker with the redeliveryPlugin, such as:
>>>
>>>        <redeliveryPlugin fallbackToDeadLetter="true" sendToDlqIfMaxRetriesExceeded="true">
>>>          <redeliveryPolicyMap>
>>>            <redeliveryPolicyMap>
>>>              <redeliveryPolicyEntries>
>>>                <redeliveryPolicy queue="TEST.>" maximumRedeliveries="5" initialRedeliveryDelay="2000" redeliveryDelay="2000" />
>>>              </redeliveryPolicyEntries>
>>>            </redeliveryPolicyMap>
>>>          </redeliveryPolicyMap>
>>>        </redeliveryPlugin>
>>>
>>> then consuming a message from a 'TEST.abc' queue, the test code throwing an exception to let it go back to server so it gets redelivered after 2 seconds. With 5.16.1 this no longer works, as the re-delivery is for some reason is considered a duplicate and suppressed.
>>> The logs:
>>>
>>>         RedeliveryPlugin  175 | 40 - org.apache.activemq.activemq-osgi - 5.16.1 | redelivery #1 of: ID:mlipc2-4159-1611768583683-1:15:1:1:41 with delay: 1000, dest: queue://TEST.msgin
>>> ActiveMQMessageConsumer 1485 | 40 - org.apache.activemq.activemq-osgi - 5.16.1 | ID:mlipc2-4159-1611768583683-1:16:1:1 suppressing duplicate delivery on connection, poison acking: MessageDispatch {commandId = 0, responseRequired = false, consumerId = ID:mlipc2-4159-1611768583683-1:16:1:1, destination = queue://TEST.msgin, message = ActiveMQTextMessage {commandId = 125, responseRequired = true, messageId = ID:mlipc2-4159-1611768583683-1:15:1:1:41, originalDestination = null, originalTransactionId = null, producerId = ID:mlipc2-4159-1611768583683-1:15:1:1, destination = queue://TEST.msgin, transactionId = null, expiration = 0, timestamp = 1611768605501, arrival = 0, brokerInTime = 1611768607001, brokerOutTime = 1611768607012, correlationId = null, replyTo = null, persistent = true, type = null, priority = 0, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@5f105a66, 
>>> marshalledProperties = org.apache.activemq.util.ByteSequence@5b2fd55c, dataStructure = null, redeliveryCounter = 1, size = 0, properties = {redeliveryDelay=2000, scheduledJobId=ID:mlipc2-4159-1611768583683-1:15:1:1:2}, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = XXX}, redeliveryCounter = 1}
>>>
>>> Of course it is a duplicate, but JMSRedelivered will be set to true, and another header tells the consumer the redelivery count.
>>> Any version before 5.16.0, this works fine and the "suppressing duplicate" does not occur.
>>>
>>> - Martin
>>>
>>> On 27.01.2021 19:24, Jean-Baptiste Onofre wrote:
>>>> Hi Martin,
>>>>
>>>> Do you have some exception ?
>>>>
>>>> Let me try it on 5.16.1 (I didn’t see any issue but I might have missed it).
>>>>
>>>> Regards
>>>> JB
>>>>
>>>>> Le 27 janv. 2021 à 18:41, Martin Lichtin <li...@yahoo.com.INVALID> a écrit :
>>>>>
>>>>> Hi, has anything changed regarding server-side redelivery using the <redeliveryPlugin>?
>>>>>
>>>>> Going from 5.15.14 to 5.16.1, it seems to no longer work as expected.
>>>>>
>>>>> I see AMQ-7298 which may contribute to a change in this area.
>>>>>
>>>>> - Martin
>>>>>
>>>>>
>>
>

Re: Server-side redelivery no longer working with 5.16.0/5.16.1

Posted by Martin Lichtin <li...@yahoo.com.INVALID>.
It could be related to AMQ-7298 which is a Jira I found that modified the redelivery code.

On 31.01.2021 16:57, Jean-Baptiste Onofre wrote:
> Hmmm, that’s really weird. SchedulerSupport is enabled on the broker ?
>
> Let me try to reproduce. I keep you posted.
>
> Regards
> JB
>
>> Le 31 janv. 2021 à 16:54, Martin Lichtin <li...@yahoo.com.INVALID> a écrit :
>>
>> There's no exception, but the re-delivery no longer works.
>> It's a server-side redelivery case, configuring the broker with the redeliveryPlugin, such as:
>>
>>        <redeliveryPlugin fallbackToDeadLetter="true" sendToDlqIfMaxRetriesExceeded="true">
>>          <redeliveryPolicyMap>
>>            <redeliveryPolicyMap>
>>              <redeliveryPolicyEntries>
>>                <redeliveryPolicy queue="TEST.>" maximumRedeliveries="5" initialRedeliveryDelay="2000" redeliveryDelay="2000" />
>>              </redeliveryPolicyEntries>
>>            </redeliveryPolicyMap>
>>          </redeliveryPolicyMap>
>>        </redeliveryPlugin>
>>
>> then consuming a message from a 'TEST.abc' queue, the test code throwing an exception to let it go back to server so it gets redelivered after 2 seconds. With 5.16.1 this no longer works, as the re-delivery is for some reason is considered a duplicate and suppressed.
>> The logs:
>>
>>         RedeliveryPlugin  175 | 40 - org.apache.activemq.activemq-osgi - 5.16.1 | redelivery #1 of: ID:mlipc2-4159-1611768583683-1:15:1:1:41 with delay: 1000, dest: queue://TEST.msgin
>> ActiveMQMessageConsumer 1485 | 40 - org.apache.activemq.activemq-osgi - 5.16.1 | ID:mlipc2-4159-1611768583683-1:16:1:1 suppressing duplicate delivery on connection, poison acking: MessageDispatch {commandId = 0, responseRequired = false, consumerId = ID:mlipc2-4159-1611768583683-1:16:1:1, destination = queue://TEST.msgin, message = ActiveMQTextMessage {commandId = 125, responseRequired = true, messageId = ID:mlipc2-4159-1611768583683-1:15:1:1:41, originalDestination = null, originalTransactionId = null, producerId = ID:mlipc2-4159-1611768583683-1:15:1:1, destination = queue://TEST.msgin, transactionId = null, expiration = 0, timestamp = 1611768605501, arrival = 0, brokerInTime = 1611768607001, brokerOutTime = 1611768607012, correlationId = null, replyTo = null, persistent = true, type = null, priority = 0, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@5f105a66, marshalledProperties = org.apache.activemq.util.ByteSequence@5b2fd55c, dataStructure = null, redeliveryCounter = 1, size = 0, properties = {redeliveryDelay=2000, scheduledJobId=ID:mlipc2-4159-1611768583683-1:15:1:1:2}, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = XXX}, redeliveryCounter = 1}
>>
>> Of course it is a duplicate, but JMSRedelivered will be set to true, and another header tells the consumer the redelivery count.
>> Any version before 5.16.0, this works fine and the "suppressing duplicate" does not occur.
>>
>> - Martin
>>
>> On 27.01.2021 19:24, Jean-Baptiste Onofre wrote:
>>> Hi Martin,
>>>
>>> Do you have some exception ?
>>>
>>> Let me try it on 5.16.1 (I didn’t see any issue but I might have missed it).
>>>
>>> Regards
>>> JB
>>>
>>>> Le 27 janv. 2021 à 18:41, Martin Lichtin <li...@yahoo.com.INVALID> a écrit :
>>>>
>>>> Hi, has anything changed regarding server-side redelivery using the <redeliveryPlugin>?
>>>>
>>>> Going from 5.15.14 to 5.16.1, it seems to no longer work as expected.
>>>>
>>>> I see AMQ-7298 which may contribute to a change in this area.
>>>>
>>>> - Martin
>>>>
>>>>
>


Re: Server-side redelivery no longer working with 5.16.0/5.16.1

Posted by Jean-Baptiste Onofre <jb...@nanthrax.net>.
Hmmm, that’s really weird. SchedulerSupport is enabled on the broker ?

Let me try to reproduce. I keep you posted.

Regards
JB

> Le 31 janv. 2021 à 16:54, Martin Lichtin <li...@yahoo.com.INVALID> a écrit :
> 
> There's no exception, but the re-delivery no longer works.
> It's a server-side redelivery case, configuring the broker with the redeliveryPlugin, such as:
> 
>       <redeliveryPlugin fallbackToDeadLetter="true" sendToDlqIfMaxRetriesExceeded="true">
>         <redeliveryPolicyMap>
>           <redeliveryPolicyMap>
>             <redeliveryPolicyEntries>
>               <redeliveryPolicy queue="TEST.>" maximumRedeliveries="5" initialRedeliveryDelay="2000" redeliveryDelay="2000" />
>             </redeliveryPolicyEntries>
>           </redeliveryPolicyMap>
>         </redeliveryPolicyMap>
>       </redeliveryPlugin>
> 
> then consuming a message from a 'TEST.abc' queue, the test code throwing an exception to let it go back to server so it gets redelivered after 2 seconds. With 5.16.1 this no longer works, as the re-delivery is for some reason is considered a duplicate and suppressed.
> The logs:
> 
>        RedeliveryPlugin  175 | 40 - org.apache.activemq.activemq-osgi - 5.16.1 | redelivery #1 of: ID:mlipc2-4159-1611768583683-1:15:1:1:41 with delay: 1000, dest: queue://TEST.msgin
> ActiveMQMessageConsumer 1485 | 40 - org.apache.activemq.activemq-osgi - 5.16.1 | ID:mlipc2-4159-1611768583683-1:16:1:1 suppressing duplicate delivery on connection, poison acking: MessageDispatch {commandId = 0, responseRequired = false, consumerId = ID:mlipc2-4159-1611768583683-1:16:1:1, destination = queue://TEST.msgin, message = ActiveMQTextMessage {commandId = 125, responseRequired = true, messageId = ID:mlipc2-4159-1611768583683-1:15:1:1:41, originalDestination = null, originalTransactionId = null, producerId = ID:mlipc2-4159-1611768583683-1:15:1:1, destination = queue://TEST.msgin, transactionId = null, expiration = 0, timestamp = 1611768605501, arrival = 0, brokerInTime = 1611768607001, brokerOutTime = 1611768607012, correlationId = null, replyTo = null, persistent = true, type = null, priority = 0, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@5f105a66, marshalledProperties = org.apache.activemq.util.ByteSequence@5b2fd55c, dataStructure = null, redeliveryCounter = 1, size = 0, properties = {redeliveryDelay=2000, scheduledJobId=ID:mlipc2-4159-1611768583683-1:15:1:1:2}, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = XXX}, redeliveryCounter = 1}
> 
> Of course it is a duplicate, but JMSRedelivered will be set to true, and another header tells the consumer the redelivery count.
> Any version before 5.16.0, this works fine and the "suppressing duplicate" does not occur.
> 
> - Martin
> 
> On 27.01.2021 19:24, Jean-Baptiste Onofre wrote:
>> Hi Martin,
>> 
>> Do you have some exception ?
>> 
>> Let me try it on 5.16.1 (I didn’t see any issue but I might have missed it).
>> 
>> Regards
>> JB
>> 
>>> Le 27 janv. 2021 à 18:41, Martin Lichtin <li...@yahoo.com.INVALID> a écrit :
>>> 
>>> Hi, has anything changed regarding server-side redelivery using the <redeliveryPlugin>?
>>> 
>>> Going from 5.15.14 to 5.16.1, it seems to no longer work as expected.
>>> 
>>> I see AMQ-7298 which may contribute to a change in this area.
>>> 
>>> - Martin
>>> 
>>> 
>> 


Re: Server-side redelivery no longer working with 5.16.0/5.16.1

Posted by Martin Lichtin <li...@yahoo.com.INVALID>.
There's no exception, but the re-delivery no longer works.
It's a server-side redelivery case, configuring the broker with the redeliveryPlugin, such as:

       <redeliveryPlugin fallbackToDeadLetter="true" sendToDlqIfMaxRetriesExceeded="true">
         <redeliveryPolicyMap>
           <redeliveryPolicyMap>
             <redeliveryPolicyEntries>
               <redeliveryPolicy queue="TEST.>" maximumRedeliveries="5" initialRedeliveryDelay="2000" redeliveryDelay="2000" />
             </redeliveryPolicyEntries>
           </redeliveryPolicyMap>
         </redeliveryPolicyMap>
       </redeliveryPlugin>

then consuming a message from a 'TEST.abc' queue, the test code throwing an exception to let it go back to server so it gets redelivered after 2 seconds. With 5.16.1 this no longer works, as the re-delivery is for some reason is considered a duplicate and suppressed.
The logs:

        RedeliveryPlugin  175 | 40 - org.apache.activemq.activemq-osgi - 5.16.1 | redelivery #1 of: ID:mlipc2-4159-1611768583683-1:15:1:1:41 with delay: 1000, dest: queue://TEST.msgin
ActiveMQMessageConsumer 1485 | 40 - org.apache.activemq.activemq-osgi - 5.16.1 | ID:mlipc2-4159-1611768583683-1:16:1:1 suppressing duplicate delivery on connection, poison acking: MessageDispatch {commandId = 0, responseRequired = false, consumerId = ID:mlipc2-4159-1611768583683-1:16:1:1, destination = queue://TEST.msgin, message = ActiveMQTextMessage {commandId = 125, responseRequired = true, messageId = ID:mlipc2-4159-1611768583683-1:15:1:1:41, originalDestination = null, originalTransactionId = null, producerId = ID:mlipc2-4159-1611768583683-1:15:1:1, destination = queue://TEST.msgin, transactionId = null, expiration = 0, timestamp = 1611768605501, arrival = 0, brokerInTime = 1611768607001, brokerOutTime = 1611768607012, correlationId = null, replyTo = null, persistent = true, type = null, priority = 0, groupID = null, groupSequence = 0, targetConsumerId = null, compressed = false, userID = null, content = org.apache.activemq.util.ByteSequence@5f105a66, 
marshalledProperties = org.apache.activemq.util.ByteSequence@5b2fd55c, dataStructure = null, redeliveryCounter = 1, size = 0, properties = {redeliveryDelay=2000, scheduledJobId=ID:mlipc2-4159-1611768583683-1:15:1:1:2}, readOnlyProperties = true, readOnlyBody = true, droppable = false, jmsXGroupFirstForConsumer = false, text = XXX}, redeliveryCounter = 1}

Of course it is a duplicate, but JMSRedelivered will be set to true, and another header tells the consumer the redelivery count.
Any version before 5.16.0, this works fine and the "suppressing duplicate" does not occur.

- Martin

On 27.01.2021 19:24, Jean-Baptiste Onofre wrote:
> Hi Martin,
>
> Do you have some exception ?
>
> Let me try it on 5.16.1 (I didn’t see any issue but I might have missed it).
>
> Regards
> JB
>
>> Le 27 janv. 2021 à 18:41, Martin Lichtin <li...@yahoo.com.INVALID> a écrit :
>>
>> Hi, has anything changed regarding server-side redelivery using the <redeliveryPlugin>?
>>
>> Going from 5.15.14 to 5.16.1, it seems to no longer work as expected.
>>
>> I see AMQ-7298 which may contribute to a change in this area.
>>
>> - Martin
>>
>>
>

Re: Server-side redelivery no longer working with 5.16.0/5.16.1

Posted by Jean-Baptiste Onofre <jb...@nanthrax.net>.
Hi Martin,

Do you have some exception ?

Let me try it on 5.16.1 (I didn’t see any issue but I might have missed it).

Regards
JB

> Le 27 janv. 2021 à 18:41, Martin Lichtin <li...@yahoo.com.INVALID> a écrit :
> 
> Hi, has anything changed regarding server-side redelivery using the <redeliveryPlugin>?
> 
> Going from 5.15.14 to 5.16.1, it seems to no longer work as expected.
> 
> I see AMQ-7298 which may contribute to a change in this area.
> 
> - Martin
> 
>