`
qwex9iao
  • 浏览: 176659 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

tomcat session持久化

阅读更多
tomcat6 中关闭服务 会自动把session持久化
存储在work目录下的 一个session.ser
对于Session的管理,tomcat两个实现类:org.apache.catalina.session.StandardManager和org.apache.catalina.session.PersistentManager
StandardManager  默认的方法 可以配置的地方比较少
PersistentManager  提供了很灵活的管理方式 配置性强

网上实现配置PersistentManager 这种例子好多好多 大多是两种形式
形式一:存储在本地文件中:配置conf目录里的context.xml文件

在<Context>节点下添加如下<Manager>节点:
<Manager className="org.apache.catalina.session.PersistentManager" >
    debug=0
    saveOnRestart="true"
    maxActiveSession="-1"
    minIdleSwap="-1"
    maxIdleSwap="-1"
    maxIdleBackup="-1"
    <Store className="org.apache.catalina.session.FileStore" directory="../session" />
</Manager>

形式二:存储在数据库中 配置store节点
<Store calssName="org.apache.catalina.JDBCStore" driverName="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost/session?usename=xxx&password=xxx"
sessionTable="session" sessionIdCol="session_id" sessionDataCol="session_data"
sessionValidCol="sessionValid" sessionMaxInactiveCol="maxInactive"
sessionLastAccessedCol="lastAccess" sessionAppCol="appName" checkInterval="60" debug="99" />

关于节点的说明如下图:


className:Session的管理类,tomcat将会通过定义的接口来应用该类生成的对象。
debug:Session管理器的跟踪级别。
saveOnRestart:(true/false)配置服务重启工程中对session的处理,若为true,则关闭前把有效的session保存,启动后重新载入
maxActiveSession:活动状态Session的最大数,为-1时则不限制,否则Session Manager将会把超出的Session对象转移到Session Store中。
minIdleSwap:Session不活动的最短时间,超过该时间,Session Manager 可能会把该Session对象转移到Session Store中,单位为秒。
maxidleSwap:Session不活动的最长时间,超过该时间,Session Manager 将会把该Session对象转移到Session Store中,该Session将不在内存中。
maxidleBackup: Session不活动的最长时间,超过该时间,Session Manager 将会把该Session对象备份到Session Store中,但该Session对象依然存在内存中。
<Store>指定实现持久化的类和Session存放的文件位置,如该例子中指定的类是:org.apache.catalina.session.FileStore,而Session对象存放的目录则是tomcat根目录下的 session文件夹(当然自己创建)


记下在复制session中遇到的一个异常:
IOException while loading persisted sessions: java.io.WriteAbortedException
原来要让session存储的类没有序列化 引起io异常 在类后面实现Serializable 接口 (implements   java.io.Serializable  )

为什么要序列化呢 序列化:java.io.Serializable
序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间.
原因就在这里 序列化是将对象转换为容易传输的格式的过程 所以session序列化才能更好的传输和存储
不只是session 要存储一个对象 保存成文件 都需要序列化。

以前认为序列化
用处不大 所以尽量不用 结果问题就找过来了  做程序还是得严谨啊
tomcat5.5中文文档
  • 大小: 142 KB
分享到:
评论

相关推荐

    Tomcat_Session的持久化

    Tomcat_Session 的持久化 在 Web 应用程序中,Session 是一种用来跟踪用户状态的机制。Tomcat_Session 的持久化是指将 HttpSession 对象保存到文件系统或数据库中,以便在服务器关闭或重启时可以恢复 Session 数据...

    TOMCAT SESSION的持久化方法

    博文链接:https://wangxuliangboy.iteye.com/blog/237534

    javaee-Session持久化小结

    例如,可以使用Servlet容器(如Tomcat)的内置Session持久化配置,或者自定义实现`HttpSessionListener`和`HttpSessionBindingListener`来监听Session的创建和销毁事件,进行手动持久化操作。 标签中的"源码"可能...

    tomcat session存到mencache

    标题"tomcat session存到mencache"指的是将Tomcat的session持久化存储到Memcache中,以提高性能和可扩展性。 Memcache可以在多台服务器之间共享session数据,从而支持负载均衡和高可用性。对于描述中提到的“版本为...

    session之用户交互间隔&&session持久化

    根据给定文件的信息,本文将围绕“Session 用户交互间隔与 Session 持久化”这一主题进行深入探讨,包括 Session 的基本概念、Tomcat 中 Session 的管理方式、Session 的持久化机制以及用户交互间隔等内容。...

    tomcat redis session.rar

    3. **Redis**:Redis是一个开源的键值存储系统,支持多种数据结构如字符串、哈希、列表、集合和有序集合,且具有高速缓存和持久化能力。在本场景中,Redis作为Session的中央存储,所有Tomcat服务器都向Redis读写...

    tomcat-session共享

    Tomcat服务器不再负责Session的持久化,而是将Session数据写入Redis,所有服务器都能访问这些数据。Nginx可以通过配置将Session ID传递给Tomcat,Tomcat再根据ID从Redis中获取Session信息。这样即使服务器发生故障,...

    Tomcat8(Tomcat9)+redis实现Session共享(支持Redis集群)

    此外,Redis的高并发性能和持久化能力也能保障在高负载下的服务稳定性。 请注意,此方法仅适用于JDK 8及以上版本。如果你的环境是JDK 7或更低,需要寻找兼容的Redis会话管理器库。同时,为了保证最佳效果,建议定期...

    Tomcat7+Redis+Session 负载之后session 共享 tomcat jar包

    这种方式不仅可以解决Session丢失的问题,还具有高可用性,因为Redis可以提供持久化存储,即使某个Tomcat实例宕机,恢复后也能快速找回Session信息。同时,由于Session数据存储在独立的Redis中,对于提升应用性能也...

    tomcat-redis-session-manager包集合下载(tomcat8)

    Redis是一个高性能的键值对数据存储系统,常用于缓存和持久化数据。它的高速读写能力使其成为存储session的理想选择,尤其是在分布式环境中,可以轻松实现session共享。 **知识点三:tomcat-redis-session-manager*...

    tomcat做session共享需要的全部jar包

    Memcached因其高性能和轻量级特性,在分布式环境中常被用作Session持久化存储。 5. **Minglog**: Minglog可能是一个日志记录库,它可以帮助开发者追踪和分析与Session共享相关的操作,对于调试和优化系统性能至关...

    nginx+tomcat shiro实现多tomcat下session共享

    可以通过设置合适的session过期时间、使用Redis的持久化机制以及监控Redis的性能,来优化session共享的效率和可靠性。 总结来说,"nginx+tomcat shiro实现多tomcat下session共享"是一种常见的分布式系统架构策略,...

    tomcat-redis-session-manager的jar包-包含Tomcat7和Tomcat8

    在现代Web应用程序开发中,session管理是一个至关重要的环节,它涉及到用户会话的持久化和跨请求的数据共享。传统的session管理方式在高并发、分布式环境中可能会面临效率低下和数据一致性的问题。为了解决这些问题...

    Redis+Tomcat+Nginx集群实现Session共享,Tomcat Session共享

    2. **持久化**:为了防止Redis数据丢失,需要启用数据持久化功能,如RDB或AOF,确保即使Redis重启,Session数据也能恢复。 3. **过期策略**:合理设置Session的过期时间,防止内存占用过高,同时需要处理Session...

    tomcat-redis-session-manager

    这是一个开源项目,它允许Tomcat服务器将用户的session数据持久化到Redis数据库中,而不是传统的内存或本地硬盘。这样,无论用户访问哪个服务器节点,都能获取到正确的session信息,从而实现负载均衡下的会话持久性...

    tomcat session redis支持

    为了解决这些问题,可以将Tomcat的session持久化到外部存储,比如Redis,一个高性能的键值数据库,特别适合用于存储这类临时但重要的数据。 首先,让我们理解Tomcat的session管理机制。默认情况下,Tomcat会将...

    tomcat实现session共享

    此外,为了保证数据安全,还可以配置Redis进行数据持久化,防止服务器重启导致session丢失。 总的来说,通过使用Tomcat和Redis,我们可以构建一个高效且可扩展的session共享方案,为大型Web应用提供稳定的服务。...

    Tomcat实现session共享demo

    这是Tomcat的持久化Session管理器,可以与其他存储机制集成。 3. **配置RedisStore**:配置`Manager`的属性,包括`storeClass`,设置为`org.apache.catalina.session.RedisStore`,这告诉Tomcat使用Redis作为...

    Memcached+tomcat session共享jar 和tomcat xml配置

    在分布式系统中,Session共享是一个常见的挑战,尤其是在多个服务器之间,比如使用Tomcat作为Web容器的环境。...因此,在实际生产环境中,可能需要结合持久化存储或者其他的Session复制策略来确保数据的安全性。

Global site tag (gtag.js) - Google Analytics