You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Rob Davies <ra...@gmail.com> on 2010/01/13 19:52:51 UTC

Re: Trivial embedded broker not shutting down cleanly because of lingering threads

Do you actually call stop() on the broker ? - Have you disabled the  
shutdownHook from the broker ?
If you could post your code - or sample of it - might help identify  
why your main isn't shutting down
On 13 Jan 2010, at 17:50, Fred Moore wrote:

> Hi folks,
>
> we have a 5.3.0 embedded broker that refuses to shutdown cleanly  
> because of
> lingering threads.
>
> We reproduced this with a very very basic configuration: with just  
> vm & jmx
> connectors, no producers and no consumers and and this extremely  
> simple
> main() program: http://pastebin.com/f2784245a that:
>
> 1\ Starts up an embedded broker
>
> 2\ Waits for the user to press a key
>
> 3\ Stops the broker
>
> 4\ Monitors (polling every few seconds) the number of lingering  
> threads
>
> What we experience is that after step 1\ (broker startup) this is  
> the list
> of active threads...
>
> * [main] Group: main
> * [ActiveMQ Scheduler] (Daemon) Group: main
> * [ActiveMQ Data File Writer] (Daemon) Group: main
> * [Timer-0] (Daemon) Group: main
> * [JMX connector] (Daemon) Group: main
>
> ...but a long time (dozens of seconds) after step 3\ (broker  
> shutdown) these
> threads are still active:
>
> * [main]  Group: main
> * [ActiveMQ Scheduler] (Daemon) Group: main
> * [Timer-0] (Daemon) Group: main
>
> Questions:
> Q1\ Are we missing something obvious?
> Q2\ Is there a better way to shutdown an embedded broker?
> Q3\ Doing it the hard way via system.exit() is going to get us into  
> worse
> troubles? (data corruption & co)
>
> Thanks in advance for your help.
> Cheers,
> F.
>
>
>
>
> The embedding was performed

Rob Davies
http://twitter.com/rajdavies
I work here: http://fusesource.com
My Blog: http://rajdavies.blogspot.com/
I'm writing this: http://www.manning.com/snyder/






Re: Trivial embedded broker not shutting down cleanly because of lingering threads

Posted by Rob Davies <ra...@gmail.com>.
Hi Fred,

thanks for raising the issue - the book is nearly complete - but will  
see if we can fit it in

thanks,

Rob
On 14 Jan 2010, at 15:45, Fred Moore wrote:

