我们习惯性的Tomcat热部署, 就是覆盖原war包,过不多久Tomcat发现war包变化,开始undeploy后再deploy。 在此过程注意看日志,其实有不少SERVE的错误,大致是进程未中止,可能引起内存泄漏。以前只是数据库连接的进程未中止,出错也不影响。现在使用JMS插件,运行过程中连接ActiveMQ,再次热部署,原有的连接不中断,消息就被原有连接取走,热部署后生成的连接反而取不到消息。 因此上述进程未中止的问题就影响到业务了。网上两种解决方案:
停止-启动Tomcat,不使用热部署。 直接stop后, 可能还需要ps看下tomcat是否完全中止, 否则效果就有如进行了一次热部署。简单可靠的是kill -9杀进程。
写一个ServletContextListener,在其contextDestroyed 中进行资源的释放操作。
请问下波总,jfinal中有无已有的功能 处理此类问题?
项目:JFinal