Hi all,
I am writing this as I recently faced the two issues mentioned in the subject, when implementing a bunch of services on a clustered (2 nodes) esb:
1. clustering of stateful services is not supported in current codebase
2. aggregation info (I mean AggregationDetails.java) is only designed for sequences with predetermined size, like: 1/N, 2/N, ... N/N (i.e. no support for sequences like: 1/false, 2/false, ... N/true where the boolean flags indicate whether the sequence has ended or not, as per EIP)
I indeed came up with a working solution which involves:
1. Using JBossCache as a means for replicating all the aggregation bits across all nodes that form a cluster (my current solution uses 3.2.1.GA aka "Malagueta" with MVCC locking, REPL_SYNC cache mode, READ_COMMITTED isolation, UDP JGroups stack underneath, a shared CacheLoader for persisting all cache entries, manual eviction of complete nodes, etc; but I am also planning to try several other things, such as REPL_ASYNC and/or INVALIDATION_ASYNC and make use of the org.jboss.cache.notifications.annotation.* annotations, eviction policies,... at some stage I must also get my head around Infinispan ;-) )
2. Enhancing AggregationDetails to support also these kind of sequences (I was splitting a CSV file using Smooks and had no knowledge nor wanted to know *beforehand* the number of lines in the original file)
If you are at all interested I am more than willing to share, code is not perfect but works quite well ;-)
Regards
\j