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

Christopher L. Shannon updated ARTEMIS-1803:
--------------------------------------------
    Description: 
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.

  was:
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. 

A use case for when this is important is when writing custom plugins.  Some of 
the callbacks pass a message reference and it would be good to be able to 
figure out which consumer the reference belonged to such as in the 
messageAcknowledged callback.


> 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)

Reply via email to