You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Wilson <wi...@gmail.com> on 2009/10/20 16:43:57 UTC

Aggregator message lost

Hi,

I am using an aggregator to concatenate the body of a bunch of messages into
a single message. The following code illustrates the scenario:

<code>
package my.package;

import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.processor.aggregate.AggregationStrategy;
import org.apache.camel.spring.Main;

public class MyRouteBuilder extends RouteBuilder {
	private int messageIndex = 0;

    public static void main(String... args) {
        Main.main(args);
    }

    public void configure() {
    	
        from("timer://foo?period=500")
        	.process(new Processor() {
				
				public void process(Exchange exchange) throws Exception {
					exchange.getOut().setBody("[myBody-" + (messageIndex++) + "]");
					
					exchange.getOut().setHeader("aggregateGroup", "group1");
				}
			}).to("direct:step1");

        from("direct:step1").multicast().to("direct:step2", "direct:step3");
        
        from("direct:step2").to("direct:aggregator");
        from("direct:step3").to("direct:aggregator");
        
        from("direct:aggregator").aggregate(header("aggregateGroup"), new
AggregationStrategy() {
			
			public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
				
				System.out.println("Getting new exchange in aggretator: " +
newExchange);
				
				if(oldExchange == null){
					return newExchange;
				}else{
					oldExchange.getOut().setBody((String)newExchange.getIn().getBody() +
(String)oldExchange.getIn().getBody());
				}
				
				return oldExchange;
			}
		}).batchSize(10).batchTimeout(2000L).process(new Processor() {
			
			public void process(Exchange exchange) throws Exception {
				System.out.println("Received group: " + exchange.getIn().getBody() + " -
" + exchange.getIn().getHeader("aggregateGroup"));
			}
		});
        
    }
}
</code>

When running, this route configuration generates the following output:

<output>
lease use a packageScan element instead.
[pache.camel.spring.Main.main()] SpringCamelContext             INFO 
Starting Apache Camel as property ShouldStartContext is true
[pache.camel.spring.Main.main()] DefaultCamelContext            INFO  Apache
Camel 2.0.0 (CamelContext:camelContext) is starting
[pache.camel.spring.Main.main()] DefaultCamelContext            INFO  Apache
Camel 2.0.0 (CamelContext:camelContext) started
Getting new exchange in aggretator: Exchange[Message: [myBody-0]]
Getting new exchange in aggretator: Exchange[Message: [myBody-0]]
Getting new exchange in aggretator: Exchange[Message: [myBody-1]]
Getting new exchange in aggretator: Exchange[Message: [myBody-1]]
Getting new exchange in aggretator: Exchange[Message: [myBody-2]]
Getting new exchange in aggretator: Exchange[Message: [myBody-2]]
Getting new exchange in aggretator: Exchange[Message: [myBody-3]]
Getting new exchange in aggretator: Exchange[Message: [myBody-3]]
Getting new exchange in aggretator: Exchange[Message: [myBody-4]]
Getting new exchange in aggretator: Exchange[Message: [myBody-4]]
Received group:
[myBody-4][myBody-3][myBody-3][myBody-2][myBody-2][myBody-1][myBody-1][myBody-0][myBody-0]
- group1
Getting new exchange in aggretator: Exchange[Message: [myBody-5]]
Getting new exchange in aggretator: Exchange[Message: [myBody-5]]
Getting new exchange in aggretator: Exchange[Message: [myBody-6]]
Getting new exchange in aggretator: Exchange[Message: [myBody-6]]
Getting new exchange in aggretator: Exchange[Message: [myBody-7]]
Getting new exchange in aggretator: Exchange[Message: [myBody-7]]
Getting new exchange in aggretator: Exchange[Message: [myBody-8]]
Getting new exchange in aggretator: Exchange[Message: [myBody-8]]
Getting new exchange in aggretator: Exchange[Message: [myBody-9]]
Getting new exchange in aggretator: Exchange[Message: [myBody-9]]
Received group:
[myBody-9][myBody-8][myBody-8][myBody-7][myBody-7][myBody-6][myBody-6][myBody-5][myBody-5]
- group1
Getting new exchange in aggretator: Exchange[Message: [myBody-10]]
Getting new exchange in aggretator: Exchange[Message: [myBody-10]]
Getting new exchange in aggretator: Exchange[Message: [myBody-11]]
Getting new exchange in aggretator: Exchange[Message: [myBody-11]]
Getting new exchange in aggretator: Exchange[Message: [myBody-12]]
Getting new exchange in aggretator: Exchange[Message: [myBody-12]]
Getting new exchange in aggretator: Exchange[Message: [myBody-13]]
Getting new exchange in aggretator: Exchange[Message: [myBody-13]]
Getting new exchange in aggretator: Exchange[Message: [myBody-14]]
Getting new exchange in aggretator: Exchange[Message: [myBody-14]]
Received group:
[myBody-14][myBody-13][myBody-13][myBody-12][myBody-12][myBody-11][myBody-11][myBody-10][myBody-10]
- group1
</output>

