That's quite a problem ;)
Actually  your threads should be coded in such a way
you may a send a notification in java telling him to finish his job.

eg:

myNonDaemonThreadICreatedMySelf.stopWorking();
which would set some flag in Thread and then code in your
Thread reading the flag knows it has to stop in a clean way.

In the past there was a way in java to 'kill' a Thread but this has
been deprecated in the Thread api. Tomcat sends a ThreadDeathError
to the thread if it tries to interact with its classloader after shutdown,
unfortunately, this is not always enough has some Threads do a
catch(Error) and then continue their job.

The best thing you can do when you have the list of threads still alive
after shutdown is to locate the irresponsible threads and fix their code :D



Larry Meadors a écrit :

>So, once you know the threads that are left, what is the cleanest way
>to kill them?
>
>I have had this problem too, but since it was on a *nix platform, and
>just used 'kill' to get rid of the parent process.
>
>Larry
>
>
>On 10/3/05, Jon Wingfield <[EMAIL PROTECTED]> wrote:
>  
>
>>Yep. It's a FAQ, but not in the FAQ.
>>
>>Tomcat not quitting generally means your webapp has started a non-daemon
>>thread which does not exit when the webapp is destroyed. If so, shut
>>them down in a ServletContextListener.
>>
>>If you aren't explicitly creating threads in your webapp then the usual
>>culprits are database connections that haven't been closed (or any other
>>client api to remote services that uses asynchronous messaging and/or
>>keepalive semantics).
>>
>>To see a dump of the threads still active after you've run shutdown.bat
>>do a CTRL-BREAK in the tomcat dos console.
>>
>>HTH,
>>
>>Jon
>>
>>Charles Fineman wrote:
>>    
>>
>>>I started Tomcat using startup.bat. Everything goes fine. I use
>>>shutdown.batto bring it down. The server fields the request and shuts
>>>down a bunch of
>>>services (as evidenced by the messages I see). Sure enough, the server no
>>>longer responds to any requests. Unfortunately, the java process does not
>>>die.
>>>
>>>I have this problem whether I start Tomcat by hand or if I use the Sysdeo
>>>Eclipse plugin.
>>>
>>>This problem has been a thorn in my side for some time but since it only
>>>affects my development environment (we use it as a service in production and
>>>there are no problems) and I can kill the process by hand, I've not worried
>>>about it. It's annoying as heck though and I'm wondering if someone can shed
>>>some light.
>>>
>>>I searched around but (surprisingly!!) I didn't find anything similar to my
>>>situation.
>>>
>>>      
>>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: [EMAIL PROTECTED]
>>For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>>    
>>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>
>  
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to