On Wed, Apr 29, 2009 at 6:16 AM, rsmith <[email protected]> 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 <[email protected]> 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&promptDelay=2000&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
