如何确保tomcat停止或重启后发生的事情

时间:2012-06-12 01:30:29

标签: tomcat jvm

有时,tomcat restart会导致我的应用程序立即停止,以便我在oracle db中使用的数据保持一个错误状态。所以我想知道一旦tomcat停止,是否有任何方法来帮助处理状态。由于未知,实际事件发生在tomcat的停止过程中。当tomcat停止时,我不知道如何确定会发生什么事。

2 个答案:

答案 0 :(得分:2)

也许您可以为tomcat应用程序link注册LifecycleListener。加载上下文时以及关闭后立即调用生命周期监听器。

以下是更为复杂的解释link。您可能希望查看contextInitialized界面的contextDestroyedServletContextListener方法。

答案 1 :(得分:1)

如果你正常重启,你应该能够注册一个shutdownhook并让它在服务器杀死应用程序之前运行。

查看javadocs以获取更多详细信息:http://docs.oracle.com/javase/6/docs/api/java/lang/Runtime.html#addShutdownHook(java.lang.Thread)。

你可以像这样添加一个关闭钩子:

Runtime.getRuntime().addShutdownHook(new Thread(new Runnable(){
    public void run() {
         // clean-up logic
    }
}));