Presently i am able to aggregate the messages through aggregator. 

But there is a problem..... 

First of all i will explain my usecase: 

JMSConsumer------>static
receipientlist----->lw-container------>aggregator------>JMSProvider 

I am sending a request from JMSconsumer to static receipient list. from
static receipientlist i am sending three inonly messages to lw-container.In
lw-container i have used three components namely A,B and C. From component
A, i am sending an inonly message to aggregator by setting index as 0,count
as 3 and corelationid as id  and From Component B,  i am sending an inonly
message to aggregator by setting index as 1,count as 3 and corelationid as
id and From Component C, i am sending an inonly message to aggregator by
setting index as 2,count as 3 and corelationid as id.I am able to get the
aggregated message from the aggregator to JMSProvider. 

Problems:
I am getting aggregated message in JMSProvider successfully only for the
first request . 

But if i have given another request it is giving some exception like: 

ERROR - EIPComponent                   - Error processing exchange InOnly[ 
  id: ID:pc007869-2244-1204099875217-12:313 
  status: Active 
  role: provider 
  endpoint: aggregate 
  in: <?xml version="1.0" encoding="UTF-8"?><EOS><PAYL_HDR> <DUNS_NBR>
313955098 
</DUNS_NBR></PAYL_HDR></EOS> 
] 
java.lang.IllegalStateException: Message with index 0 has already been
received 
        at
org.apache.servicemix.eip.patterns.SplitAggregator.addMessage(SplitAg 
gregator.java:213) 
        at
org.apache.servicemix.eip.support.AbstractAggregator.process(Abstract 
Aggregator.java:159) 
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLi 
feCycle.java:489) 
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(Async 
BaseLifeCycle.java:441) 
        at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLife 
Cycle.java:46) 
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBoun 
d(DeliveryChannelImpl.java:593) 
        at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlo 
w.java:174) 
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.j 
ava:176) 
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.jav 
a:134) 
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Wor 
ker.runTask(ThreadPoolExecutor.java:665) 
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Wor 
ker.run(ThreadPoolExecutor.java:690) 
        at java.lang.Thread.run(Thread.java:595) 
ERROR - EIPComponent                   - Error processing exchange InOnly[ 
  id: ID:pc007869-2244-1204099875217-13:286 
  status: Active 
  role: provider 
  endpoint: aggregate 
  in: <?xml version="1.0" encoding="UTF-8"?><EWOW><FAM_TREE_LINK> <ASSN>
<ASSN_T 
YPE_CD>1019</ASSN_TYPE_CD></ASSN></FAM_TREE_LINK></EWOW> 
] 
java.lang.IllegalStateException: Message with index 1 has already been
received 
        at
org.apache.servicemix.eip.patterns.SplitAggregator.addMessage(SplitAg 
gregator.java:213) 
        at
org.apache.servicemix.eip.support.AbstractAggregator.process(Abstract 
Aggregator.java:159) 
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLi 
feCycle.java:489) 
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(Async 
BaseLifeCycle.java:441) 
        at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLife 
Cycle.java:46) 
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBoun 
d(DeliveryChannelImpl.java:593) 
        at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlo 
w.java:174) 
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.j 
ava:176) 
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.jav 
a:134) 
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Wor 
ker.runTask(ThreadPoolExecutor.java:665) 
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Wor 
ker.run(ThreadPoolExecutor.java:690) 
        at java.lang.Thread.run(Thread.java:595) 
ERROR - EIPComponent                   - Error processing exchange InOnly[ 
  id: ID:pc007869-2244-1204099875217-14:293 
  status: Active 
  role: provider 
  endpoint: aggregate 
  in: <?xml version="1.0" encoding="UTF-8"?><MI><PAYL_HDR> <DUNS_NBR>
313955098< 
/DUNS_NBR></PAYL_HDR></MI> 
] 
java.lang.IllegalStateException: Message with index 2 has already been
received 
        at
org.apache.servicemix.eip.patterns.SplitAggregator.addMessage(SplitAg 
gregator.java:213) 
        at
org.apache.servicemix.eip.support.AbstractAggregator.process(Abstract 
Aggregator.java:159) 
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLi 
feCycle.java:489) 
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(Async 
BaseLifeCycle.java:441) 
        at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLife 
