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 for other requests i am getting NULL response.
Can anyone please help me to resolve this issue...
Thanks in advanced.
Daryl Richter-3 wrote:
>
> Sachin-
>
> There's not much to go on here, but it looks to me like your EIP
> components is expecting that the JMSCorrelationId property of the
> message has been set and it isn't at that point. Is your JMS
> consumer properly setting the property?
>
>
> On Feb 24, 2008, at 10:57 PM, sachin2008 wrote:
>
>>
>> Can anyone please resolve this issue.
>>
>> Thanks in advance...
>>
>>
>> sachin2008 wrote:
>>>
>>> Thanks for your reply.
>>>
>>> I am using aggregator pattern to merge all the messages coming from
>>> lw-container with different correlation id's and send to the
>>> provider
>>> queue.
>>>
>>> My use case is:
>>>
>>> JMS consumer ------> cbr-----> pipeline---
>>> |----------lw-container(transformer)
>>>
>>> |----------aggregator(target)---------- JMS provider
>>>
>>> In this i am sending two messages from lw-container to aggregator
>>> with
>>> different correlation ids and it should aggregate those two
>>> messages and
>>> send it to the JMS provider.
>>>
>>> But i am getting the following exception:
>>>
>>> ERROR - EIPComponent - Error processing exchange
>>> InOnly[
>>> id: ID:pc007869-1232-1203652015207-110:0
>>> status: Active
>>> role: provider
>>> service: {http://servicemix.apache.org/poc}aggregator
>>> endpoint: aggreagte
>>> in: <?xml version="1.0" encoding="UTF-8"?><PAY_LOAD>EOS</PAY_LOAD>
>>> ]
>>> java.lang.IllegalArgumentException: Could not retrieve correlation
>>> id for
>>> incomi
>>> ng exchange
>>> at
>>> org.apache.servicemix.eip.support.AbstractAggregator.process(Abstract
>>> Aggregator.java:138)
>>> 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-1232-1203652015207-110:1
>>> status: Active
>>> role: provider
>>> service: {http://servicemix.apache.org/poc}aggregator
>>> endpoint: aggreagte
>>> in: <?xml version="1.0" encoding="UTF-8"?><PAY_LOAD>EOS</PAY_LOAD>
>>> ]
>>> java.lang.IllegalArgumentException: Could not retrieve correlation
>>> id for
>>> incomi
>>> ng exchange
>>> at
>>> org.apache.servicemix.eip.support.AbstractAggregator.process(Abstract
>>> Aggregator.java:138)
>>> 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 - SedaQueue -
>>> org.apache.servicemix.jbi.nmr.flow.seda
>>> [EMAIL PROTECTED] got error processing InOnly[
>>> id: ID:pc007869-1232-1203652015207-109:1
>>> status: Active
>>> role: provider
>>> service: {http://servicemix.apache.org/poc}FileReadService
>>> endpoint: poc_FileReadService
>>> in: <?xml version="1.0" encoding="UTF-8"?><PAY_LOAD>EOS</PAY_LOAD>
>>> ]
>>> java.lang.NullPointerException
>>> at FileReadService.SendResponse(FileReadService.java:42)
>>> at FileReadService.onMessageExchange(FileReadService.java:24)
>>> 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 - SedaQueue -
>>> org.apache.servicemix.jbi.nmr.flow.seda
>>> [EMAIL PROTECTED] got error processing InOnly[
>>> id: ID:pc007869-1232-1203652015207-109:0
>>> status: Active
>>> role: provider
>>> service: {http://servicemix.apache.org/poc}FileReadService
>>> endpoint: poc_FileReadService
>>> in: <?xml version="1.0" encoding="UTF-8"?><PAY_LOAD>EOS</PAY_LOAD>
>>> ]
>>> java.lang.NullPointerException
>>> at FileReadService.SendResponse(FileReadService.java:42)
>>> at FileReadService.onMessageExchange(FileReadService.java:24)
>>> 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 resolve this issue.
>>>
>>> Thanks in advance....
>>>
>>>
>>>
>>> but i am getting an error
>>>
>>> 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-tp15582806s12049p15673584.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>
> --
> Daryl
> http://itsallsemantics.com
>
> "
> -- The Replacements
>
>
>
>
>
>
--
View this message in context:
http://www.nabble.com/Reg%3AAggregator-Pattern-tp15582806s12049p15705730.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.