session-descriptor
session-descriptor 元素定义 servlet 会话的参数。
元素名 默认值 值
timeout-secs 3600 设置 WebLogic Server 等待会话超时的时间(秒)。默认值为 3600 秒。
在繁忙的站点上,可以通过调整会话超时时间来调整应用程序。尽管您希望为浏览器客户端提供每个完成会话的机会,但如果用户已离开站点或已放弃会话,您也不希望毫无必要地占用服务器。
该元素可以由 web.xml 中的 session-timeout 元素(分钟)替代。
invalidation-interval-secs 60 设置 WebLogic Server 在执行超时会话和无效会话的清理检查与删除旧会话并释放内存之间需要等待的时间(秒)。使用此元素调整 WebLogic Server 以在高流量站点上获得最佳性能。
默认值为 60 秒。
sharing-enabled false 如果该值在应用程序级别上设置为 true,则 Web 应用程序能够共享 HTTP 会话。
如果在 Web 应用程序级别打开该元素,将忽略该元素。
debug-enabled false 启用 HTTP 会话的调试功能。
默认值为 false。
id-length 52 设置会话 ID 的大小。
最小值为 8 字节,最大值为 Integer.MAX_VALUE。
如果您正在编写 WAP 应用程序,您必须使用 URL 重写,因为 WAP 协议不支持 cookie。同时,某些 WAP 设备限制 URL 的长度(包括特性)不得超过 128 个字符,这限制了使用 URL 重写功能可以传输的数据量。为了给各个特性预留较多空间,可以使用此特性限制 WebLogic Server 随机生成的会话 ID 的大小。
还可以通过设置 WAPEnabled 特性将长度限制为固定的 52 位字符,且不允许使用特殊字符。有关详细信息,请参阅“开发 WebLogic Server 的 Web 应用程序”中的 URL 重写和无线访问协议。
tracking-enabled true 启用 HTTP 请求之间的会话跟踪。
cache-size 1028 设置 JDBC 持久性会话和文件持久性会话的缓存大小。
max-in-memory-sessions -1 设置内存/复制会话的最大限制。
如果不能对内存中 servlet 会话的使用加以限制,那么,随着新会话的持续创建,服务器 最终必然引发内存不足。为防止出现此问题,WebLogic Server 将针对所创建会话的数量提供可配置的限制。超出该数量时,每次尝试新建会话时都会引发 weblogic.servlet.SessionCreationException。此功能适用于复制内存中会话和非复制内存中会话。
要对内存中 servlet 会话的使用加以限制,您可以在 max-in-memory-sessions 元素中设置限制。
默认值为 –1(无限制)。
cookies-enabled true 默认情况下启用会话 cookie,建议保持此状态,但也可以通过将该属性设置为 false 来禁用它们。您可能会关闭该选项以进行测试。
cookie-name JSESSIONID 定义会话跟踪 cookie 名称。如果没有设置,则默认值为 JSESSIONID。可以将其设置为适用于您的应用程序的更具体的名称。
cookie-path null 定义会话跟踪 cookie 路径。
如果未设置此特性,则此特性默认为 /(斜杠),浏览器会向 WebLogic Server 服务的所有 URL 发送 cookie。可以将该路径设置为限制性更强的映射,以便限制浏览器会向其发送 cookie 的请求 URL。
cookie-domain null 指定 cookie 有效的域。例如,将 cookie-domain 设置为 .mydomain.com 会向 *.mydomain.com 域中的所有服务器返回 cookie。
域名必须至少由两部分组成。将名称设置为 *.com 或 *.net 是无效的。
如果不设置此特性,则此特性默认为发出 cookie 的服务器。
有关详细信息,请参阅 Sun Microsystems 的 Servlet 规范中的 Cookie.setDomain()。
cookie-comment null 指定标识 cookie 文件中会话跟踪 cookie 的注释。
cookie-secure false 指示浏览器仅通过 HTTPS 连接传回 cookie。这可以确保 cookie ID 是安全的,且仅用于使用 HTTPS 的网站。如果启用此功能,则 HTTP 上的会话 Cookie 将不再起作用。
如果希望使用此特性,则应禁用 url-rewriting-enabled 元素。
cookie-max-age-secs -1 设置客户端上的会话 cookie 的生命周期(秒),会话 cookie 超过该时间即会过期。
默认值为 –1(无限制)
有关 cookie 的详细信息,请参阅使用会话和会话持久性。
persistent-store-type memory 将持久性存储方法设置为以下某个选项:
■memory - 禁用持久性会话存储。
■replicated - 与 memory 相同,但会话数据将在群集服务器之间复制。
■replicated_if_clustered – 如果 Web 应用程序部署于群集服务器上,则会复制生效的 persistent-store-type。否则,memory 为默认值。
■sync-replication-across-cluster – 复制将在群集内同步发生。
■async-replication-across-cluster – 复制将在群集内异步发生。
■file - 使用基于文件的持久性(另请参阅 persistent-store-dir)。
■jdbc - 使用数据库存储持久性会话。(另请参阅 persistent-store-pool。)
■cookie – 所有会话数据都存储于用户浏览器的 cookie 中。
persistent-store-cookie-name WLCOOKIE 设置基于 cookie 的持久性所使用的 cookie 的名称。WLCOOKIE cookie 中带有会话状态,不应在 Web 应用程序之间共享。
有关详细信息,请参阅使用基于 Cookie 的会话持久性。
persistent-store-dir session_db 指定基于文件的持久性所使用的存储目录
确保您有充足的磁盘存储空间(有效会话数与每个会话大小的乘积)。可以通过查看 persistent-store-dir 下创建的文件来确定会话的大小。注意,每个会话的大小随序列化会话数据的大小变化而变化。
每个服务器实例都有一个默认的不需要配置的持久性文件存储。因此,如果不指定目录,会在 <server-name>\data\store\default 目录中自动创建默认存储。但是,默认存储不能在群集服务器间共享。
可以在不同服务器之间共享的目录中创建自定义持久性存储,从而使文件持久性会话群集化。但是,您需要手工创建此目录。
persistent-store-pool None 指定要用于持久性存储的 JDBC 连接缓冲池的名称。
persistent-store-table wl_servlet_sessions 指定用于存储基于 JDBC 的持久性会话的数据库表名。仅当 persistent-store-type 设置为 jdbc 时,此项才适用。
当您选择数据库表名称而非默认值时,将使用 persistent-store-table 元素。
jdbc-column-name-max-inactive-interval 是 wl_max_inactive_interval 列名的备用名称。这个 jdbc-column-name-max-inactive-interval 元素仅适用于基于 JDBC 的持久性。某些不支持长列名的数据库需要使用该元素。
jdbc-connection-timeout-secs 120 注意:本版本中不赞成使用该元素。
设置 WebLogic Server 等待 JDBC 连接超时的时间(秒),其中 x 是其间的秒数。
url-rewriting-enabled true 启用 URL 重写(将会话 ID 编码到 URL 中),如果浏览器中禁用 cookie,它还可以提供会话跟踪。
http-proxy-caching-of-cookies true 设置为 false 时,WebLogic Server 会在下面的响应中添加如下头信息:
"Cache-control: no-cache=set-cookie"
这表示代理缓存没有缓存 cookie。
encode-session-id-in-query-params false 最新 servlet 规范要求容器将会话 ID 编码在路径参数中。某些 Web 服务器不太支持路径参数。在这样的情况下,应该将 encode-session-id-in-query-params 元素设置为 true。(默认值为 false。)
runtime-main-attribute 用于 ServletSessionRuntimeMBean 中。ServletSessionRuntimeMBean 的 getMainAttribute() 会使用该字符串为关键字而返回会话特性值。
示例:user-name
该元素适用于标记不同会话的会话运行时信息。