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

Mark You reopened CAMEL-2537:
-----------------------------


Hi Claus:
     About priority control implementation, the ActiveMq web site suggest two 
solution, one is resequencer patter, another is concurrent consumer number 
setting.

     I think resequencer support in camel with batch mode should support non 
unique priority order condition, because we often define several priority level.

For example, we define 1~5 priority, 1 is the highest priority and 5 is lowest 
priority. And we send 100 message into job queue. So there will be some 
messages with 1 priority and some messages with 2...

And we can use resequencer to do an order, and dispatch to a process queue, 
which can solve priority control problem.

I think the batch mode in resequecer support should support non unique 
property, and it will be a good feature to use.

> Batch Resequencer issues with JMSPriority
> -----------------------------------------
>
>                 Key: CAMEL-2537
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-2537
>             Project: Apache Camel
>          Issue Type: Improvement
>          Components: camel-core
>    Affects Versions: 2.0.0
>            Reporter: Jeff Sprankle
>            Assignee: Claus Ibsen
>             Fix For: 2.3.0
>
>
> My project uses ActiveMQ and we have a requirement to support priority queues 
> for one or more of our configured queues.  One of the suggestions under the 
> ActiveMQ FAQ is to use a Resequencer, so I followed the link and applied the 
> <resequence> element to my XML-based route.  While testing this functionality 
> we uncovered a couple issues that seem like they should be addressed in a 
> future release of camel-core.
> # The JMSPriority header is not a unique field and internally the Resequencer 
> class uses java.util.Set to collect messages into a batch.  This means that a 
> given batch cannot contain multiple messages with the same JMSPriority.  For 
> example, if I use the default batch config and submit five messages with 
> JMSPriority=6 to the queue within a second, only one of those message is 
> delivered to the configured endpoint.
> # According to the JMS API, priority has ten values where 0 is the lowest and 
> 9 is the highest.  This means that messages with higher priorities should be 
> processed before messages with lower priorities.  When I configure my 
> resequencer with <header>JMSPriority</header>, however, it by default orders 
> the messages within the batch in ascending order which means that messages 
> with lower priorities are processed first.
> If there are any known workarounds to these issues please document them, 
> because the current Resequencer documentation that uses JMSPriority as an 
> example is misleading.

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

Reply via email to