Cycle.java:46) 
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBoun 
d(DeliveryChannelImpl.java:593) 
        at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlo 
w.java:174) 
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.j 
ava:176) 
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.jav 
a:134) 
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Wor 
ker.runTask(ThreadPoolExecutor.java:665) 
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Wor 
ker.run(ThreadPoolExecutor.java:690) 
        at java.lang.Thread.run(Thread.java:595) 
ERROR - EIPComponent                   - Error processing exchange InOnly[ 
  id: ID:pc007869-2244-1204099875217-12:315 
  status: Active 
  role: provider 
  endpoint: aggregate 
  in: <?xml version="1.0" encoding="UTF-8"?><EOS><PAYL_HDR> <DUNS_NBR>
313955098 
</DUNS_NBR></PAYL_HDR></EOS> 
] 
java.lang.IllegalStateException: Message with index 0 has already been
received 
        at
org.apache.servicemix.eip.patterns.SplitAggregator.addMessage(SplitAg 
gregator.java:213) 
        at
org.apache.servicemix.eip.support.AbstractAggregator.process(Abstract 
Aggregator.java:159) 
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLi 
feCycle.java:489) 
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(Async 
BaseLifeCycle.java:441) 
        at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLife 
Cycle.java:46) 
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBoun 
d(DeliveryChannelImpl.java:593) 
        at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlo 
w.java:174) 
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.j 
ava:176) 
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.jav 
a:134) 
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Wor 
ker.runTask(ThreadPoolExecutor.java:665) 
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Wor 
ker.run(ThreadPoolExecutor.java:690) 
        at java.lang.Thread.run(Thread.java:595) 
ERROR - EIPComponent                   - Error processing exchange InOnly[ 
  id: ID:pc007869-2244-1204099875217-12:317 
  status: Active 
  role: provider 
  endpoint: aggregate 
  in: <?xml version="1.0" encoding="UTF-8"?><EOS><PAYL_HDR> <DUNS_NBR>
313955098 
</DUNS_NBR></PAYL_HDR></EOS> 
] 
java.lang.IllegalStateException: Message with index 0 has already been
received 
        at
org.apache.servicemix.eip.patterns.SplitAggregator.addMessage(SplitAg 
gregator.java:213) 
        at
org.apache.servicemix.eip.support.AbstractAggregator.process(Abstract 
Aggregator.java:159) 
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLi 
feCycle.java:489) 
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(Async 
BaseLifeCycle.java:441) 
        at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLife 
Cycle.java:46) 
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBoun 
d(DeliveryChannelImpl.java:593) 
        at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlo 
w.java:174) 
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.j 
ava:176) 
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.jav 
a:134) 
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Wor 
ker.runTask(ThreadPoolExecutor.java:665) 
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Wor 
ker.run(ThreadPoolExecutor.java:690) 
        at java.lang.Thread.run(Thread.java:595) 
ERROR - EIPComponent                   - Error processing exchange InOnly[ 
  id: ID:pc007869-2244-1204099875217-12:319 
  status: Active 
  role: provider 
  endpoint: aggregate 
  in: <?xml version="1.0" encoding="UTF-8"?><EOS><PAYL_HDR> <DUNS_NBR>
313955098 
</DUNS_NBR></PAYL_HDR></EOS> 
] 
java.lang.IllegalStateException: Message with index 0 has already been
received 
        at
org.apache.servicemix.eip.patterns.SplitAggregator.addMessage(SplitAg 
gregator.java:213) 
        at
org.apache.servicemix.eip.support.AbstractAggregator.process(Abstract 
Aggregator.java:159) 
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLi 
feCycle.java:489) 
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(Async 
BaseLifeCycle.java:441) 
        at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLife 
Cycle.java:46) 
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBoun 
d(DeliveryChannelImpl.java:593) 
        at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlo 
w.java:174) 
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.j 
ava:176) 
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.jav 
a:134) 
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Wor 
ker.runTask(ThreadPoolExecutor.java:665) 
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Wor 
ker.run(ThreadPoolExecutor.java:690) 
        at java.lang.Thread.run(Thread.java:595) 
