切换到多行模式

多行模式配置支持存储的数据量仅受应用程序中数据库容量的限制。应用程序可以读取单个字段而不是整条记录,从而通过避免不必要的 Java™ 对象序列化来帮助提高性能。配置会话管理工具以通过使用多行模式配置将会话对象中的每个属性分别存储在数据库中的单独行内。

关于此任务

保留的实际限制仅仅是会话属性对象的大小。多行模式潜在地具有某些使用方案中的性能利益,如当大量数据存储到会话中 ,但是在给定 servlet 的 HTTP 请求处理期间指定访问的仅仅是少数数据。在这样的方案中,避免不需要的 Java 对象序列化有利于提高性能。

除了允许较大的会话记录外,使用多行模式还可以带来性能效益。但是,从单行切换到多行模式需要做一点工作,如下表所示。

缺省情况下,一个会话映射至数据库表(用于保存会话)中的一行。在该设置中,对 WebSphere® Application Server 可访问的用户定义、应用程序特定数据的数量做了硬性限制。

在验证选项是否适合应用程序的需求时,考虑将单行用法指向一个数据库,而将多行用法指向另一个数据库的配置。在代码中通过切换使用的数据源完成这一操作,然后监视性能。

表 1. 选择单行或多行模式配置. 单行或多行模式配置
编程问题 应用程序方案
使用单行的原因
  • 在只有一个记录读和写的情况下您可以读或写所有的值。
  • 因为您确保每个会话仅仅是一个记录长度,所以这在数据库中占用了较少的空间。
使用单行的原因 每个会话中 2 兆的存储数据限制。
使用多行的原因
  • 该应用程序可以存储无限的数据量;即,您仅有数据库大小的限制和每个记录 2 兆的限制。
  • 该应用程序可以读个别字段,而不是整个记录。在 HTTP 请求的 servlet 处理过程中,当大量的数据存储到会话中,但仅指定访问了一小部分数据,那么多行会话可以通过避免不需要的 Java 对象序列化来提高性能。
使用多行的原因 如果数据很小,那么当所有的东西可以存储到一行中时,您可能就不想有多行读的额外开销。

在使用多行模式时,要将您的应用程序数据对象设计成不必引用其他的数据对象,并防止产生循环引用。例如,假设您正使用 HttpSession.put(..) 将两个对象(A 和 B)存储到会话中,而且 A 包含对 B 的引用。在多行情况下,因为对象是存储在数据库中不同的行中,当以后检索对象 A 和 B 时,A 和 B 之间的对象图与存储的是不同的。A 和 B 是相互独立的对象。

过程

  1. 修改会话管理工具属性,以从单行模式切换到多行模式。
  2. 手动删除该表。

    [AIX Solaris HP-UX Linux Windows][IBM i]要删除表:

    1. 确定会话管理使用哪个数据源配置。
    2. 在数据源配置中,查询数据库名称。
    3. 使用数据库工具以连接到数据库。
    4. 删除 SESSIONS 表。
  3. [z/OS]重新创建数据库表或删除数据库表中产品用于维护 HttpSession 对象的所有行。

    请参阅《DB2® UDB OS/390® 和 z/OS® 版 V7 管理指南》获取如何删除 DB2 数据库表的描述。

    为会话持久性创建 DB2 表描述了如何创建新的 DB2 数据库表。


指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tprs_swsk
文件名:tprs_swsk.html