`
qwex9iao
  • 浏览: 173603 次
  • 性别: 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的持久化,详细讲解tomcatsession管理的原理和持久化原理

    TOMCAT SESSION的持久化方法

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

    Session持久化

    在tomcat实现对session的持久化,如果浏览的用户过大,避免服务器的内存消耗太大,影响性能。

    Tomcat7基于Redis的Session共享

    原理就是继承tomcat的manager接口,接管session的持久化工作 2.使用 ◦使用的时候就是Maven打包,放到tomcat的lib里面 (主要是三个包:commons-pool2-2.3.jar;jedis-2.7.3.jar;tomcat7-redis-cluster-1.0.0.jar) ...

    Tomcat8基于Redis的Session共享

    原理就是继承tomcat的manager接口,接管session的持久化工作 2.使用 ◦使用的时候就是Maven打包,放到tomcat的lib里面 (主要是三个包:commons-pool2-2.3.jar;jedis-2.7.3.jar;tomcat7-redis-cluster-1.0.0.jar) ...

    tomcat-redis-session-manager-by-eguid.zip

    实现tomcat 8及以后版本的tomcat集群的session持久化操作,基于redis实现tomcat容器的session的持久化 tomcat-redis-session-manager-by-eguid.jar+jedis-2.9.0.jar+commons-pool2-2.2.jar集合包

    Tomcat集群Session共享

    Tomcat集群解决Session共享的方案: 1. 基于Cookie+Redis+Filter解决方案实现过程优缺点踩坑 2. Tomcat内置的Session复制方案实现过程优...4. 基于Session持久化方案 5. 基于Spring-Session无侵入性方案实现过程优缺点

    tomcat-redis-session-manager-by-eguid.jar

    实现tomcat 8及以后版本的tomcat集群的session持久化操作,基于redis实现tomcat容器的session的持久化 本项目是基于jcoleman的二次开发版本 1、修改了小部分实现逻辑 2、去除对juni.jar包的依赖 3、去除无效代码和老...

    通过Nginx+Tomcat+Redis实现持久会话

    Redis的特点就是可以将session持久化。样才能真正实现后台多个Tomcat负载平衡,用户请求能够发往任何一个tomcat主机。 keeplived、zabbix与ansible暂不在本文章的范围当中,会在之后的文章逐一进行讲解 实验架构图 ...

    Tomcat中的Session与Cookie深入讲解

    前言 ...本文首发于公众号顿悟源码. 解决办法就是使用 Cookie,它由服务器返回给浏览器,浏览器缓存并在每次请求时将 cookie 数据提交到服务器。Cookies 在请求中以明文传输,且大小限制 4KB,显然把所有状态数据保存...

    谈谈业务中使用分布式的场景1

    2.集群中,各个应用服务器提供了session复制的功能,tomcat和jboss都实现了这样的功能 3.session的持久化,使用数据库来保存session

    how-tomcat-works

    4.2.1 持久化连接 18 4.2.2 编码 18 4.2.3 状态码100的使用 19 4.3 Connector接口 19 4.4 HttpConnector类 20 4.4.1 创建ServerSocket 20 4.4.2 维护HttpProcessor对象池 20 4.4.3 提供Http请求服务 21 4.5 ...

    编程入门_Eclipse教程

    4.1.1. 对持久化对象的要求 35 4.1.2. OID 36 5. Eclipse使用技巧 36 5.1. 一般插件安装 36 5.2. 自定义注释 37 5.3. 常用的快捷键 37 5.4. 代码编写小技巧 37 5.5. Eclipse中恢复已删除文件 37 5.6. Eclipse中轻松...

    SSH的jar包.rar

    SSH 通常指的是 Struts2 做前端控制器,Spring 管理各层的组件,Hibernate 负责持久化层。 一个请求在Struts2框架中的处理大概分为以下几个步骤: 1、客户端初始化一个指向Servlet容器(例如Tomcat)的请求 2、这...

    仿当当网mvc架构设计

    具体描述:独立完成项目的各个开发模块,本系统采用了典型MVC的三层架构,利用jsp实现表现层,struts实现业务逻辑,hibernate作数据持久化处理。利用hibernate的事务逻辑线程session实现事务的统一处理。Jsp只负责...

    How Tomcat Works: A Guide to Developing Your Own Java Servlet Container

    4.2.1 持久化连接 18 4.2.2 编码 18 4.2.3 状态码100的使用 19 4.3 Connector接口 19 4.4 HttpConnector类 20 4.4.1 创建ServerSocket 20 4.4.2 维护HttpProcessor对象池 20 4.4.3 提供Http请求服务 21 4.5 ...

    尚硅谷_Redis.docx

    在本课程中,你将了解Redis是什么、能干什么、如何用,了解NoSQL的使用场景和概念,快速掌握Redis的安装配置、五大数据类型、常用操作命令、Redis持久化、主从复制、事务控制以及用Jedis操作进行Java开发等知识。...

    尚硅谷Redis入门视频

    在本课程中,你将了解Redis是什么、能干什么、如何用,了解NoSQL的使用场景和概念,快速掌握Redis的安装配置、五大数据类型、常用操作命令、Redis持久化、主从复制、事务控制以及用Jedis操作进行Java开发等知识。...

    hibernate 教程

    第一个可持久化类 1.3. 映射cat 1.4. 与猫同乐 1.5. 结语 2. 体系结构 2.1. 总览 2.2. JMX集成 2.3. JCA支持 3. SessionFactory配置 3.1. 可编程配置方式 3.2. 获取SessionFactory...

Global site tag (gtag.js) - Google Analytics