camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Manish K Bafna <Manish.Ba...@headstrong.com>
Subject RE: RE: Multiple consumers getting created in custom endpoint
Date Thu, 09 Apr 2009 04:21:58 GMT
I guess there was an issue with Camel 1.5. 
When starting the context, the routes are added in the list. 
This route list is not cleared during stop. 
So when the next time, the same context is started again, the routes gets added to the list
again thereby duplication. 

I solved the issue by clearing the route list during the stop of the context. 

Thanks, 
Manish. 

-----Original Message-----
From: Claus Ibsen [mailto:claus.ibsen@gmail.com] 
Sent: Wednesday, April 08, 2009 8:39 PM
To: users@camel.apache.org
Subject: Re: RE: Multiple consumers getting created in custom endpoint

Hi

I would suggest to use the JDK concurrency stuff for spawning threads.

See for instance the SedaConsumer
https://svn.apache.org/repos/asf/camel/trunk/camel-core/src/main/java/org/apache/camel/component/seda/SedaConsumer.java


On Wed, Apr 8, 2009 at 4:53 PM,  <bruno.borges@gmail.com> wrote:
> I think you should "kill" your threads on method doStop() or stop() of your
> consumer.
>
> They are invoked when CamelContext is stopped.
>
> Cheers,
> Bruno Borges
>
> On Apr 8, 2009 12:38am, Manish K Bafna <Manish.Bafna@headstrong.com> wrote:
>>
>> The same is visible in JMS component too.
>
>> Steps:
>
>> 1. Create a route from JMS topic1 to JMS queue1
>
>> 2. Start the context
>
>> 3. Send 1 message to the topic.
>
>> 4. The queue will also receive 1 message.
>
>> 5. Stop the context
>
>> 6. Start the context again
>
>> 7. Send 1 message to the topic.
>
>> 8. the same message will be seen in the queue 2 times when there should be
>> only 1.
>
>> 9. Repeat the above steps and the number increases.
>
>
>
>> Thanks,
>
>> Manish.
>
>
>
>> -----Original Message-----
>
>> From: Manish K Bafna
>
>> Sent: Tuesday, April 07, 2009 6:45 PM
>
>> To: camel-user@activemq. apache. org (camel-user@activemq.apache.org)
>
>> Subject: Multiple consumers getting created in custom endpoint
>
>
>
>> Hi,
>
>> I am creating my own custom endpoint using Camel 1.5
>
>
>
>> public class AbcEndpoint extends DefaultEndpoint {
>
>> public Consumer createConsumer(Processor processor) throws Exception {
>
>> Consumer c=new AbcConsumer(this,processor);
>
>> return c;
>
>> }
>
>> .....
>
>> }
>
>
>
>> public class AbcConsumer extends DefaultConsumer
>
>> {
>
>> protected void doStart() throws Exception {..do something...}
>
>> protected void doStop() throws Exception {--do something--}
>
>> }
>
>
>
>> When is start the context for the 1st time, 1 consumer is created, when I
>> stop it and start it again, createConsumer() is called 2 times and so on.
>
>> Do I have to do something to avoid this behavior. The problem is in the
>> doStart() method of the Consumer, I am creating my own threads. Now since
>> createConsumer() is being 2 times, doStart() is being called 2 times and
>> multiple threads are being created.
>
>
>
>
>
>
>
>
>
>
>
>



-- 
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