My camel routes can have multiple aggregations. We are using Jdbc
AggregationRepository for the same.

The problem I am are facing is when the first aggregator marks an
aggregation complete, the second one which is totally unrelated picks up the
completed exchanges and processes them.

Giving a second look at the document, it states the tables Aggregation and
Aggregation_Completed has to be created per aggregator. Does this mean if we
have 50 routes with aggregator, we create 100 tables?
Is there a workaround to use the same tables for any number of aggregators? 

On debugging, I noticed that Aggregator uses the correlation id on the
Aggregation table's id value, but Aggregation_completed table's id is not
correlation id, but the exchange id (which is documented!). So this causes
aggregators to pickup unrelated completed exchanges.

If the Aggregation_Completed table's message id is set to correlation id
instead of exchange id, will it help? The design is kept this way for some
reason, I just want to understand the impact of changing this.

Sample use case:
multiple messages arrive with product_id, 1st aggregator ensures only the
latest message per product_id is sent forward within 30 mins
completionInterval. 

The product_id belongs to certain sales_department which are gathered by
enrichments. The 2nd aggregator downstream ensures only exchange per
sales_department_id is send out within 30 mins completionInterval

Thanks!







--
View this message in context: 
http://camel.465427.n5.nabble.com/Camel-JDBC-Aggregator-the-need-for-2-tables-Aggregation-tp5755847.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to