tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shapira, Yoav" <>
Subject RE: detecting the shutdown of tomcat in a servlet
Date Wed, 28 Jul 2004 12:57:23 GMT

Excellent answer by Rodrigo Ruiz.  I wanted to correct one tiny part,
and for Tomcat it's a theoretical correction only, but since this a
common mistake and a blemish on an otherwise great post:

<load-on-startup> servlets are initialized on startup by the container.
But that doesn't mean they are destroyed on shutdown like the
ServletContextListener.  The container is free to destroy these servlets
as it sees necessary, usually to preserve resources if they are not
under load and other servlets are.  Therefore it's entirely possible and
legal for a <load-on-startup> servlet to be initialized and destroyed
numerous times while the webapp is NOT restarted.

Accordingly, take his advice and use a ServletContextListener.  That's
what it's for ;)

Yoav Shapira
Millennium Research Informatics

>-----Original Message-----
>From: Rodrigo Ruiz []
>Sent: Wednesday, July 28, 2004 6:21 AM
>To: Tomcat Users List
>Subject: Re: detecting the shutdown of tomcat in a servlet
>There is more than one way :-)
>- From within a servlet, add a shutdown hook with
>- Create a ServletContextListener, and implement the clean stop of your
>daemon in the listener contextDestroyed() method
>- Create an initialization servlet, and implement the clean stop in its
>destroy() method
>and probably a few more if you use specific Tomcat classes.
>I would not use the first option unless really necessary, as it seems
>me a too much "low level solution".
>My favourite is the second option, as this is what
>ServletContextListeners are for. You could start and stop the thread
>from this listener.
>The second and third options will perform the thread stop when the
>context or the container are shut down. This includes a context stop
>from the admin webapp. Whether this is good or bad for your purposes
>depends on the actions you need to perform. I suppose you do not want
>your thread to keep running if you stop the webapp, because restarting
>the webapp would lead to have two daemon threads :-)
>Rodrigo Ruiz
>STOCKHOLM, Raymond wrote:
>>In my tomcat 4.1.30n, I have a webapp in which a deamon Thread
>>is scheduled to send automatic mails every morning.
>>I would like to make a clean stop of my deamon when tomcat shutdowns.
>>How can I detect that tomcat is shuting down ?
>>Raymond Stockholm
>>Aubay Luxembourg
>>51, Rue de Strasbourg
>>Tel : +352 29 92 50 31
>>To unsubscribe, e-mail:
>>For additional commands, e-mail:
>Outgoing mail is certified Virus Free.
>Checked by AVG anti-virus system (
>Version: 6.0.727 / Virus Database: 482 - Release Date: 27/07/2004
>To unsubscribe, e-mail:
>For additional commands, e-mail:

This e-mail, including any attachments, is a confidential business communication, and may
contain information that is confidential, proprietary and/or privileged.  This e-mail is intended
only for the individual(s) to whom it is addressed, and may not be saved, copied, printed,
disclosed or used by anyone else.  If you are not the(an) intended recipient, please immediately
delete this e-mail from your computer system and notify the sender.  Thank you.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message