> Hi Rob,
>
> thanks for your help so far, I created
> http://issues.apache.org/activemq/browse/AMQ-2568 "Embedded broker not
> shutting down cleanly because of lingering threads" for future  
> reference.
>
> Also, please make sure that any relevant considerations stemming  
> from this
> thread will be captured in Chapter 8 "Embedding ActiveMQ" of that  
> great book
> (http://www.manning.com/snyder/) of yours [et al.]!
>
> Cheers,
> F.
>
>
>
> On Thu, Jan 14, 2010 at 1:41 PM, Rob Davies <ra...@gmail.com>  
> wrote:
>
>> Hi Fred,
>>
>> I can confirm most of what you are seeing - will look at the best  
>> way to
>> handle the scheduler case - might make more sense for it not to be  
>> static.
>> The [Timer-0] thread - I'm not seeing that - though I'm working  
>> from trunk
>>
>> cheers,
>>
>> Rob
>>
>> On 14 Jan 2010, at 11:51, Fred Moore wrote:
>>
>> Hi Rob,
>>>
>>> FWIW here is the ThreadExplorer class: http://pastebin.com/f1aa2a099
>>>
>>> Do you actually call stop() on the broker ?
>>>>
>>> Yes.
>>>
>>> Have you disabled the shutdownHook from the broker ?
>>>>
>>> No, we just did it but nothing has changed.
>>>
>>> In the meantime we experimented further and we were able to  
>>> shutdown one
>>> of
>>> the lingering threads -- "[ActiveMQ Scheduler]" -- by using this  
>>> snippet
>>> to
>>> our code:
>>>
>>> Scheduler scheduler = Scheduler.getInstance();
>>> scheduler.shutdown();
>>>
>>> After doing this the other lingering thread -- "[Timer-0]" -- did  
>>> not go
>>> away, but at least we discovered that this timer is JMX related:  
>>> if we
>>> disable JMX connector the timer disappear.
>>>
>>> Unfortunately we really need JMX connector, so this is causing a  
>>> bit of a
>>> problem... any clues anyone?
>>>
>>> Cheers,
>>> F.
>>>
>>> PS: ...http://issues.apache.org/activemq/browse/AMQ-1214 "threads  
>>> not
>>> stopping causing memory leaks which can lead to OutOfMemoryError"
>>> ...sounds
>>> related to this.
>>>
>>>
>>>
>>>
>>>
>>> On Thu, Jan 14, 2010 at 12:59 AM, Rob Davies <ra...@gmail.com>  
>>> wrote:
>>>
>>> oops - sry Fred - read your first email too quick - could you post  
>>> the
>>>> ThreadExplorer class too ?
>>>>
>>>> thanks,
>>>>
>>>> Rob
>>>>
>>>> On 13 Jan 2010, at 22:24, Fred Moore wrote:
>>>>
>>>> Hi Rob,
>>>>
>>>>>
>>>>> If you could post your code - or sample of it - might help
>>>>>
>>>>>> identify why your main isn't shutting down
>>>>>>
>>>>>>
>>>>> I actually did... can you access this pastebin here:
>>>>> http://pastebin.com/f2784245a ?
>>>>>
>>>>> Cheers,
>>>>> F.
>>>>>
>>>>> On Wed, Jan 13, 2010 at 7:52 PM, Rob Davies <ra...@gmail.com>
>>>>> wrote:
>>>>>
>>>>> Do you actually call stop() on the broker ? - Have you disabled  
>>>>> the
>>>>>
>>>>>> shutdownHook from the broker ?
>>>>>> If you could post your code - or sample of it - might help  
>>>>>> identify why
>>>>>> your main isn't shutting down
>>>>>>
>>>>>> On 13 Jan 2010, at 17:50, Fred Moore wrote:
>>>>>>
>>>>>> Hi folks,
>>>>>>
>>>>>>
>>>>>>> we have a 5.3.0 embedded broker that refuses to shutdown cleanly
>>>>>>> because
>>>>>>> of
>>>>>>> lingering threads.
>>>>>>>
>>>>>>> We reproduced this with a very very basic configuration: with  
>>>>>>> just vm
>>>>>>> &
>>>>>>> jmx
>>>>>>> connectors, no producers and no consumers and and this extremely
>>>>>>> simple
>>>>>>> main() program: http://pastebin.com/f2784245a that:
>>>>>>>
>>>>>>> 1\ Starts up an embedded broker
>>>>>>>
>>>>>>> 2\ Waits for the user to press a key
>>>>>>>
>>>>>>> 3\ Stops the broker
>>>>>>>
>>>>>>> 4\ Monitors (polling every few seconds) the number of lingering
>>>>>>> threads
>>>>>>>
>>>>>>> What we experience is that after step 1\ (broker startup) this  
>>>>>>> is the
>>>>>>> list
>>>>>>> of active threads...
>>>>>>>
>>>>>>> * [main] Group: main
>>>>>>> * [ActiveMQ Scheduler] (Daemon) Group: main
>>>>>>> * [ActiveMQ Data File Writer] (Daemon) Group: main
>>>>>>> * [Timer-0] (Daemon) Group: main
>>>>>>> * [JMX connector] (Daemon) Group: main
>>>>>>>
>>>>>>> ...but a long time (dozens of seconds) after step 3\ (broker  
>>>>>>> shutdown)
>>>>>>> these
>>>>>>> threads are still active:
>>>>>>>
>>>>>>> * [main]  Group: main
>>>>>>> * [ActiveMQ Scheduler] (Daemon) Group: main
>>>>>>> * [Timer-0] (Daemon) Group: main
>>>>>>>
>>>>>>> Questions:
>>>>>>> Q1\ Are we missing something obvious?
>>>>>>> Q2\ Is there a better way to shutdown an embedded broker?
>>>>>>> Q3\ Doing it the hard way via system.exit() is going to get us  
>>>>>>> into
>>>>>>> worse
>>>>>>> troubles? (data corruption & co)
>>>>>>>
>>>>>>> Thanks in advance for your help.
>>>>>>> Cheers,
>>>>>>> F.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> The embedding was performed
>>>>>>>
>>>>>>>
>>>>>>> Rob Davies
>>>>>> http://twitter.com/rajdavies
>>>>>> I work here: http://fusesource.com
>>>>>> My Blog: http://rajdavies.blogspot.com/
>>>>>> I'm writing this: http://www.manning.com/snyder/
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Rob Davies
>>>> http://twitter.com/rajdavies
>>>> I work here: http://fusesource.com
>>>> My Blog: http://rajdavies.blogspot.com/
>>>> I'm writing this: http://www.manning.com/snyder/
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>> Rob Davies
>> http://twitter.com/rajdavies
>> I work here: http://fusesource.com
>> My Blog: http://rajdavies.blogspot.com/
>> I'm writing this: http://www.manning.com/snyder/
>>
>>
>>
>>
>>
>>

Rob Davies
http://twitter.com/rajdavies
I work here: http://fusesource.com
My Blog: http://rajdavies.blogspot.com/
I'm writing this: http://www.manning.com/snyder/






Re: Trivial embedded broker not shutting down cleanly because of lingering threads

Posted by Fred Moore <fr...@gmail.com>.
Hi Rob,

thanks for your help so far, I created
http://issues.apache.org/activemq/browse/AMQ-2568 "Embedded broker not
shutting down cleanly because of lingering threads" for future reference.

Also, please make sure that any relevant considerations stemming from this
thread will be captured in Chapter 8 "Embedding ActiveMQ" of that great book
(http://www.manning.com/snyder/) of yours [et al.]!

Cheers,
F.



On Thu, Jan 14, 2010 at 1:41 PM, Rob Davies <ra...@gmail.com> wrote:

> Hi Fred,
>
> I can confirm most of what you are seeing - will look at the best way to
> handle the scheduler case - might make more sense for it not to be static.
> The [Timer-0] thread - I'm not seeing that - though I'm working from trunk
>
> cheers,
>
> Rob
>
> On 14 Jan 2010, at 11:51, Fred Moore wrote:
>
>  Hi Rob,
>>
>> FWIW here is the ThreadExplorer class: http://pastebin.com/f1aa2a099
>>
>>  Do you actually call stop() on the broker ?
>>>
>> Yes.
>>
>>  Have you disabled the shutdownHook from the broker ?
>>>
>> No, we just did it but nothing has changed.
>>
>> In the meantime we experimented further and we were able to shutdown one
>> of
>> the lingering threads -- "[ActiveMQ Scheduler]" -- by using this snippet
>> to
>> our code:
>>
>> Scheduler scheduler = Scheduler.getInstance();
>> scheduler.shutdown();
>>
>> After doing this the other lingering thread -- "[Timer-0]" -- did not go
>> away, but at least we discovered that this timer is JMX related: if we
>> disable JMX connector the timer disappear.
>>
>> Unfortunately we really need JMX connector, so this is causing a bit of a
>> problem... any clues anyone?
>>
>> Cheers,
>> F.
>>
>> PS: ...http://issues.apache.org/activemq/browse/AMQ-1214 "threads not
>> stopping causing memory leaks which can lead to OutOfMemoryError"
>> ...sounds
>> related to this.
>>
>>
>>
>>
>>
>> On Thu, Jan 14, 2010 at 12:59 AM, Rob Davies <ra...@gmail.com> wrote:
>>
>>  oops - sry Fred - read your first email too quick - could you post the
>>> ThreadExplorer class too ?
>>>
>>> thanks,
>>>
>>> Rob
>>>
>>> On 13 Jan 2010, at 22:24, Fred Moore wrote:
>>>
>>> Hi Rob,
>>>
>>>>
>>>> If you could post your code - or sample of it - might help
>>>>
>>>>> identify why your main isn't shutting down
>>>>>
>>>>>
>>>> I actually did... can you access this pastebin here:
>>>> http://pastebin.com/f2784245a ?
>>>>
>>>> Cheers,
>>>> F.
>>>>
>>>> On Wed, Jan 13, 2010 at 7:52 PM, Rob Davies <ra...@gmail.com>
>>>> wrote:
>>>>
>>>> Do you actually call stop() on the broker ? - Have you disabled the
>>>>
>>>>> shutdownHook from the broker ?
>>>>> If you could post your code - or sample of it - might help identify why
>>>>> your main isn't shutting down
>>>>>
>>>>> On 13 Jan 2010, at 17:50, Fred Moore wrote:
>>>>>
>>>>> Hi folks,
>>>>>
>>>>>
>>>>>> we have a 5.3.0 embedded broker that refuses to shutdown cleanly
>>>>>> because
>>>>>> of
>>>>>> lingering threads.
>>>>>>
>>>>>> We reproduced this with a very very basic configuration: with just vm
>>>>>> &
>>>>>> jmx
>>>>>> connectors, no producers and no consumers and and this extremely
>>>>>> simple
>>>>>> main() program: http://pastebin.com/f2784245a that:
>>>>>>
>>>>>> 1\ Starts up an embedded broker
>>>>>>
>>>>>> 2\ Waits for the user to press a key
>>>>>>
>>>>>> 3\ Stops the broker
>>>>>>
>>>>>> 4\ Monitors (polling every few seconds) the number of lingering
>>>>>> threads
>>>>>>
>>>>>> What we experience is that after step 1\ (broker startup) this is the
>>>>>> list
>>>>>> of active threads...
>>>>>>
>>>>>> * [main] Group: main
>>>>>> * [ActiveMQ Scheduler] (Daemon) Group: main
>>>>>> * [ActiveMQ Data File Writer] (Daemon) Group: main
>>>>>> * [Timer-0] (Daemon) Group: main
>>>>>> * [JMX connector] (Daemon) Group: main
>>>>>>
>>>>>> ...but a long time (dozens of seconds) after step 3\ (broker shutdown)
>>>>>> these
>>>>>> threads are still active:
>>>>>>
>>>>>> * [main]  Group: main
>>>>>> * [ActiveMQ Scheduler] (Daemon) Group: main
>>>>>> * [Timer-0] (Daemon) Group: main
>>>>>>
>>>>>> Questions:
>>>>>> Q1\ Are we missing something obvious?
>>>>>> Q2\ Is there a better way to shutdown an embedded broker?
>>>>>> Q3\ Doing it the hard way via system.exit() is going to get us into
>>>>>> worse
>>>>>> troubles? (data corruption & co)
>>>>>>
>>>>>> Thanks in advance for your help.
>>>>>> Cheers,
>>>>>> F.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> The embedding was performed
>>>>>>
>>>>>>
>>>>>>  Rob Davies
>>>>> http://twitter.com/rajdavies
>>>>> I work here: http://fusesource.com
>>>>> My Blog: http://rajdavies.blogspot.com/
>>>>> I'm writing this: http://www.manning.com/snyder/
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>  Rob Davies
>>> http://twitter.com/rajdavies
>>> I work here: http://fusesource.com
>>> My Blog: http://rajdavies.blogspot.com/
>>> I'm writing this: http://www.manning.com/snyder/
>>>
>>>
>>>
>>>
>>>
>>>
>>>
> Rob Davies
> http://twitter.com/rajdavies
> I work here: http://fusesource.com
> My Blog: http://rajdavies.blogspot.com/
> I'm writing this: http://www.manning.com/snyder/
>
>
>
>
>
>

Re: Trivial embedded broker not shutting down cleanly because of lingering threads

Posted by Rob Davies <ra...@gmail.com>.
Hi Fred,

I can confirm most of what you are seeing - will look at the best way  
to handle the scheduler case - might make more sense for it not to be  
static. The [Timer-0] thread - I'm not seeing that - though I'm  
working from trunk

cheers,

Rob
On 14 Jan 2010, at 11:51, Fred Moore wrote:

> Hi Rob,
>
> FWIW here is the ThreadExplorer class: http://pastebin.com/f1aa2a099
>
>> Do you actually call stop() on the broker ?
> Yes.
>
>> Have you disabled the shutdownHook from the broker ?
> No, we just did it but nothing has changed.
>
> In the meantime we experimented further and we were able to shutdown  
> one of
> the lingering threads -- "[ActiveMQ Scheduler]" -- by using this  
> snippet to
> our code:
>
> Scheduler scheduler = Scheduler.getInstance();
> scheduler.shutdown();
>
> After doing this the other lingering thread -- "[Timer-0]" -- did  
> not go
> away, but at least we discovered that this timer is JMX related: if we
> disable JMX connector the timer disappear.
>
> Unfortunately we really need JMX connector, so this is causing a bit  
> of a
> problem... any clues anyone?
>
> Cheers,
> F.
>
> PS: ...http://issues.apache.org/activemq/browse/AMQ-1214 "threads not
> stopping causing memory leaks which can lead to  
> OutOfMemoryError" ...sounds
> related to this.
>
>
>
>
>
> On Thu, Jan 14, 2010 at 12:59 AM, Rob Davies <ra...@gmail.com>  
> wrote:
>
>> oops - sry Fred - read your first email too quick - could you post  
>> the
>> ThreadExplorer class too ?
>>
>> thanks,
>>
>> Rob
>>
>> On 13 Jan 2010, at 22:24, Fred Moore wrote:
>>
>> Hi Rob,
>>>
>>> If you could post your code - or sample of it - might help
>>>> identify why your main isn't shutting down
>>>>
>>>
>>> I actually did... can you access this pastebin here:
>>> http://pastebin.com/f2784245a ?
>>>
>>> Cheers,
>>> F.
>>>
>>> On Wed, Jan 13, 2010 at 7:52 PM, Rob Davies <ra...@gmail.com>  
>>> wrote:
>>>
>>> Do you actually call stop() on the broker ? - Have you disabled the
>>>> shutdownHook from the broker ?
>>>> If you could post your code - or sample of it - might help  
>>>> identify why
>>>> your main isn't shutting down
>>>>
>>>> On 13 Jan 2010, at 17:50, Fred Moore wrote:
>>>>
>>>> Hi folks,
>>>>
>>>>>
>>>>> we have a 5.3.0 embedded broker that refuses to shutdown cleanly  
>>>>> because
>>>>> of
>>>>> lingering threads.
>>>>>
>>>>> We reproduced this with a very very basic configuration: with  
>>>>> just vm &
>>>>> jmx
>>>>> connectors, no producers and no consumers and and this extremely  
>>>>> simple
>>>>> main() program: http://pastebin.com/f2784245a that:
>>>>>
>>>>> 1\ Starts up an embedded broker
>>>>>
>>>>> 2\ Waits for the user to press a key
>>>>>
>>>>> 3\ Stops the broker
>>>>>
>>>>> 4\ Monitors (polling every few seconds) the number of lingering  
>>>>> threads
>>>>>
>>>>> What we experience is that after step 1\ (broker startup) this  
>>>>> is the
>>>>> list
>>>>> of active threads...
>>>>>
>>>>> * [main] Group: main
>>>>> * [ActiveMQ Scheduler] (Daemon) Group: main
>>>>> * [ActiveMQ Data File Writer] (Daemon) Group: main
>>>>> * [Timer-0] (Daemon) Group: main
>>>>> * [JMX connector] (Daemon) Group: main
>>>>>
>>>>> ...but a long time (dozens of seconds) after step 3\ (broker  
>>>>> shutdown)
>>>>> these
>>>>> threads are still active:
>>>>>
>>>>> * [main]  Group: main
>>>>> * [ActiveMQ Scheduler] (Daemon) Group: main
>>>>> * [Timer-0] (Daemon) Group: main
>>>>>
>>>>> Questions:
>>>>> Q1\ Are we missing something obvious?
>>>>> Q2\ Is there a better way to shutdown an embedded broker?
>>>>> Q3\ Doing it the hard way via system.exit() is going to get us  
>>>>> into
>>>>> worse
>>>>> troubles? (data corruption & co)
>>>>>
>>>>> Thanks in advance for your help.
>>>>> Cheers,
>>>>> F.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> The embedding was performed
>>>>>
>>>>>
>>>> Rob Davies
>>>> http://twitter.com/rajdavies
>>>> I work here: http://fusesource.com
>>>> My Blog: http://rajdavies.blogspot.com/
>>>> I'm writing this: http://www.manning.com/snyder/
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>> Rob Davies
>> http://twitter.com/rajdavies
>> I work here: http://fusesource.com
>> My Blog: http://rajdavies.blogspot.com/
>> I'm writing this: http://www.manning.com/snyder/
>>
>>
>>
>>
>>
>>

Rob Davies
http://twitter.com/rajdavies
I work here: http://fusesource.com
My Blog: http://rajdavies.blogspot.com/
I'm writing this: http://www.manning.com/snyder/






Re: Trivial embedded broker not shutting down cleanly because of lingering threads

Posted by Fred Moore <fr...@gmail.com>.
Hi Rob,

FWIW here is the ThreadExplorer class: http://pastebin.com/f1aa2a099

> Do you actually call stop() on the broker ?
Yes.

> Have you disabled the shutdownHook from the broker ?
No, we just did it but nothing has changed.

In the meantime we experimented further and we were able to shutdown one of
the lingering threads -- "[ActiveMQ Scheduler]" -- by using this snippet to
our code:

Scheduler scheduler = Scheduler.getInstance();
scheduler.shutdown();

After doing this the other lingering thread -- "[Timer-0]" -- did not go
away, but at least we discovered that this timer is JMX related: if we
disable JMX connector the timer disappear.

Unfortunately we really need JMX connector, so this is causing a bit of a
problem... any clues anyone?

Cheers,
F.

PS: ...http://issues.apache.org/activemq/browse/AMQ-1214 "threads not
stopping causing memory leaks which can lead to OutOfMemoryError" ...sounds
related to this.





On Thu, Jan 14, 2010 at 12:59 AM, Rob Davies <ra...@gmail.com> wrote:

> oops - sry Fred - read your first email too quick - could you post the
> ThreadExplorer class too ?
>
> thanks,
>
> Rob
>
> On 13 Jan 2010, at 22:24, Fred Moore wrote:
>
>  Hi Rob,
>>
>>  If you could post your code - or sample of it - might help
>>> identify why your main isn't shutting down
>>>
>>
>> I actually did... can you access this pastebin here:
>> http://pastebin.com/f2784245a ?
>>
>> Cheers,
>> F.
>>
>> On Wed, Jan 13, 2010 at 7:52 PM, Rob Davies <ra...@gmail.com> wrote:
>>
>>  Do you actually call stop() on the broker ? - Have you disabled the
>>> shutdownHook from the broker ?
>>> If you could post your code - or sample of it - might help identify why
>>> your main isn't shutting down
>>>
>>> On 13 Jan 2010, at 17:50, Fred Moore wrote:
>>>
>>> Hi folks,
>>>
>>>>
>>>> we have a 5.3.0 embedded broker that refuses to shutdown cleanly because
>>>> of
>>>> lingering threads.
>>>>
>>>> We reproduced this with a very very basic configuration: with just vm &
>>>> jmx
>>>> connectors, no producers and no consumers and and this extremely simple
>>>> main() program: http://pastebin.com/f2784245a that:
>>>>
>>>> 1\ Starts up an embedded broker
>>>>
>>>> 2\ Waits for the user to press a key
>>>>
>>>> 3\ Stops the broker
>>>>
>>>> 4\ Monitors (polling every few seconds) the number of lingering threads
>>>>
>>>> What we experience is that after step 1\ (broker startup) this is the
>>>> list
>>>> of active threads...
>>>>
>>>> * [main] Group: main
>>>> * [ActiveMQ Scheduler] (Daemon) Group: main
>>>> * [ActiveMQ Data File Writer] (Daemon) Group: main
>>>> * [Timer-0] (Daemon) Group: main
>>>> * [JMX connector] (Daemon) Group: main
>>>>
>>>> ...but a long time (dozens of seconds) after step 3\ (broker shutdown)
>>>> these
>>>> threads are still active:
>>>>
>>>> * [main]  Group: main
>>>> * [ActiveMQ Scheduler] (Daemon) Group: main
>>>> * [Timer-0] (Daemon) Group: main
>>>>
>>>> Questions:
>>>> Q1\ Are we missing something obvious?
>>>> Q2\ Is there a better way to shutdown an embedded broker?
>>>> Q3\ Doing it the hard way via system.exit() is going to get us into
>>>> worse
>>>> troubles? (data corruption & co)
>>>>
>>>> Thanks in advance for your help.
>>>> Cheers,
>>>> F.
>>>>
>>>>
>>>>
>>>>
>>>> The embedding was performed
>>>>
>>>>
>>> Rob Davies
>>> http://twitter.com/rajdavies
>>> I work here: http://fusesource.com
>>> My Blog: http://rajdavies.blogspot.com/
>>> I'm writing this: http://www.manning.com/snyder/
>>>
>>>
>>>
>>>
>>>
>>>
>>>
> Rob Davies
> http://twitter.com/rajdavies
> I work here: http://fusesource.com
> My Blog: http://rajdavies.blogspot.com/
> I'm writing this: http://www.manning.com/snyder/
>
>
>
>
>
>

Re: Trivial embedded broker not shutting down cleanly because of lingering threads

Posted by Rob Davies <ra...@gmail.com>.
oops - sry Fred - read your first email too quick - could you post the  
ThreadExplorer class too ?

thanks,

Rob
On 13 Jan 2010, at 22:24, Fred Moore wrote:

> Hi Rob,
>
>> If you could post your code - or sample of it - might help
>> identify why your main isn't shutting down
>
> I actually did... can you access this pastebin here:
> http://pastebin.com/f2784245a ?
>
> Cheers,
> F.
>
> On Wed, Jan 13, 2010 at 7:52 PM, Rob Davies <ra...@gmail.com>  
> wrote:
>
>> Do you actually call stop() on the broker ? - Have you disabled the
>> shutdownHook from the broker ?
>> If you could post your code - or sample of it - might help identify  
>> why
>> your main isn't shutting down
>>
>> On 13 Jan 2010, at 17:50, Fred Moore wrote:
>>
>> Hi folks,
>>>
>>> we have a 5.3.0 embedded broker that refuses to shutdown cleanly  
>>> because
>>> of
>>> lingering threads.
>>>
>>> We reproduced this with a very very basic configuration: with just  
>>> vm &
>>> jmx
>>> connectors, no producers and no consumers and and this extremely  
>>> simple
>>> main() program: http://pastebin.com/f2784245a that:
>>>
>>> 1\ Starts up an embedded broker
>>>
>>> 2\ Waits for the user to press a key
>>>
>>> 3\ Stops the broker
>>>
>>> 4\ Monitors (polling every few seconds) the number of lingering  
>>> threads
>>>
>>> What we experience is that after step 1\ (broker startup) this is  
>>> the list
>>> of active threads...
>>>
>>> * [main] Group: main
>>> * [ActiveMQ Scheduler] (Daemon) Group: main
>>> * [ActiveMQ Data File Writer] (Daemon) Group: main
>>> * [Timer-0] (Daemon) Group: main
>>> * [JMX connector] (Daemon) Group: main
>>>
>>> ...but a long time (dozens of seconds) after step 3\ (broker  
>>> shutdown)
>>> these
>>> threads are still active:
>>>
>>> * [main]  Group: main
>>> * [ActiveMQ Scheduler] (Daemon) Group: main
>>> * [Timer-0] (Daemon) Group: main
>>>
>>> Questions:
>>> Q1\ Are we missing something obvious?
>>> Q2\ Is there a better way to shutdown an embedded broker?
>>> Q3\ Doing it the hard way via system.exit() is going to get us  
>>> into worse
>>> troubles? (data corruption & co)
>>>
>>> Thanks in advance for your help.
>>> Cheers,
>>> F.
>>>
>>>
>>>
>>>
>>> The embedding was performed
>>>
>>
>> Rob Davies
>> http://twitter.com/rajdavies
>> I work here: http://fusesource.com
>> My Blog: http://rajdavies.blogspot.com/
>> I'm writing this: http://www.manning.com/snyder/
>>
>>
>>
>>
>>
>>

Rob Davies
http://twitter.com/rajdavies
I work here: http://fusesource.com
My Blog: http://rajdavies.blogspot.com/
I'm writing this: http://www.manning.com/snyder/






Re: Trivial embedded broker not shutting down cleanly because of lingering threads

Posted by Fred Moore <fr...@gmail.com>.
Hi Rob,

> If you could post your code - or sample of it - might help
>  identify why your main isn't shutting down

I actually did... can you access this pastebin here:
http://pastebin.com/f2784245a ?

Cheers,
F.

On Wed, Jan 13, 2010 at 7:52 PM, Rob Davies <ra...@gmail.com> wrote:

> Do you actually call stop() on the broker ? - Have you disabled the
> shutdownHook from the broker ?
> If you could post your code - or sample of it - might help identify why
> your main isn't shutting down
>
> On 13 Jan 2010, at 17:50, Fred Moore wrote:
>
>  Hi folks,
>>
>> we have a 5.3.0 embedded broker that refuses to shutdown cleanly because
>> of
>> lingering threads.
>>
>> We reproduced this with a very very basic configuration: with just vm &
>> jmx
>> connectors, no producers and no consumers and and this extremely simple
>> main() program: http://pastebin.com/f2784245a that:
>>
>> 1\ Starts up an embedded broker
>>
>> 2\ Waits for the user to press a key
>>
>> 3\ Stops the broker
>>
>> 4\ Monitors (polling every few seconds) the number of lingering threads
>>
>> What we experience is that after step 1\ (broker startup) this is the list
>> of active threads...
>>
>> * [main] Group: main
>> * [ActiveMQ Scheduler] (Daemon) Group: main
>> * [ActiveMQ Data File Writer] (Daemon) Group: main
>> * [Timer-0] (Daemon) Group: main
>> * [JMX connector] (Daemon) Group: main
>>
>> ...but a long time (dozens of seconds) after step 3\ (broker shutdown)
>> these
>> threads are still active:
>>
>> * [main]  Group: main
>> * [ActiveMQ Scheduler] (Daemon) Group: main
>> * [Timer-0] (Daemon) Group: main
>>
>> Questions:
>> Q1\ Are we missing something obvious?
>> Q2\ Is there a better way to shutdown an embedded broker?
>> Q3\ Doing it the hard way via system.exit() is going to get us into worse
>> troubles? (data corruption & co)
>>
>> Thanks in advance for your help.
>> Cheers,
>> F.
>>
>>
>>
>>
>> The embedding was performed
>>
>
> Rob Davies
> http://twitter.com/rajdavies
> I work here: http://fusesource.com
> My Blog: http://rajdavies.blogspot.com/
> I'm writing this: http://www.manning.com/snyder/
>
>
>
>
>
>