tomcat配置session持久化

  • A+
Categories:Linux

Session的管理,tomcat两个实现类:org.apache.catalina.session.StandardManager和org.apache.catalina.session.PersistentManager
StandardManager 默认的方法 可以配置的地方比较少
PersistentManager 提供了很灵活的管理方式 配置性强

形式一:存储在本地文件中:配置conf目录里的context.xml文件
1.修改的文件: $Tomcat_HOME/conf/context.xml

2.在context.xml文件根节点下面添加以下内容:

<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>

3.如果session中存有javabean对象,需要该javabean实现Serializable接口、且包含空构造函数。

形式二:存储在数据库中 配置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文件夹

Tue Jan 29 14:16:52 CST 2013

Comment

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: