You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Tom Fornoville <to...@roots.be> on 2013/11/25 16:16:26 UTC

Aggregator, Hazelcast and clustering

Hi all,

In our Camel context we have an aggregator like this:

<route id="aggregate-observations">
<from uri="activemq:observation.processed.queue"/>
<aggregate strategyRef="observationAggregator"
aggregationRepositoryRef="observationRepository">
<correlationExpression>
<header>transactionGUID</header>
</correlationExpression>
<completionPredicate>
<simple>${header.CamelSplitComplete} == 'true'</simple>
</completionPredicate>
<to uri="activemq:observation.feedback.queue"/>
</aggregate>
</route>


The referenced observationRepository is a Hazelcast implmentation.

We deploy this in Karaf (more specific in JBoss Fuse 6.0) and want to
cluster this using Fuse Fabric.
Should we be worried that different instances of this aggregator can pick
up messages?
The specific case I'm worried about is that one instance picks up the last
message (the one where CamelSplitComplete is true) and then completes the
aggregation while another instance is still busy processing an earlier
message.

I know we could use meesage grouping (
http://activemq.apache.org/message-groups.html) to ensure that all messages
for a given group are consumed by the same aggregator instance but I'm not
sure that we need it here.

Any insight or comment is welcome.

Cheers,
Tom