QC同事提到似乎有时Tomcat的会话超时表现有问题,记录一下可能用到的配置。
1)超时时间的设定
tomcat的会话超时可以在多个级别上设置:tomcat实例级别、Web应用级别、servlet级别以及运行时Context代码级别。
较低级别的设定会覆盖较高级别的设定。
一般常用的是在前面两个级别上设置,分别在 /conf/web.xml和/webapps/yourapp/WEB-INF/web.xml,形如:
<session-config>
<session-timeout>30</session-timeout>
</session-config>
单位是分钟。
2)重启时保持会话
在关闭Tomcat实例/取消Web应用部署时,缺省会把当前的活动会话保存到硬盘上,并在重启启动/部署时在把会话从硬盘上加载到内存中。
文件保存在各目录下的SESSIONS.SER中。有时可能会话中保存了敏感信息,或者不希望使用这个特性,可以配置Context.xml文件关闭这个选项。
配置 manager.pathname == ""即可,形如:
<Manager pathname="" />
网上多流传配置 Persistent Manager 来完成这个功能,Tomcat 4.x 和 5.5 在配置文档中都明确的指出 Persistent Manager 是一个体验性质的特性,并没有经过完全的测试。
不过话说Tomcat关于会话的设定也不甚直观,在其文档中明确的说明,Manager组件的工作就是session manager,可以设置maxInactiveInterval,而web.xml中有可以设定 session-timeout。再加上全局、应用,不同地方定义的超时时间撞到一起时,又有优先级的问题。这个设计是毫无意义的复杂。
分享到:
相关推荐
4. **处理会话超时和过期**: 配置Redis的过期策略,可以设置会话自动过期,以避免无用会话占用存储空间。 5. **安全性考虑**: 考虑到Redis通常暴露在公网,需要确保网络通信的安全,例如使用SSL加密连接,以及对...
4. **会话超时设置**:在web.xml中配置会话超时时间,确保与Redis中设置的过期时间一致。 ```xml <session-timeout>30 ``` 5. **安全性考虑**:由于会话数据存储在Redis中,需要关注数据的安全性,如使用SSL...
偶然发现Tomcat会话时间的半小时,并不是说会话创建后,只有半小时的有效使用时间,而是说会话空闲半小时后,会被删除。索性就翻了一下源码。做了一番整理。 注:空闲时间,指的是同一个会话两次请求之间的间隔时间 ...
- Expire session:设置会话超时时间,超过该时间的应用会话将被销毁 总之,Tomcat的安装和配置是一个相对简单的过程,但正确设置和管理是确保Java Web应用程序高效运行的关键。了解和掌握这些基础知识对于任何...
- **web.xml**:同样位于`conf`目录下,主要用来配置Web应用的上下文参数,如会话超时时间、登录配置等。对于初次配置的用户来说,这部分内容可以根据实际需求进行适当调整。 #### 3. 启动与停止服务 完成以上配置...
通过这样的设置,基于memcached的Tomcat7服务器会话共享不仅实现了负载均衡,还确保了良好的用户体验,因为用户可以在集群中的任何服务器间自由切换,而不会丢失其会话信息。这种解决方案在大型Web应用和高并发场景...
同时,可能需要在Tomcat的`server.xml`配置文件中设置环境变量或者监听器,以便在启动时初始化与Redis的连接。 3. **缓存策略**:定义如何将数据存储和检索到Redis中。这可能包括对HTTP Session的管理,将session...
1. **会话超时**:`sessionTimeout`设定用户无操作后会话自动失效的时间,如`sessionTimeout="30"`(30分钟)。 2. **会话持久化**:若需要在服务器重启后恢复会话,可以配置会话持久化,例如使用`Manager`元素的`...
- `className`属性:这是必需的,指定了使用de.javakaffee.web.msm.MemcachedBackupSessionManager作为会话管理器,它实现了Memcached与Tomcat会话的交互。 - `memcachedNodes`属性:也是必需的,用于指定Memcached...
在高并发的Web应用中,将用户的会话信息从传统的基于内存的Tomcat会话管理转移到Redis,可以降低服务器内存压力,同时提升响应速度。 `jedis-2.1.0.jar`是Java编写的Redis客户端库,用于与Redis服务器进行通信。这...
3. 配置session过期策略,例如在`web.xml`中设置session的超时时间。 4. 重启Tomcat,使配置生效。 通过这种方式,Tomcat8能够将用户的session数据存储在Redis中,从而实现会话在集群中的共享和高可用性。这种方法...
本文中,我们讨论了使用nginx和tomcat实现session同步的方法,并提供了详细的配置步骤。我们希望本文能帮助读者更好地理解session同步机制,并帮助读者更好地实现系统的可用性和可靠性。 在本文的结尾,我们将总结...
Tomcat 5是Apache软件基金会的Jakarta项目中的一个核心项目,是一个开源的Servlet容器,实现了Java Servlet和JavaServer Pages(JSP)规范。本文将深入探讨Tomcat 5的启动流程、目录结构以及配置详解。 1. **Tomcat...
* 会话配置:session-config元素用于定义会话超时时间、最大会话数等属性。 三、Tomcat 的连接器配置 Tomcat 的连接器配置是指 Connector 元素的配置,包括: * 端口号配置:port属性指定了Tomcat监听的端口号。 ...
# 其他相关配置,如超时时间、缓冲区大小等 } ``` 这里的`proxy_pass`指令指定了上游服务器组的地址,`proxy_set_header`用于传递客户端请求头信息。 `Tomcat`服务器的配置文件`server.xml`主要涉及`Connector`...
通过修改Connector的配置,可以优化服务器性能,例如设置最大连接数、超时时间等。 4. **Executor**: Executor是Tomcat 5.5引入的一个新特性,允许开发者自定义线程池来处理请求。这在处理大量并发请求时非常有用,...
3. **调优**:根据应用需求调整JVM参数,如堆大小、垃圾回收策略和线程池大小,以及Tomcat的连接器和会话超时设置。 六、安全考虑 1. **SSL/TLS**:为所有节点配置SSL证书,确保数据传输的安全。 2. **防火墙规则**...
在配置Tomcat-Redis-Session-Manager时,开发者需要在Tomcat的`context.xml`文件中添加相关的manager配置,指定使用Redis作为session存储。这通常涉及设置`Manager`元素的`className`属性为`org.apache.catalina....
4. **配置会话管理器**:在`web.xml`中配置`<session-config>`元素,使用自定义的`Manager`类(通常是`org.apache.catalina.session.PersistentManager`或类似),并设置相关属性来指定Redis存储。 5. **测试和优化...
同时,它还允许配置会话超时时间、序列化策略等,以满足不同应用场景的需求。 总结起来,`Tomcat-Redis-Session-Manager`通过将Tomcat会话管理与Redis结合,实现了高效的分布式会话存储。通过源码分析,我们可以...