The output shows that all messages are passing through the Aggregator but
the last one is missing in the resulting Exchange body. For example: the
first message group is composed by 10 messages:
{[myBody-0],[myBody-0],[myBody-1],[myBody-1],[myBody-2],[myBody-2],[myBody-3],[myBody-3],[myBody-4],[myBody-4]}
but the resulting body is missing the last message ([myBody-14]).

Am I doing anything wrong?

Thank you.

--
Wilson Freitas
Vetta Technologies
http://www.vettatech.com
-- 
View this message in context: http://www.nabble.com/Aggregator-message-lost-tp25976380p25976380.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Re: Aggregator message lost

Posted by Willem Jiang <wi...@gmail.com>.
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 <wi...@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
>>
>>
> 


Re: Re: Aggregator message lost

Posted by br...@gmail.com.
Maybe it will make sense if you consider the aggregation is been done over  
incoming messages.


Cheers,
Bruno

On Nov 16, 2009 2:28pm, Wilson <wi...@gmail.com> 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.lists@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

> >

> >



> --

> View this message in context:  
> http://old.nabble.com/Aggregator-message-lost-tp25976380p26374868.html

> Sent from the Camel - Users mailing list archive at Nabble.com.




Re: Aggregator message lost

Posted by Wilson <wi...@gmail.com>.
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 <wi...@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
> 
> 

-- 
View this message in context: http://old.nabble.com/Aggregator-message-lost-tp25976380p26374868.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Re: Aggregator message lost

Posted by Claus Ibsen <cl...@gmail.com>.
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 <wi...@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

Re: Aggregator message lost

Posted by Wilson <wi...@gmail.com>.
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.


Re: Aggregator message lost

Posted by Claus Ibsen <cl...@gmail.com>.
Hi

Do you "loose" message every time you run the unit test?
Have you tried with a higher batch timeout?



