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.