首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

Tomcat重新加载一个webapp时, 怎么办内存中的请求以保证数据一致

2012-03-21 
Tomcat重新加载一个webapp时, 怎么处理内存中的请求以保证数据一致?现在在研究Tomcat的不停机情况下的服务

Tomcat重新加载一个webapp时, 怎么处理内存中的请求以保证数据一致?
现在在研究Tomcat的不停机情况下的服务升级问题。 可以让Tomcat重新加载一个webapp来达到不停机的情况下的服务升级, 不过关于这样升级的影响还是有些疑问。 

  具体有下面几个: 

  1, 关于请求的接受。 重新加载webapp时, 如果来了针对这个webapp的新请求时, 怎么办?Tomcat是把这个请求先缓存起来?还是直接就以404的形式返回? 
  2, 关于正在处理的请求。 Tomcat是否会在重新加载前,把内存中的请求处理完,以保存请求不会丢失,也保证了数据的一致性? 
  3, 关于Session信息的保存与恢复。 这一块Tomcat是怎么保证的? 毕竟session中有很多关键信息的。 

  另外, 关于Tomcat方面的文档很少, 请问有没有这方面的文档?

[解决办法]
1.请求会等待,等待超时后会显示404或者直接显示访问的页面不存在,这个好像跟你webapp加载进度有关。

2.正在处理的请求会直接显示异常或失败

3.session信息会丢失。

其实你这种情况做个集群最合适,先更新一个tomcat的,然后再更新另外一个。


[解决办法]
关于session的保存,你可以参考官方的文档,其中主要就是

Java code
org.apache.catalina.session.StandardManager  org.apache.catalina.session.PersistentManager 

热点排行