Batch Resequencer 
------------------

                 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


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