You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Phillip Merritt (JIRA)" <ji...@apache.org> on 2010/04/09 19:41:09 UTC

[jira] Updated: (AMQ-122) add support for priority message ordering

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

Phillip Merritt updated AMQ-122:
--------------------------------

    Attachment: activemq-new-files.zip
                priority_patch.txt

We had a need to use priority based queuing for a project I am working on and could not wait for 6.0.0 to come out so we created our own priority based implementation by modifying activemq-core v5.3.1 checked out from the tags. The attached patch file was created using svn diff. Also attached is a zip file of new files which were added since I was unsure how to handle new files as a patch, if there is a better way let me know and I'll do that. Below is a summary of the changes made in the patch in order to enable priority based queueing
1) Added a useJmsPriority option to the Broker
2) Added the useJmsPriority parameter to the BrokerInfo class
3) Updated code which was creating BrokerInfo instances to set the useJmsPriority
4) Converted MessageDispatchChannel into an Interface
5) Created a new class FifoMessageDispatchChannel which implements MessageDispatchChannel and contains the same implementation as was previously in MessageDispatchChannel
6) Created a new class PriorityMessageDispatchChannel which contains the newly created PrioritizedMessageDispatchChannel. This implementation contains an array of priority linkedlists and a current index to the highest priority linkedlist. So messages are dequeued from the highest priority linked list with messages and enqueued to the linked list which corresponds to the priority in the message.
7) Created a MessageDispatchChannelFactory which returns the appropriate MessageDispatchChannel dependent upon the value of the useJmsPriority parameter
8) Updated ActiveMQConnection and ActiveMQSession to only override the message priority when useJmsPriority is false or the message priority is not set.
9) Added a new unit test JmsPriorityTest in order to test priority ordering

> add support for priority message ordering
> -----------------------------------------
>
>                 Key: AMQ-122
>                 URL: https://issues.apache.org/activemq/browse/AMQ-122
>             Project: ActiveMQ
>          Issue Type: New Feature
>          Components: JMS client
>    Affects Versions: 4.0
>         Environment: Solaris 8, Linux, Windows , Java 1.4.2
>            Reporter: Etienne Araya
>            Assignee: Ramzi Saba
>             Fix For: 6.0.0
>
>         Attachments: activemq-new-files.zip, priority_patch.txt
>
>   Original Estimate: 8 hours
>  Remaining Estimate: 8 hours
>
> messages with higher priority is not consumed first
> ActiveMQ doesn't yet support priorities.
> messages with greater priority are not consumed first but that are consumed in the arrival order.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.