I have a route (triggered manually) that looks like this (pseudo code)

         from( trigger )
             .routePolicy( new FinishNotifier( onFinsh ) )
             .to( JDBCEndpoint ).split().body()
             .process( setIdAndHeaderCount )
             .aggregate( header( "id" ), packAggregator )
             .completionSize( header( "count" ) )
             .parallelProcessing() // breaks on done
             .process( validationProcessor )
             .to( JDBCEndpoint )

Since this is not working - "parallelProcessing" breaks "onCompletion"
(without parallelProcessing all works finr)
Claus suggest "Composed Message Processor EIP" (thanks again).

There are 2 ways suggested: "splitter only" but this way doesn't fit because
i need the headers to be set and completionSize (putting all this logic into
aggregator is too much at the moment).

The second way suggests to decouple split and aggregate into 2 routes
connected by a seda queue. *But how to detect that all work is done?* I need
to now when the original exchange (a large iterator/resultSet) is completed
and all processing steps are done. I am not sure if it is sufficient to
detect that seda queue is empty for some time.

Thanks in advance

View this message in context: http://camel.465427.n5.nabble.com/How-detect-finish-in-Composed-Message-Processor-EIP-tp5772615.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Search Discussions

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupusers @
postedOct 13, '15 at 1:36p
activeOct 13, '15 at 1:36p

1 user in discussion

Dermoritz: 1 post



site design / logo © 2021 Grokbase