有时,tomcat restart会导致我的应用程序立即停止,以便我在oracle db中使用的数据保持一个错误状态。所以我想知道一旦tomcat停止,是否有任何方法来帮助处理状态。由于未知,实际事件发生在tomcat的停止过程中。当tomcat停止时,我不知道如何确定会发生什么事。
答案 0 :(得分:2)
也许您可以为tomcat应用程序link注册LifecycleListener
。加载上下文时以及关闭后立即调用生命周期监听器。
以下是更为复杂的解释link。您可能希望查看contextInitialized
界面的contextDestroyed
和ServletContextListener
方法。
答案 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
}
}));