本站首页    管理页面    写新日志    退出



公告


 求真务实打基础,
 宁缺毋滥读好书。

数据挖掘青年(DMman)


我的分类(专题)

日志更新
问君能有几多愁,恰似一群太监上青楼
我和僵尸有个约会:灵异世界或真实存在?
赤壁(下)观后小感:雷人
英科学家:酒精和烟草的危害大于大麻和摇头
只有社会主义才能拯救世界(由金融危机引发
求职心得(非名牌院校 硕士 计算机)
省外就业协议录入
数据挖掘方面的资源、期刊、会议的网址集合
面试心得(摘)
为学
EI收录中国期刊-核心(2008-5)
混沌理论:随机世界的建模
分子计算机已经问世,纳米计算机指日可待?
绝对好用免费的网络电话
NLP:基于机器学习的人类思想及行为建模
Weka中用于组合多个模型的的装袋、提升
数据挖掘在企业中应用的四种途径
(转)几点做人做事的建议
大学计算机软件专业生应该学什么(转)
一个程序员对学弟学妹建议(转)

最新评论

留言板

链接

Blog信息
blog名称:DMman(数据挖掘青年)
日志总数:102
评论数量:564
留言数量:57
访问次数:1637645
建立时间:2007年4月9日




[Java EE]转:Tomcat服务器配置参考(12)Manager组件
网上资源

数据挖掘青年 发表于 2007-4-19 21:51:36

概述 Manger元素代表用来产生,维护HTTP session的session manager。 Manager元素可以嵌套在Context组件中。如果不包含它,会自动创建一个缺省的Manager配置,这对大多数需求都是足够的。 属性 公共属性 所有Manager的实现支持如下属性: 属性 描述 className 实现的Java类名。这个类必须实现org.apache.catalina.Manager接口。如果没有指定,使用标准值。 distributable 在分布式应用中,如果想加上Servlet Specification中描述的限制,设为true。这意味着所有的session属性必须实现java.io.Serializable接口。如果不想加上这些限制,设为false注意:根据/web-inf/web.xml中是否存在<distributable>元素,这个属性值自动继承; 标准实现 Tomcat为Manger提供了两个标准实现。缺省的实现存储活动的session,可选的实现存储被交换出来的活动session(另外还存储tomcat重启前后的session),存储的位置由嵌套的Store元素定义。 标准的Manager实现 Manger的标准实现是org.apache.catalina.session.StandardManger。它支持如下的附加属性: 属性 描述 algorithm 用于计算session标识符的消息摘要算法。这个值必须被java.security.MessageDigest类支持。如果没有指定,缺省值是“MD5” checkInterval 检查session是否过期的时间间隔,以秒为单位,缺省值是60秒 debug 与Manager相关的Logger记录的调试信息的详细程度,数字越大,输出越详细。如果没有指定,缺省值为0。 entropy 在创建session标识符中随机数发生器的种子。为字符串值。如果没有指定,计算一个不完全有用的值。在安全要求很高的环境中,应该指定一个长的字符串。 maxActiveSessions 产生的最大活动session数。如果为-1,说明没有限制。 pathname 如果可能的话,当应用重启时,用于保存session状态的文件的绝对或者相对路径。缺省为“SESSIONS.ser”。参考Restart Persistence,以得到更多信息 randomClass 实现java.util.Random的Java类名。如果没有指定,缺省为java.security.SecureRandom Persisten Manager实现 警告-这个实现还没有经过细致的测试,只能用于实验用途。 Manger的persistent实现是org.apache.catalina.session.PersistentManager。除了通常的创建和删除session以外,PersistentManger还能够将空闲的活动session交换到永久的存贮介质上面。当tomcat正常重启时,还可以将session保存下来。实际使用的存储机制由嵌套的store元素定义。使用PersistentManager时,store元素必须定义。 Manager的这个实现支持如下的附加属性: 属性 描述 algorithm 产生session identifier的消息摘要算法的名称。这个值必须被java.security.MessageDigest类支持。如果没有指定,缺省值为“MD5”。 checkInterval 检查session是否过期的时间间隔,以秒为单位,缺省值为60秒。 className 实现的Java类名。这个类必须实现 org.apache.catalina.Manager接口。对于persistent manager实现,必须指定为org.apache.catalina.session.PersistentManager。 debug 与Manager相关联的Logger记录信息的详细程度。数字越大,输出越详细。如果不指定,缺省值为0。 entropy 在创建session标识符中随机数发生器的种子。为字符串值。如果没有指定,计算一个不完全有用的值。在安全要求很高的环境中,应该指定一个长的字符串。 maxActiveSessions 产生的最大活动session数。如果为-1,说明没有限制。 maxIdleBackup 自上次访问某个session到这个session可以被保存到存储介质上的时间间隔。以秒为单位,如果为-1,则disable这个特征。缺省情况下,这个特征是disable的。 maxIdleSwap 自上次访问某个session到session应该被保存到存储介质上,并从服务器的内存中交换出来之间的时间间隔。如果为-1,则disable这个特征。如果使能了这个特征,指定值应该大于或者等于maxIdleBackup。缺省情况下这个特征是disable的。 minIdleSwap 自上次访问某个session到session可以被保存到存储介质上,并从服务器的内存中交换出来之间的时间间隔。如果为-1,说明可以在任何时间交换出来。指定值应该小于maxIdleSwap。缺省情况下这个特征是disable的。 randomClass 实现java.util.Random的Java类名。如果没有指定,缺省为java.security.SecureRandom saveOnRestart 当Tomcat关闭的时候,是否应该保存所有的session?Tomcat重启(或者应用重新载入)后是否应该恢复所有的session。缺省情况下为true。 为了成功使用PersistentManager,你必须嵌套一个<Store>元素,如下所述。 嵌套元素 标准Manager实现 如果使用Standard Manager实现,<Manager>元素中不需要嵌套任何元素 Persistent Manager实现如果使用Persistent Manager实现,你必须在<Manager>元素中嵌套一个<Store>元素。<Store> 元素定义了数据存储的特性。目前<Store>元素有两个实现,下面描述了它们的特征。 基于文件的存储 基于文件的存储实现将交换出来的session存储在指定目录下的单个的文件中(根据session identifier命名)。因此,当活动session数目增加时,可能会碰到扩展性的问题,这种方法应该主要用在实验系统中。 为了配置基于文件的存储,在<Manager>元素中嵌套一个<store>元素,并具有如下属性: 属性 描述 checkInterval 检查当前被交换出来的session是否过期的时间间隔,缺省值为60秒。 className 实现的Java类名。这个类必须实现org.apache.catalina.Store接口。使用基于文件的存储时,必须将这个属性指定为org.apache.catalina.session.FileStore. debug 与Store元素相关联的Logger的调试信息的详细程度。数字越大,输出越详细。如果没有指定,缺省值为0。 directory 用来存储单个session文件的目录,可以是绝对或者相对路径(相对于这个web应用的临时工作目录)。如果没有指定,使用container指定的临时工作目录。   基于JDBC的存储 基于JDBC的存储实现将交换出来的session存储在预先配置好的数据库表中,每一行存储一个session。如果有大量的session需要交换出来,这种实现比基于文件的存储性能要好。 为了使用基于JDBC的存储,在<Manager>元素中嵌套一个<Store>元素,并配置如下属性: 属性 描述 checkInterval 检查当前被交换出来的session是否过期的时间间隔,缺省值为60秒。 className 实现的Java类名。该类必须实现org.apache.catalina.Stroe接口。为了使用基于JDBC的存储,这个指必须指定为org.apache.catalina.session.JDBCStore. connectionURL 建立数据库连接的URL,传递给JDBC驱动。 debug 与Store元素相关联的Logger的调试信息的详细程度。数字越大,输出越详细。如果没有指定,缺省值为0。 driverName 使用的JDBC驱动的Java类名 sessionAppCol session表中的数据库列名,包含Engine,Host和Web应用上下文的名称,格式为/Engine/Host/Context sessionDataCol session表中的数据库列名,包含交换出来的session的所有属性序列化以后的形式。列类型必须能够接受二进制对象(称作BLOB) sessionIdCol Session表中的数据库列名,包含交换出来的session的session标识符。该列必须接受字符串数据,并且至少要能装下session标识符的所有字符(通常为32) sessionLastAccessedCol session表中的数据库列名,包含session的lastAccessedTime属性。该列必须接受Java长整型数据(64bits) sessionMaxInactiveCol session表中的数据库列名,包含session的maxInactiveInterval属性。该列必须接受Java整型数据(32bits) sessionTable 用来存储交换出来的session的表名。这个表至少必须包含上面列出的列。   sessionValidCol session表中的列名,包含一个标志,表名交换出来的session是否有效。该列必须接受单个字符。 在第一次使用基于JDBC的存储之前,必须创建用来存储session的表。具体的SQL命令取决于你使用的数据库,但一般来说,具有象下面的格式: 500)this.width=500'> 500)this.width=500'> 500)this.width=500'> 500)this.width=500'> create table tomcat_sessions ( session_id varchar(100) not null primary key, valid_session char(1) not null, max_inactive int not null, last_access bigint not null, app_name varchar(255), session_data mediumblob, KEY kapp_name(app_name) ); 500)this.width=500'> 500)this.width=500'> 500)this.width=500'> 500)this.width=500'> 为了使基于JDBC的存储成功地连接到你的数据库,JDBC驱动对Tomcat的内置class loader必须是可见的。一般来说,这意味着你必须把包含驱动的JAR文件放在$CATALINA_HOME/server/lib下面(如果你的应用不需要使用JDBC驱动)或者放在$CATALINA_HOME/common/lib目录下面(如果希望将驱动和web应用共享) 专有特征 Restart Persistence 每当Catalina被正常关闭后重新启动,或者应用被重新载入,标准的Manager实现会尝试将目前所有的活动session序列化到一个磁盘文件中,通过pathname属性。当应用完成重载以后,所有存储的session被deserialized,激活(假定session同时还没有过期); 为了成功恢复session属性的状态,所有的属性必须实现java.io.Serializable接口。通过在/WEB-INF/web.xml中包含<distributable>元素,可以要求Manager加上这个限制。


阅读全文(3189) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.031 second(s), page refreshed 144329099 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号