30.1. 管理与配置

Apusic域主目录的config目录中,配置文件apusic.conf包含了Session服务的配置段。缺省的配置段如下:

...
<SERVICE
    CLASS="com.apusic.web.session.SessionService"
    >
    <ATTRIBUTE NAME="DefaultSessionTimeout" VALUE="3600"/>
    <ATTRIBUTE NAME="MaxSessionsInCache" VALUE="1024"/>
    <ATTRIBUTE NAME="SessionInvalidateCheckInterval" VALUE="60"/>
    <ATTRIBUTE NAME="Distributable" VALUE="False"/>
    <ATTRIBUTE NAME="Replicable" VALUE="False"/>
    <ATTRIBUTE NAME="SessionStick" VALUE="False"/>
    <ATTRIBUTE NAME="PersisteSession" VALUE="False"/>
    <ATTRIBUTE NAME="DestorySessionOnApplicationStop" VALUE="True"/>
</SERVICE>
...

可通过修改配置段中的可配置属性,对Session服务器进行管理。

Session服务的属性见下表:

属性描述值类型缺省值
DefaultSessionTimeout默认Session超时时间。当web应用设置的超时时间小于0时,系统采用此值作为默认的Session超时时间。整型,单位为秒3600
MaxSessionsInCache缓存Session空间的大小。当缓存中的数量超过此值时,Session会被交换到文件中。如果maxSessionInCache 小于 0 则所有的session都放在内存里,不会写出或抛弃,sessionStore无效;如果从正数改成负数或者负数改成正数都需要重启服务器,正数的大小在jmx里改动可及时生效。 整型1024
SessionCreationPolicyOnMaxOverride, 忽略最大限制,继续创建新Session,由后台线程负责清除多余的session(至于后台线程清除多余session的策略,由辅助参数BackgroundPolicyOfOverrideOnMax控制)。这种策略相当于异步执行对超过最大限制的处理,而相对的ExpireOld和SwapOutOld两种策略都是同步处理; NotAllow, 不允许超过最大限制,如超过,直接抛异常; ExpireOld, 如超过最大限制,先废弃掉多余的旧session(通常并未过期),再创建新的。这种选择暗示着SessionStore在运行中将不被需要,也许只是容器启动或停止时load或unload所有session时才需要SessionStore; SwapOutOld,如超过最大限制,先把内存中多余的旧session交换到持久存储SessionStore中,再创建新的。 "Override"或"NotAllow"或"ExpireOld"或"SwapOutOld"SwapOutOld
BackgroundPolicyOfOverrideOnMax取值的含义同SessionCreationPolicyOnMax中的解释。 "ExpireOld"或"SwapOutOld"SwapOutOld
Anycasting使用Session集群时除了需要配置ClusterService以外,在SessionService里增加了Anycasting选项,这个选项缺省为False,缺省使用广播方式,数据的复制包只发送一次到集群所有节点,如果Anycasting设为True在采用点对点通信,依次发送。 “true”或“false”false
SessionInvalidateCheckInterval检查Session是否有效的时间间隔。整型,单位为秒3
Distributable标识是否允许分布式Session,当此值为“true”时,Session被允许复制到Apusic负载均衡器中,以提供失效恢复功能(需保证Session中的对象实现了序列化接口)。“true”或“false”“false”
Replicable标识是否允许在Apusic集群中复制Session。当此值和Distributable属性都为“true”时,Session被允许在启动了集群服务的Apusic节点中复制,以提供失效恢复功能(需保证Session中的对象实现了序列化接口)。“true”或“false”“false”
SessionStick标识是否提供Session粘滞功能。在Apusic集群中使用第三方的负载均衡器时,如果此值为“true”,则提供客户端与服务器之间的Session粘滞性。“true”或“false”“false”
PersisteSession标识是否在停止Session服务时(比如关闭Apusic服务),将当前的所有Session存储到文件中,以保证在服务器重启后,Session还是可用的。“true”或“false”“false”
DestorySessionOnApplicationStop标识是否在停止应用后销毁该应用相关的所有Session。“true”或“false”“true”