Alex Rudyy commented on QPID-8286:

[~rgodfrey], ideally, it is expected that new functionality should  allow to 
change message priority (increase it) in order to process it faster due to big 
backlog of messages waiting for processing. How it is implemented and what 
priority client would see, it is up to the implementation. Here are my thoughts 
how this can be achieved
* within virtualhost transaction
** find the message (either using selector or id)
** acquire the message to prevent its consumption (if message is already 
acquired by either consumer or other operation, abort the operation)
** dequeue the message
** create new message from original one but set priority to desired value
** enqueue new message
* commit transaction

Thus, the operation will remove the original message and enqueue a new one. 
Thus, the consumer would see completely new message with new priority, new 
message id and new message timestamp.
Perhaps, the operation would be better named 
{{replaceMessageWithNewOneHavingDifferentPriority}} :)

At the moment, the need for this functionality is in a process of discussion. 
As it would introduce a vendor locking to Qpid for the application. Though, 
ArtemisMQ, ActiveMQ already have operations for changing message priorities. 
RabbitMQ, Solace, IBM MQ do not have such functionality.

> [Broker-J] Add operation into priority queue to change message priority
> -----------------------------------------------------------------------
>                 Key: QPID-8286
>                 URL: https://issues.apache.org/jira/browse/QPID-8286
>             Project: Qpid
>          Issue Type: Improvement
>          Components: Broker-J
>            Reporter: Alex Rudyy
>            Priority: Major
>             Fix For: qpid-java-broker-8.0.0, qpid-java-broker-7.1.2
> The functionality to change message priority is required for some use case 
> scenarios involving priority queues. At the moment, in order to change the 
> priority, the messages need to be consumed (for example, using selector 
> 'JMSMessageID=ID:XYZ') and re-published with a different priority.  I 
> management operation can be introduced on the priority queue which can simply 
> dequeue the message and re-enqueue it with a provided priority.

This message was sent by Atlassian JIRA

To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to