发新话题
打印

Tomcat如何实现session持久化

Tomcat如何实现session持久化

tomcat server.xml应如何配置 可以实现把session信息放到数据库中?

TOP

PersistentManager -提供了更加灵活的管理方式,具有容错能力,可以及时把Session备份到Session Store中,可以控制内存中Session的数量。
小猫还提供了实现持久化Session Store的接口,org.apache.catalina.Store,目前提供了两个具体实现类:org.apache.catalina.FileStore和org.apache.catalina.JDBCStore。
server.xml中的配置File Store -

<Context path="/helloapp" docBase="helloapp" debug="0" reloadable="true">
    <Manager className="org.apache.catalina.session.PersistentManager" debug="0" saveOnRestart="true"
          maxActiveSessions="-1" minIdleSwap="-1" maxIdleSwap="-1" maxIdleBackup="-1" >
    <Store className="org.apache.catalina.session.FileStore" directory="mydir"/>
    </Manager>
</Context>
参数说明:saveOnRestart-服务器关闭时,是否将所有的session保存到文件中;
maxActiveSessions-可处于活动状态的session数;
minIdleSwap/maxIdleSwap-session处于不活动状态最短/长时间(s),sesson对象转移到File Store中;
maxIdleBackup-超过这一时间,将session备份。(-1表示没有限制)

JDBCStore配置的区别:

<Store calssName="org.apache.catalina.JDBCStore" driverName="com.mysql.jdbc.Driver"
    connectionURL="jdbc:mysql://localhost/tomsessionDB?user=root&password="
    sessionTable="tomcat_session" sessionIdCol="session_id" sessionDataCol="session_data"
    sessionValidCol="session_valid" sessionMaxInactiveCol="max_inactive"
    sessionLastAccessedCol="last_access" sessionAppCol="app_name" checkInterval="60" debug="99" />

TOP

发新话题