camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Siano, Stephan" <>
Subject RE: Questions about resequencer
Date Thu, 12 Jun 2014 06:07:19 GMT

Just if someone has the same questions again, I'll answer my own question. 

I have had a look into the coding of the resequencer. If I understand this correctly the entries
are stored within a single tree set. This means that there are no pluggable (and potentially
persistent) repositories available, and it most probably also rules out multiple sequences
(even if we could create a tricky comparator that could take two attributes into account this
would mean that the set would be a partial order whereas the contract for a tree map requires
a full order).

All the exchanges are stored in separate threads that can continue when the predecessor was

Best regards

-----Original Message-----
From: Siano, Stephan [] 
Sent: Mittwoch, 11. Juni 2014 15:29
Subject: Questions about resequencer


I have some questions about the resequencer EIP, I didn't manage to find in the documentation.

1.       Is it possible to have multiple sequences within the same route?

I have multiple orders with an order number. Each of the order number is split into multiple
parts that are sent separately and they have a sequence number. Now I want to resequence the
messages for each of the orders separately. The expected behavior should be something like

MSG 1: Order id: 1, Sequence Number: 2 -> no message processed

MSG 2: Order id: 2, Sequence Number: 1 -> MSG 2 is processed

MSG 3: Order id: 1, Sequence Number: 1 -> MSG 3, MSG 1 are processed

2.       Aggregation supports configurable aggregation repositories (including persistent
ones). Is there something similar for the resequencing?

3.       What happens with waiting exchanges? Is the thread suspended and they are stored
in an (in memory) repository, or is something else done with them?

Best regards

View raw message