How to get thread interrupt/notification when Tomcat is gracefully shutdown?
<p>I've a spring web app running in a Tomcat server. In this there is a piece of code,in one of the Spring beans,  which waits for a database connection to become available. My scenario is that while waiting for a database connection, if the Tomcat is shutdown, I should stop waiting for a DB connection and break the loop.</p>

<pre><code>private Connection prepareDBConnectionForBootStrapping()  {
        Connection connection = null;
        while (connection == null &amp;&amp; !Thread.currentThread().isInterrupted()) {
            try {
                connection = getConnection();
                break;
            } catch (MetadataServerException me) {
                try {
                    if (!Thread.currentThread().isInterrupted()) {
                        Thread.sleep(TimeUnit.MINUTES.toMillis(1));
                    } else {
                        break;
                    }
                } catch (InterruptedException ie) {
                    logger.error("Thread {} got interrupted while wating for the database to become available.",
                            Thread.currentThread().getName());
                    break;
                }

            }
        }
        return connection;
    } 
</code></pre>

<p>The above piece of code is executed by one of the Tomcat's thread and it's not getting interrupted when shutdown is invoked. I also tried to achieve my scenario by using spring-bean's destroy method, but to my surprise the destroy method was never called. My assumption is that Spring application context is not getting fully constructed - since, I've the above waiting loop in the Spring bean - and when shutdown is invoked corresponding context close is not getting invoked.</p>

<p>Any suggestions?</p>