搜索

3.7.4. 在企业归档中配置子部署之间的会话共享

download PDF

JBoss EAP 提供配置企业存档(EAR)在 EAR 中包含的 WAR 模块子部署之间共享会话的功能。默认情况下禁用此功能,必须在 EAR 的 META-INF/jboss-all.xml 文件中明确启用。

重要

由于此功能不是标准 servlet 功能,如果启用此功能,您的应用程序可能无法移植。

要在 EAR 中启用 WAR 之间的会话共享,您需要在 EAR 的 META -INF/jboss-all.xml 中声明 shared- session-config 元素:

示例: META-INF/jboss-all.xml

<jboss xmlns="urn:jboss:1.0">
  ...
  <shared-session-config xmlns="urn:jboss:shared-session-config:2.0">
  </shared-session-config>
  ...
</jboss>

shared-session-config 元素用于为 EAR 中的所有 WAR 配置共享会话管理器。如果存在 shared-session-config 元素,则 EAR 内的所有 WAR 将共享相同的会话管理器。此处所做的更改将影响 EAR 中包含的所有 WAR。

3.7.4.1. 共享会话配置选项参考

示例: META-INF/jboss-all.xml

<jboss xmlns="urn:jboss:1.0">
    <shared-session-config xmlns="urn:jboss:shared-session-config:2.0">
    	<distributable/>
        <max-active-sessions>10</max-active-sessions>
        <session-config>
            <session-timeout>0</session-timeout>
            <cookie-config>
                <name>JSESSIONID</name>
                <domain>domainName</domain>
                <path>/cookiePath</path>
                <comment>cookie comment</comment>
                <http-only>true</http-only>
                <secure>true</secure>
                <max-age>-1</max-age>
            </cookie-config>
            <tracking-mode>COOKIE</tracking-mode>
        </session-config>
        <replication-config>
            <cache-name>web</cache-name>
            <replication-granularity>SESSION</replication-granularity>
        </replication-config>
    </shared-session-config>
</jboss>

元素描述

shared-session-config

共享会话配置的根元素.如果 META-INF/jboss-all.xml 中存在,则 EAR 中包含的所有部署 WAR 都将共享单个会话管理器。

distributable

指定应使用可分布式会话管理器。从 schema 版本 2.0 开始,默认使用一个不可分发的会话管理器。对于版本 1.0,distributable 会话管理器仍然是默认的会话管理器。

max-active-sessions

允许的最大会话数.

session-config

包含 EAR 中包含的所有已部署 WAR 的会话配置参数。

session-timeout

为 EAR 中包含的部署的 WAR 中创建的所有会话超时间隔定义默认的会话超时间隔。指定的超时必须以整分钟表示。如果超时为 0 或以下,容器可确保会话的默认行为永不超时。如果没有指定此元素,容器必须设置其默认超时期限。

cookie-config

包含由 EAR 中包含的部署的 WAR 创建的会话跟踪 Cookie 的配置。

name

分配给 EAR 中所含部署的 WAR 创建的任何会话跟踪 Cookie 的名称。默认值为 JSESSIONID

domain

分配给 EAR 中所含部署的 WAR 创建的任何会话跟踪 Cookie 的域名。

路径

分配给 EAR 中所含部署的 WAR 创建的任何会话跟踪 Cookie 的路径。

注释

分配给 EAR 中所含部署的 WAR 创建的任何会话跟踪 Cookie 的注释。

http-only

指定 EAR 中包含的已部署 WAR 创建的任何会话跟踪 Cookie 是否标记为 HttpOnly

安全

指定任何由 EAR 中包含的部署的 WAR 创建的会话跟踪 Cookie 是否会被标记为安全,即使发起对应会话的请求使用普通 HTTP 而不是 HTTPS。

max-age

分配给由 EAR 中包含的部署的 WAR 创建的任何会话跟踪 Cookie 的生命周期(以秒为单位)。默认值为 -1

tracking-mode

定义由 EAR 中包含的部署的 WAR 创建的会话的跟踪模式。

replication-config

包含 HTTP 会话集群配置。

cache-name

这个选项仅适用于集群。它指定 Infinispan 容器的名称,以及用于存储会话数据的缓存。默认值(如果未明确设置)由应用服务器决定。要在缓存容器内使用特定的缓存,请使用 container.cache 形式,如 web.dist。如果 name 不限定,则使用指定容器的默认缓存。

复制 -granularity

这个选项仅适用于集群。它决定了会话复制粒度级别。可能的值有 SESSIONATTRIBUTE,其中 SESSION 是默认值。

如果使用了 SESSION 粒度,则在请求范围内修改了任何会话属性,则会复制所有会话属性。如果对象引用由多个会话属性共享,则需要此策略。但是,如果会话属性足够大和/或不常修改,则这可能会低效,因为无论是否修改了所有属性,都必须复制所有属性。

如果使用 ATTRIBUTE 粒度,则仅复制在请求范围内修改的属性。如果对象引用由多个会话属性共享,则此策略不合适。如果会话属性足够大和/不频繁地修改,则这比 SESSION 粒度更高。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.