Claus,

> You get an invalid correlation key, so check that.
>
>  <!-- correlate by header with the key id -->
> <correlationExpression>
> <header>aggrId</header>
>  </correlationExpression>
>

Yes, I've added it to skip that error but the incoming (fake) exchange is
still passed to the aggregation while what I need is to complete the
aggregation without this message.
It should be considered as a trigger not as a message (to aggregate)
shipping the completionPredicate.
I don't know when the aggregation should be considered completed until I
receive this message (which may never be aggregated).



>
> Do you have that header
>
> On Fri, Jun 6, 2014 at 4:37 PM, carlo cancellieri
> <c.cancelli...@proximainformatica.com> wrote:
> > Dear Claus,
> >  I'm trying to use the suggested flag eagerCheckCompletion="true" with no
> > success.
> >  I still get:
> > org.apache.camel.CamelExchangeException: Invalid correlation key.
> > Exchange[test_complete.csv]
> > at
> >
> org.apache.camel.processor.aggregate.AggregateProcessor.doProcess(AggregateProcessor.java:204)
> >  at
> >
> org.apache.camel.processor.aggregate.AggregateProcessor.process(AggregateProcessor.java:179)
> > at
> >
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)
> >
> > Here:
> >
> org.apache.camel.processor.aggregate.AggregateProcessor.doProcess(Exchange):
> > 197
> > the correlation id is still evaluated but it is actually not existent so
> it
> > fails.
> > Using ignoreInvalidCorrelationKeys does not solve the problem because the
> > aggregation is never completed.
> > Do we need to add a new flag or modify the eagerCheckCompletion workflow?
> > Any other clean solution?
> >
> > Cheers,
> > Carlo
> >
> >
> > 2014-06-06 15:04 GMT+02:00 Claus Ibsen <claus.ib...@gmail.com>:
> >
> >> Hi
> >>
> >> See the aggregator docs
> >> http://camel.apache.org/aggregator2
> >>
> >> there is an eagerCheckCompletion option
> >>
> >> On Fri, Jun 6, 2014 at 2:46 PM, carlo cancellieri
> >> <c.cancelli...@proximainformatica.com> wrote:
> >> > Hi list,
> >> >  I'm using the following aggregation:
> >> >
> >> >
> >> > <route>
> >> > <from uri="seda:aggregation" />
> >> >  <!-- aggregate using our strategy and leveldb repo -->
> >> > <aggregate strategyRef="rowAggregationStrategy"
> >> >  aggregationRepositoryRef="aggregationRepository"
> >> > completionFromBatchConsumer="false">
> >> >  <!-- correlate by header with the key id -->
> >> > <correlationExpression>
> >> > <header>aggrId</header>
> >> >  </correlationExpression>
> >> >
> >> > <completionPredicate>
> >> > <simple>${in.header.complId} == 'END_${exchangeId}'</simple>
> >> >  </completionPredicate>
> >> > <!-- send aggregated messages to the mock endpoint -->
> >> >                 <to uri="seda:marshaller" />
> >> >  </aggregate>
> >> > </route>
> >> >
> >> > When the aggregation may be concluded I send an empty message with the
> >> > 'complId' set to the expected value but currently I get:
> >> >
> >> > org.apache.camel.CamelExchangeException: Invalid correlation key.
> >> > Exchange[test_complete.csv]
> >> > at
> >> >
> >>
> org.apache.camel.processor.aggregate.AggregateProcessor.doProcess(AggregateProcessor.java:204)
> >> >  at
> >> >
> >>
> org.apache.camel.processor.aggregate.AggregateProcessor.process(AggregateProcessor.java:179)
> >> > at
> >> >
> >>
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)
> >> >
> >> > The question is why the completionPredicate is evaluated after the
> >> > aggregation?
> >> > At this time I've no 'aggrId' to use (this is only a fake message
> used as
> >> > event).
> >> > A possible solution is adding a fake aggrId but I wonder what could be
> >> the
> >> > right way to solve this case.
> >> > I've already tested completionFromBatchConsumer the with no success.
> >> >
> >> > --
> >> > Dott. Carlo Cancellieri
> >> > *skype*: ccancellieri
> >> > *Twitter*: @cancellieric
> >> > *LinkedIn*: http://it.linkedin.com/in/ccancellieri/
> >>
> >>
> >>
> >> --
> >> Claus Ibsen
> >> -----------------
> >> Red Hat, Inc.
> >> Email: cib...@redhat.com
> >> Twitter: davsclaus
> >> Blog: http://davsclaus.com
> >> Author of Camel in Action: http://www.manning.com/ibsen
> >> hawtio: http://hawt.io/
> >> fabric8: http://fabric8.io/
> >>
> >
> >
> >
> > --
> > Dott. Carlo Cancellieri
> > *skype*: ccancellieri
> > *Twitter*: @cancellieric
> > *LinkedIn*: http://it.linkedin.com/in/ccancellieri/
>
>
>
> --
> Claus Ibsen
> -----------------
> Red Hat, Inc.
> Email: cib...@redhat.com
> Twitter: davsclaus
> Blog: http://davsclaus.com
> Author of Camel in Action: http://www.manning.com/ibsen
> hawtio: http://hawt.io/
> fabric8: http://fabric8.io/
>



-- 
Dott. Carlo Cancellieri
*skype*: ccancellieri
*Twitter*: @cancellieric
*LinkedIn*: http://it.linkedin.com/in/ccancellieri/

Reply via email to