camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Ibsen <claus.ib...@gmail.com>
Subject Re: Messages not being delivered once SEDA concurrentConsumers set
Date Thu, 30 Apr 2009 07:47:25 GMT
On Wed, Apr 29, 2009 at 6:16 AM, rsmith <rsmith7209@gmail.com> wrote:
>
> Found the problem - concurrentConsumers had to be specified both at the
> 'from' endpoint as well as the 'to' endpoint.  Following is a minimal
> project that demonstrates this:
> http://www.nabble.com/file/p23290248/camel_concurrent_seda.tar.bz2
> camel_concurrent_seda.tar.bz2 .
>
> Is this a bug?
Yes and no. The endpoint registry is fully URI based and thus in the registry
- seda:foo
- seda:foo?concurrentConsumer=2

Not the same. So you end up with 2 endpoints, albeit they have the
same logical queue name = foo.

What we really want for the SEDA component is to be logical queue
based. So it will register the endpoint as "seda:foo" and you can
still look it up whether you have the concurrentConsumer option or
not.

So to be consistent its fully URI based when doing a endpoint lookup by URI.




>
>
>
> Claus Ibsen-2 wrote:
>>
>> On Wed, Apr 22, 2009 at 11:43 PM, rsmith <rsmith7209@gmail.com> wrote:
>>>
>>> I'm evaluating Camel and ran into a test case where messages aren't being
>>> delivered to a component for some reason.  Being new to Camel this is
>>> probably a case of my test routes not being set up correctly.
>>>
>>> Here is what I have:
>>>
>>>        <route>
>>>            <!-- in stream to allow you to enter some text in the console
>>> -->
>>>            <from
>>> uri="stream:in?initialPromptDelay=4000&amp;promptDelay=2000&amp;promptMessage=Enter
>>> the number of messages to generate:"/>
>>>
>>>            <to uri="bean:orderSvc?method=createOrderMsg"/>
>>>
>>>            <split parallelProcessing="true">
>>>                <!-- Splits received order msg into multiple orders
-->
>>>                <method bean="orderSvc" method="splitOrders"/>
>>>
>>>                <to uri="seda:receiveOrderQueue"/>
>>>            </split>
>>>        </route>
>>>
>>>        <route>
>>>            <from uri="seda:receiveOrderQueue"/>
>>>
>>>            <to uri="bean:orderSvc?method=a"/>
>>>            <to uri="bean:orderSvc?method=b"/>
>>>            <to uri="seda:fulfillOrderQueue"/>
>>>        </route>
>>>
>>>        <route>
>>>            <from uri="seda:fulfillOrderQueue?concurrentConsumers=5"/>
>>>            <to uri="bean:orderSvc?method=fulfillOrder"/>
>>>        </route>
>>>
>>> -----------------------
>>>
>>> The problem is at the last step - orderSvc.fulfillOrder is never called.
>>>  If
>>> I remove the concurrentConsumers=5, it does get called.
>>>
>>> I'd like multiple threads to concurrently fulfill orders.  Am I using the
>>> SEDA concurrentConsumers option incorrectly?
>> What version of Camel are you using? This option was introduced in
>> Camel 1.6.1 and newer.
>>
>>
>>
>>>
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/Messages-not-being-delivered-once-SEDA-concurrentConsumers-set-tp23176637p23176637.html
>>> Sent from the Camel - Users (activemq) 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
>> Apache Camel Reference Card:
>> http://refcardz.dzone.com/refcardz/enterprise-integration
>>
>>
>
> --
> View this message in context: http://www.nabble.com/Messages-not-being-delivered-once-SEDA-concurrentConsumers-set-tp23176637p23290248.html
> Sent from the Camel - Users (activemq) 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
Apache Camel Reference Card:
http://refcardz.dzone.com/refcardz/enterprise-integration

Mime
View raw message