You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2018/04/12 16:49:00 UTC

[jira] [Commented] (ARTEMIS-1803) Pass ServerConsumer to messageExpired and messageAcknowledged plugin callbacks

    [ https://issues.apache.org/jira/browse/ARTEMIS-1803?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16435911#comment-16435911 ] 

ASF GitHub Bot commented on ARTEMIS-1803:
-----------------------------------------

Github user cshannon commented on the issue:

    https://github.com/apache/activemq-artemis/pull/2012
  
    @franz1981 and @michaelandrepearce  - I updated the patch to pass a reference to the ServerConsumer (when it applies) for both the expired and acked callbacks and dropped the extra reference to the serverId in the MessageReference class....let me know what you think


> Pass ServerConsumer to messageExpired and messageAcknowledged plugin callbacks
> ------------------------------------------------------------------------------
>
>                 Key: ARTEMIS-1803
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-1803
>             Project: ActiveMQ Artemis
>          Issue Type: Improvement
>    Affects Versions: 2.5.0
>            Reporter: Christopher L. Shannon
>            Assignee: Christopher L. Shannon
>            Priority: Minor
>
> Right now a MessageReference will track a consumerId (in certain scenarios) but the sessionId is not included.  This is a problem because consumerIds are not unique and are duplicated across sessions.  In order to find a unique consumer you need the sessionId and consumerId as well.   This is a problem for plugins implementing messageExpired and messageAcknowledged as they can't get the exact consumer based on just the consumerId.
> To solve this the ServerConsumer object responsible for acknowledging the message or expiring the message should be passed to those callback methods.  If consumer doesn't apply (such as when the broker expires internally or internally moves messages and acks) then the consumer object will be null.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)