You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Justin Bertram (Jira)" <ji...@apache.org> on 2022/03/05 02:38:00 UTC

[jira] [Updated] (ARTEMIS-3693) Ignore duplicates instead of returning error

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

Justin Bertram updated ARTEMIS-3693:
------------------------------------
    Description: 
As an Artemis user I want the broker to:
 * Ignore duplicate messages (but still process new messages) that are received in the same transaction and successfully commit instead of failing to commit the whole transaction and rejecting both the duplicates and new messages So that I don't have to implement custom error handling to sort out the duplicates from new messages and retry the new messages.
 * Ignore duplicate messages it receives when not transacted instead of returning an error to the sender so that I don't have to implement custom error handling to skip over the duplicate message.

The current [duplicate detection|https://activemq.apache.org/components/artemis/documentation/latest/duplicate-detection.html] returns an error back to producers which forces the producer to implement custom error handling to distinguish this error from others.

This is particularly problematic when multiple messages are sent in the same transaction - some may be duplicates while others are not, but they will all be rejected.  It is difficult for the sender to untangle which is which. 

*Proposed Solution*
 * Add configuration at the address level to silently drop duplicates instead of rejecting them.  Logging them is OK, but the send / transaction should complete successfully.
 * Update [documentation|https://activemq.apache.org/components/artemis/documentation/latest/duplicate-detection.html] to describe the new option.

  was:
 
{quote}As an artemis user

I want the broker to ignore duplicate messages (but still process new messages) that are received in the same transaction and successfully commit

Instead of failing to commit the whole transaction and rejecting both the duplicates and new messages

So that I don't have to implement custom error handling to sort out the duplicates from new messages and retry the new messages

 
{quote}
 
{quote}As an artemis user

I want the broker to ignore duplicate messages it receives when not transacted

Instead of returning an error to the sender

So that I don't have to implement custom error handling to skip over the duplicate message

 
{quote}
 

The current duplicate detection returns an error back to producers, which forces the producer to implement custom error handling to distinguish this error from others.

[https://activemq.apache.org/components/artemis/documentation/latest/duplicate-detection.html]

This is particularly problematic when multiple messages are sent in the same transaction - some may be duplicates while others are not, but they will all be rejected.  Difficult for the sender to untangle which is which.

 

 

 

*Proposed Solution*

Add configuration at the address level to silently drop duplicates instead of rejecting them.  Logging them is ok, but the send / transaction should complete successfully.

Update documentation to describe the new option.

[https://activemq.apache.org/components/artemis/documentation/latest/duplicate-detection.html]


> Ignore duplicates instead of returning error
> --------------------------------------------
>
>                 Key: ARTEMIS-3693
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-3693
>             Project: ActiveMQ Artemis
>          Issue Type: Improvement
>            Reporter: Brad Harvey
>            Priority: Major
>
> As an Artemis user I want the broker to:
>  * Ignore duplicate messages (but still process new messages) that are received in the same transaction and successfully commit instead of failing to commit the whole transaction and rejecting both the duplicates and new messages So that I don't have to implement custom error handling to sort out the duplicates from new messages and retry the new messages.
>  * Ignore duplicate messages it receives when not transacted instead of returning an error to the sender so that I don't have to implement custom error handling to skip over the duplicate message.
> The current [duplicate detection|https://activemq.apache.org/components/artemis/documentation/latest/duplicate-detection.html] returns an error back to producers which forces the producer to implement custom error handling to distinguish this error from others.
> This is particularly problematic when multiple messages are sent in the same transaction - some may be duplicates while others are not, but they will all be rejected.  It is difficult for the sender to untangle which is which. 
> *Proposed Solution*
>  * Add configuration at the address level to silently drop duplicates instead of rejecting them.  Logging them is OK, but the send / transaction should complete successfully.
>  * Update [documentation|https://activemq.apache.org/components/artemis/documentation/latest/duplicate-detection.html] to describe the new option.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)