camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jeff Sprankle (JIRA)" <>
Subject [jira] Created: (CAMEL-2537) Batch Resequencer
Date Wed, 10 Mar 2010 21:07:44 GMT
Batch Resequencer 

                 Key: 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.

View raw message