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 <[email protected]> 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-u...@activemq. apache. org ([email protected])
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.