ERROR - EIPComponent                   - Error processing exchange InOnly[ 
  id: ID:pc007869-2244-1204099875217-13:288 
  status: Active 
  role: provider 
  endpoint: aggregate 
  in: <?xml version="1.0" encoding="UTF-8"?><EWOW><FAM_TREE_LINK> <ASSN>
<ASSN_T 
YPE_CD>1019</ASSN_TYPE_CD></ASSN></FAM_TREE_LINK></EWOW> 
] 
java.lang.IllegalStateException: Message with index 1 has already been
received 
        at
org.apache.servicemix.eip.patterns.SplitAggregator.addMessage(SplitAg 
gregator.java:213) 
        at
org.apache.servicemix.eip.support.AbstractAggregator.process(Abstract 
Aggregator.java:159) 
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLi 
feCycle.java:489) 
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(Async 
BaseLifeCycle.java:441) 
        at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLife 
Cycle.java:46) 
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBoun 
d(DeliveryChannelImpl.java:593) 
        at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlo 
w.java:174) 
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.j 
ava:176) 
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.jav 
a:134) 
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Wor 
ker.runTask(ThreadPoolExecutor.java:665) 
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Wor 
ker.run(ThreadPoolExecutor.java:690) 
        at java.lang.Thread.run(Thread.java:595) 
ERROR - EIPComponent                   - Error processing exchange InOnly[ 
  id: ID:pc007869-2244-1204099875217-14:295 
  status: Active 
  role: provider 
  endpoint: aggregate 
  in: <?xml version="1.0" encoding="UTF-8"?><MI><PAYL_HDR> <DUNS_NBR>
313955098< 
/DUNS_NBR></PAYL_HDR></MI> 
] 
java.lang.IllegalStateException: Message with index 2 has already been
received 
        at
org.apache.servicemix.eip.patterns.SplitAggregator.addMessage(SplitAg 
gregator.java:213) 
        at
org.apache.servicemix.eip.support.AbstractAggregator.process(Abstract 
Aggregator.java:159) 
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLi 
feCycle.java:489) 
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(Async 
BaseLifeCycle.java:441) 
        at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLife 
Cycle.java:46) 
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBoun 
d(DeliveryChannelImpl.java:593) 
        at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlo 
w.java:174) 
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.j 
ava:176) 
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.jav 
a:134) 
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Wor 
ker.runTask(ThreadPoolExecutor.java:665) 
        at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Wor 
ker.run(ThreadPoolExecutor.java:690) 
        at java.lang.Thread.run(Thread.java:595) 

Can anyone please help me to resolve this issue... 

Thanks in advanced. 


gnodet wrote:
> 
> The jsr181 component can be configured with a given instance of the
> class that will be used to process all the incoming exchanges.  You
> just need to make sure your code is designed to be used that way: a
> single instance will receive all calls concurrently, as in the
> servlets world.  The servicemix-bean behaves the same way.
> 
> Another way would be to implement your own aggregation strategy using
> servicemix-eip or camel.
> Servicemix-eip already provides some aggregation and can be extended
> (but does not use any jaxb marshaling, so it depends if you need it or
> not).  Camel is really flexible and powerful and it may be worth to
> take a look at it.
> 
> On Wed, Feb 20, 2008 at 6:37 AM, sachin2008 <[EMAIL PROTECTED]> wrote:
>>
>>  Hi,
>>
>>  I am having a scenario:
>>
>>  HTTP(BC)-------> JSR----------->Aggregator---------------->HTTP(BC)
>>
>>  My requirement is:
>>
>>  In JSR, we need incorporate the multi threading logic for getting the
>> data
>>  from different data sources and by using the aggregator pattern we need
>> to
>>  aggregate the xml data coming from different datasources and send the
>>  response back to the HTTP(BC).
>>
>>  Can anyone please tell me how to use the aggregator pattern in this
>> regard.
>>
>>  --
>>  View this message in context:
>> http://www.nabble.com/Reg%3AAggregator-Pattern-tp15582806s12049p15582806.html
>>  Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
> 
> 
> 
> -- 
> Cheers,
> Guillaume Nodet
> ------------------------
> Blog: http://gnodet.blogspot.com/
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Reg%3AAggregator-Pattern-tp15582806s12049p15709304.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to