And*_*uss 4 java tomcat shutdown
我有一个长期运行的cpu和数据库密集型线程(以低优先级运行),可由管理员请求由我的tomcat应用程序触发.
我为此线程使用了一个关闭钩子,因此如果应用程序被强制停止,它可以在退出之前清理数据库状态.在独立模式下完美运行,使用control-C并在eclipse控制台中取消.
但是当在tomcat下运行时,当我执行时:
$ CATALINA_HOME/bin中/ shutdown.sh
我通过调试日志验证我的servlet contextDestroyed消息是由tomcat发送的,但是对于这个线程,消息无法阻止它,重要的是我的shutdown hook永远不会触发.
我注意到其他人说使用contextDestroyed消息,但这对我不起作用,而且一些问题和答案暗示关闭钩子在tomcat中为它们工作.
我正在使用tomcat 6.0.35.
我注意到其他人说使用contextDestroyed消息,但这对我不起作用
好吧,我认为你需要考虑如何让它发挥作用.
设置关闭挂钩的webapp不是正确的解决方案.
Web应用程序关闭Web应用程序时,关闭挂钩将不会运行.这意味着如果重新启动或重新部署Web应用程序,则需要处理孤立的DB线程问题.
如果您的关闭挂钩最终运行,则可能会失败,因为Web容器的其余部分已被Web容器关闭.例如,webapp的JDBC连接池通常已被破解.请注意,很多"的摧毁"的幕后发生,因为Tomcat的策略,以避免在重新部署的PermGen存储泄漏的一部分...
| 归档时间: |
|
| 查看次数: |
2195 次 |
| 最近记录: |