0 Replies Latest reply on Nov 13, 2009 2:33 AM by Julien Jean Paul Sirocchi

    Stateful Aggregator in cluster + Sequences with end terminat

    Julien Jean Paul Sirocchi Newbie

      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 ;-)