我在 tomcat 5.5 上运行一个 Web 应用程序。
如何强制将会话转储到磁盘中
- 在每个请求
- 在每个时间间隔
问题 1 可以使用过滤器或阀门来完成:
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws java.io.IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
HttpSession session = req.getSession(false);
if(session != null) {
dumpSession( session );
}
chain.doFilter(request, response);
}
}
对于问题 2,请参阅此讨论
查看 Persistent Manager http://tomcat.apache.org/tomcat-5.5-doc/config/manager.html 将 maxIdleBackup 和 maxIdleSwap 设置为 0 或接近零的时间将在每个请求上保持会话。将这些参数设置为更大的值将使您间隔转储。