Questions about resequencer

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Questions about resequencer

siano
Hi,

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 this:

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
Stephan

Reply | Threaded
Open this post in threaded view
|

RE: Questions about resequencer

siano
Hi,

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 processed.

Best regards
Stephan

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

Hi,

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 this:

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
Stephan