On Tue, Oct 20, 2009 at 4:43 PM, Wilson <wi...@gmail.com> wrote:
>
> Hi,
>
> I am using an aggregator to concatenate the body of a bunch of messages into
> a single message. The following code illustrates the scenario:
>
> <code>
> package my.package;
>
> import org.apache.camel.Exchange;
> import org.apache.camel.Processor;
> import org.apache.camel.builder.RouteBuilder;
> import org.apache.camel.processor.aggregate.AggregationStrategy;
> import org.apache.camel.spring.Main;
>
> public class MyRouteBuilder extends RouteBuilder {
>        private int messageIndex = 0;
>
>    public static void main(String... args) {
>        Main.main(args);
>    }
>
>    public void configure() {
>
>        from("timer://foo?period=500")
>                .process(new Processor() {
>
>                                public void process(Exchange exchange) throws Exception {
>                                        exchange.getOut().setBody("[myBody-" + (messageIndex++) + "]");
>
>                                        exchange.getOut().setHeader("aggregateGroup", "group1");
>                                }
>                        }).to("direct:step1");
>
>        from("direct:step1").multicast().to("direct:step2", "direct:step3");
>
>        from("direct:step2").to("direct:aggregator");
>        from("direct:step3").to("direct:aggregator");
>
>        from("direct:aggregator").aggregate(header("aggregateGroup"), new
> AggregationStrategy() {
>
>                        public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
>
>                                System.out.println("Getting new exchange in aggretator: " +
> newExchange);
>
>                                if(oldExchange == null){
>                                        return newExchange;
>                                }else{
>                                        oldExchange.getOut().setBody((String)newExchange.getIn().getBody() +
> (String)oldExchange.getIn().getBody());
>                                }
>
>                                return oldExchange;
>                        }
>                }).batchSize(10).batchTimeout(2000L).process(new Processor() {
>
>                        public void process(Exchange exchange) throws Exception {
>                                System.out.println("Received group: " + exchange.getIn().getBody() + " -
> " + exchange.getIn().getHeader("aggregateGroup"));
>                        }
>                });
>
>    }
> }
> </code>
>
> When running, this route configuration generates the following output:
>
> <output>
> lease use a packageScan element instead.
> [pache.camel.spring.Main.main()] SpringCamelContext             INFO
> Starting Apache Camel as property ShouldStartContext is true
> [pache.camel.spring.Main.main()] DefaultCamelContext            INFO  Apache
> Camel 2.0.0 (CamelContext:camelContext) is starting
> [pache.camel.spring.Main.main()] DefaultCamelContext            INFO  Apache
> Camel 2.0.0 (CamelContext:camelContext) started
> Getting new exchange in aggretator: Exchange[Message: [myBody-0]]
> Getting new exchange in aggretator: Exchange[Message: [myBody-0]]
> Getting new exchange in aggretator: Exchange[Message: [myBody-1]]
> Getting new exchange in aggretator: Exchange[Message: [myBody-1]]
> Getting new exchange in aggretator: Exchange[Message: [myBody-2]]
> Getting new exchange in aggretator: Exchange[Message: [myBody-2]]
> Getting new exchange in aggretator: Exchange[Message: [myBody-3]]
> Getting new exchange in aggretator: Exchange[Message: [myBody-3]]
> Getting new exchange in aggretator: Exchange[Message: [myBody-4]]
> Getting new exchange in aggretator: Exchange[Message: [myBody-4]]
> Received group:
> [myBody-4][myBody-3][myBody-3][myBody-2][myBody-2][myBody-1][myBody-1][myBody-0][myBody-0]
> - group1
> Getting new exchange in aggretator: Exchange[Message: [myBody-5]]
> Getting new exchange in aggretator: Exchange[Message: [myBody-5]]
> Getting new exchange in aggretator: Exchange[Message: [myBody-6]]
> Getting new exchange in aggretator: Exchange[Message: [myBody-6]]
> Getting new exchange in aggretator: Exchange[Message: [myBody-7]]
> Getting new exchange in aggretator: Exchange[Message: [myBody-7]]
> Getting new exchange in aggretator: Exchange[Message: [myBody-8]]
> Getting new exchange in aggretator: Exchange[Message: [myBody-8]]
> Getting new exchange in aggretator: Exchange[Message: [myBody-9]]
> Getting new exchange in aggretator: Exchange[Message: [myBody-9]]
> Received group:
> [myBody-9][myBody-8][myBody-8][myBody-7][myBody-7][myBody-6][myBody-6][myBody-5][myBody-5]
> - group1
> Getting new exchange in aggretator: Exchange[Message: [myBody-10]]
> Getting new exchange in aggretator: Exchange[Message: [myBody-10]]
> Getting new exchange in aggretator: Exchange[Message: [myBody-11]]
> Getting new exchange in aggretator: Exchange[Message: [myBody-11]]
> Getting new exchange in aggretator: Exchange[Message: [myBody-12]]
> Getting new exchange in aggretator: Exchange[Message: [myBody-12]]
> Getting new exchange in aggretator: Exchange[Message: [myBody-13]]
> Getting new exchange in aggretator: Exchange[Message: [myBody-13]]
> Getting new exchange in aggretator: Exchange[Message: [myBody-14]]
> Getting new exchange in aggretator: Exchange[Message: [myBody-14]]
> Received group:
> [myBody-14][myBody-13][myBody-13][myBody-12][myBody-12][myBody-11][myBody-11][myBody-10][myBody-10]
> - group1
> </output>
>
> The output shows that all messages are passing through the Aggregator but
> the last one is missing in the resulting Exchange body. For example: the
> first message group is composed by 10 messages:
> {[myBody-0],[myBody-0],[myBody-1],[myBody-1],[myBody-2],[myBody-2],[myBody-3],[myBody-3],[myBody-4],[myBody-4]}
> but the resulting body is missing the last message ([myBody-14]).
>
> Am I doing anything wrong?
>
> Thank you.
>
> --
> Wilson Freitas
> Vetta Technologies
> http://www.vettatech.com
> --
> View this message in context: http://www.nabble.com/Aggregator-message-lost-tp25976380p25976380.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>



-- 
Claus Ibsen
Apache Camel Committer

Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus