Since Camel is using Pipeline to chain to endpoints together, the out
message which comes from first endpoint will be treat as in message for
the second endpoint; if there is on out message that be set to exchange
from first endpoint, second endpoint can still can get the in message
from first endpoint :)
Willem
Wilson wrote:
Hi Claus,
I was out on vacation so my feedback is a bit late.
I figured out why my code is not working.
Your AggregationStrategy implementation is setting the message body this
way:
oldExchange.getIn().setBody(oldBody + "," + newBody);
My code is doing this:
oldExchange.getOut().setBody(oldBody + "," + newBody);
I am used to the Processor interface that expects the body to be set in the
"out exchange". It is strange the fact that the Aggregation Strategy expects
the "in exchange" to be updated.
Thank you.
--
Wilson Freitas
Vetta Technologies
http://www.vettatech.com
Claus Ibsen-2 wrote:
Hi
See this unit test which I have created that works.
http://svn.apache.org/viewvc?rev=828961&view=rev
On Wed, Oct 21, 2009 at 8:15 PM, Wilson <wilson.li...@gmail.com> wrote:
Hi Claus,
Thanks for your answer.
Claus Ibsen-2 wrote:
Hi
Do you "loose" message every time you run the unit test?
Have you tried with a higher batch timeout?
--
Claus Ibsen
Apache Camel Committer
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus
Yes. The "message lost" happens every time I run the code. I think the
problem is not related to batchTimeout. BTW increasing the batchTimeout
to
100 secs has no effect. As you can see in the logs, the messages are
produced very quickly and all of then are passing through the Aggregator.
Looks like the exchange produced by the Aggregator is the one created
when
the message n-1 is aggregated. I am not sure, but I think the exchange
returned by the last aggregator cycle is being ignored.
This is what I think is happening:
For n messages:
-->Exchange(1)--Aggregator-->AggregatedExchange(1)-->
-->Exchange(2),AggregatedExchange(1)-->Aggregator-->AggregatedExchange(2)-->
-->Exchange(3),AggregatedExchange(2)-->Aggregator-->AggregatedExchange(3)-->
...
-->Exchange(n-1),AggregatedExchange(n-2)-->Aggregator-->AggregatedExchange(n-1)-->(this
one is produced by the aggregator)
-->Exchange(n),AggregatedExchange(n-1)-->Aggregator-->AggregatedExchange(n)-->(this
one is being lost or ignored somehow)
Thank you,
--
Wilson Freitas
Vetta Technologies
http://www.vettatech.com
--
View this message in context:
http://www.nabble.com/Aggregator-message-lost-tp25976380p25997564.html
Sent from the Camel - Users mailing list archive at Nabble.com.
--
Claus Ibsen
Apache Camel Committer
Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus