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