Sun logo      上一页      目录      下一页     

Sun Java System Application Server Enterprise Edition 8.1 管理指南 2005Q1

第 13 章
J2EE 容器

本章说明如何配置服务器中包含的 J2EE 容器。本章包含以下几节:


关于 J2EE 容器

本节介绍了 Application Server 中包含的 J2EE 容器。

J2EE 容器的类型

J2EE 容器为 J2EE 应用程序组件提供运行时支持。J2EE 应用程序组件使用容器的协议和方法访问服务器提供的其他应用程序组件和服务。Application Server 提供了应用程序客户机容器、小应用程序容器、Web 容器和 EJB 容器。有关显示容器的图表,请参见“Application Server 体系结构”部分。

Web 容器

Web 容器是用于托管 Web 应用程序的 J2EE 容器。Web 容器通过为开发者提供运行 Servlet 和 JavaServer Page (JSP) 的环境,扩展了 Web 服务器的功能。

EJB 容器

企业 Bean(EJB 组件)是包含商业逻辑的 Java 编程语言服务器组件。EJB 容器提供对企业 Bean 的本地访问和远程访问。

企业 Bean 分为三种类型:会话 Bean、实体 Bean 和消息驱动 Bean。会话 Bean 表示瞬态对象和进程,并且通常由单个客户机使用。实体 Bean 表示持久性数据,通常保留在数据库中。消息驱动 Bean 用于将消息异步传送到应用程序模块和服务中。

容器负责创建企业 Bean、将企业 Bean 绑定到命名服务以使其他应用程序组件可以访问企业 Bean、确保只有授权的客户机才能访问企业 Bean 的方法、将 Bean 的状态保存到持久性存储中、高速缓存 Bean 的状态以及在必要时激活或钝化 Bean。


用于 J2EE 容器的管理控制台任务

配置常规 Web 容器设置

在本版本中,管理控制台中没有用于 Web 容器的容器范围的设置。

配置 Web 容器会话

本节介绍 Web 容器中的 HTTP 会话设置。HTTP 会话是唯一将状态数据写入持久性存储的 Web 会话。

要设置会话超时值,请执行以下步骤:

  1. 在树组件中,选择“配置”节点。
  2. 选择要配置的实例:
    1. 要配置特定的实例,请选择该实例的配置节点。例如,对于默认实例 server,请选择 server-config 节点。
    2. 要配置所有实例的默认设置,请选择 default-config 节点。
  3. 选择“Web 容器”节点。
  4. 单击“会话属性”选项卡。
  5. 在“会话超时”字段中,输入会话有效的秒数。
  6. 单击“保存”。

配置管理器属性

会话管理器使您可以配置如何创建和销毁会话、存储会话状态的位置以及会话的最大数目。

要更改会话管理器设置,请执行以下步骤:

  1. 在树组件中,选择“配置”节点。
  2. 选择要配置的实例:
    1. 要配置特定的实例,请选择该实例的配置节点。例如,对于默认实例 server,请选择 server-config 节点。
    2. 要配置所有实例的默认设置,请选择 default-config 节点。
  3. 选择“Web 容器”节点。
  4. 单击“管理器属性”选项卡。
  5. 设置“Reap 时间间隔”的值。
  6. “Reap 时间间隔”字段是从存储中删除不活动的会话数据之前的秒数。

  7. 设置“最大会话数”的值。
  8. “最大会话数”字段是允许的最大会话数目。

  9. 设置“会话文件名”的值。
  10. “会话文件名”字段是包含会话数据的文件。

  11. 设置“会话 ID 生成器类名”的值。
  12. “会话 ID 生成器类名”字段使您可以指定用于生成唯一的会话 ID 的自定义类。每个服务器实例只允许有一个会话 ID 生成器类,并且群集中的所有实例必须使用同一会话 ID 生成器,以防止会话密钥冲突。

    自定义会话 ID 生成器类必须实现 com.sun.enterprise.util.uuid.UuidGenerator 接口:

    package com.sun.enterprise.util.uuid;

    public interface UuidGenerator {

    public String generateUuid();

    public String generateUuid(Object obj); //obj is the session object

    }

    类必须位于 Application Server 类路径中。

  13. 单击“保存”。

配置存储属性

  1. 在树组件中,选择“配置”节点。
  2. 选择要配置的实例:
    1. 要配置特定的实例,请选择该实例的配置节点。例如,对于默认实例 server,请选择 server-config 节点。
    2. 要配置所有实例的默认设置,请选择 default-config 节点。
  3. 选择“Web 容器”节点。
  4. 单击“存储属性”选项卡。
  5. 设置“Reap 时间间隔”的值。
  6. “Reap 时间间隔”字段是从存储中删除不活动的会话数据之前的秒数。

  7. 单击“保存”。

配置常规 EJB 设置

本节介绍了以下适用于服务器上所有企业 Bean 容器的设置:

要覆盖每个容器的默认值,请调整企业 Bean 的 sun-ejb-jar.xml 文件中的值。有关详细信息,请参见 Application Server Developer's Guide。(有关指向此指南的链接,请参见“详细信息”。)

会话存储位置

“会话存储位置”字段指定在文件系统上存储钝化 Bean 和持久的 HTTP 会话所在的目录。

钝化 Bean 是已将其状态写入到文件系统上的文件中的企业 Bean。通常,钝化 Bean 已空闲一段时间并且当前未被客户机访问。

与钝化 Bean 类似,持久的 HTTP 会话是已将其状态写入到文件系统上的文件中的各个 Web 会话。

“提交选项”字段用于指定容器如何高速缓存事务之间的钝化实体 Bean 实例。

“选项 B”用于高速缓存事务之间的实体 Bean 实例,并且是默认选项。“选项 C”用于禁用高速缓存。

池设置

容器维护了一个企业 Bean 池,以便在不创建 Bean 来实现性能的情况下响应客户机请求。这些设置仅适用于无状态会话 Bean 和实体 Bean。

如果在使用已部署的企业 Bean 的应用程序中遇到性能问题,创建池或增加现有池维护的 Bean 的数目有助于提高应用程序的性能。

默认情况下,容器维护企业 Bean 池。

要调整容器的企业 Bean 池的配置,请执行以下步骤:

  1. 在树组件中,选择“配置”节点。
  2. 选择要配置的实例:
    1. 要配置特定的实例,请选择该实例的配置节点。例如,对于默认实例 server,请选择 server-config 节点。
    2. 要配置所有实例的默认设置,请选择 default-config 节点。
  3. 选择“EJB 容器”节点。
  4. 在“池设置”下的“初始和最小池大小”字段中,输入容器在池中创建的 Bean 的最小数目。
  5. 在“最大池大小”字段中,输入任何时候容器在池中维护的 Bean 的最大数目。
  6. 如果 Bean 处于空闲状态的时间超过“池空闲超时”中指定的时间,在“池大小调整数量”字段中输入要从池中删除的 Bean 的数目。
  7. 在“池空闲超时”字段中输入在将池中的 Bean 从池中删除之前 Bean 可以保持空闲状态的时间(以秒为单位)。
  8. 单击“保存”。
  9. 重新启动 Application Server。

高速缓存设置

容器为大多数使用过的企业 Bean 维护了企业 Bean 数据高速缓存。这将允许容器更迅速地响应其他应用程序模块对企业 Bean 的数据请求。本节只适用于有状态会话 Bean 和实体 Bean。

被高速缓存的企业 Bean 处于以下三种状态之一:活动、空闲或钝化。活动企业 Bean 是当前正被客户机访问的企业 Bean。空闲企业 Bean 的数据当前保存在高速缓存中,但没有客户机访问 Bean。钝化 Bean 的数据是被临时存储的,如果客户机请求此 Bean,其数据将被读回高速缓存中。

要调整被高速缓存的企业 Bean 的设置,请执行以下步骤:

  1. 在树组件中,选择“配置”节点。
  2. 选择要配置的实例:
    1. 要配置特定的实例,请选择该实例的配置节点。例如,对于默认实例 server,请选择 server-config 节点。
    2. 要配置所有实例的默认设置,请选择 default-config 节点。
  3. 选择“EJB 容器”节点。
  4. 在“最大高速缓存大小”字段中调整最大高速缓存大小。
  5. 增加要缓存的 Bean 的最大数目,以消除创建和删除 Bean 的系统开销。但是,如果增加高速缓存,服务器将消耗更多内存和资源。请确保操作环境足够用于高速缓存设置。

  6. 在“高速缓存大小调整数量”字段中调整高速缓存大小调整数量。
  7. 达到高速缓存的 Bean 的最大数目之后,容器将从备份存储中删除一些钝化 Bean,默认设置为 32。

  8. 在“高速缓存空闲超时”字段中,调整为实体 Bean 安排的高速缓存清除速率(以秒为单位)。
  9. 如果高速缓存的实体 Bean 在特定时间内一直处于空闲状态,它将被钝化。即将 Bean 的状态写入备份存储。

  10. 在“删除超时”字段中,调整将有状态会话 Bean 从高速缓存或钝化存储中删除之前的时间(以秒为单位)。
  11. 在“删除选择策略”字段中,配置容器用来删除有状态会话 Bean 的策略。
  12. 容器将根据在“删除选择策略”字段中设置的策略决定删除哪个有状态会话 Bean。容器可使用三种可能的策略从高速缓存中删除 Bean:

    • 最近不使用 (NRU)
    • 先进先出 (FIFO)
    • 最近最少使用 (LRU)
    • NRU 策略删除最近不使用的 Bean。FIFO 策略删除高速缓存中最早的 Bean。LRU 策略删除最近最少访问的 Bean。默认情况下,容器使用 NRU 策略。

      通常使用 FIFO 策略删除实体 Bean。

  13. 单击“保存”。
  14. 重新启动 Application Server。

配置消息驱动 Bean 设置

消息驱动 Bean 的池与“配置常规 EJB 设置”中介绍的会话 Bean 的池类似。

默认情况下,容器维护消息 Bean 池。

要调整该池的配置,请执行以下步骤:

  1. 在树组件中,选择“配置”节点。
  2. 选择要配置的实例:
    1. 要配置特定的实例,请选择该实例的配置节点。例如,对于默认实例 server,请选择 server-config 节点。
    2. 要配置所有实例的默认设置,请选择 default-config 节点。
  3. 选择“EJB 容器”节点。
  4. 单击“MDB 设置”选项卡。
  5. 在“池设置”下的“初始和最小池大小”字段中,输入容器在池中创建的消息 Bean 的最小数目。
  6. 在“最大池大小”字段中,输入任何时候容器在池中维护的 Bean 的最大数目。
  7. 在“池大小调整数量”字段中,输入当 Bean 处于空闲状态的时间超过“池空闲超时”中指定的时间时要从池中删除的 Bean 的数目。
  8. 在“池空闲超时”字段中,输入在将池中的 Bean 从池中删除之前 Bean 可以保持空闲状态的时间(以秒为单位)。
  9. 单击“保存”。
  10. 重新启动 Application Server。

配置 EJB 计时器服务设置

计时器服务是由企业 Bean 容器提供的用于安排企业 Bean 使用的通知或事件的持久性和事务性通知服务。所有企业 Bean(有状态会话 Bean 除外)均可从计时器服务接收通知。关闭或重新启动服务器时,服务设置的计时器不会被销毁。

配置计时器服务

  1. 在树组件中,选择“配置”节点。
  2. 选择要配置的实例:
    1. 要配置特定的实例,请选择该实例的配置节点。例如,对于默认实例 server,请选择 server-config 节点。
    2. 要配置所有实例的默认设置,请选择 default-config 节点。
  3. 选择“EJB 容器”节点。
  4. 单击“EJB 计时器服务”选项卡。
  5. 在“最小传送时间间隔”字段中设置最小传送时间间隔(以毫秒为单位)。最小传送时间间隔是特定计时器的下一个计时器到期之前允许的最小毫秒数。如果此时间间隔设置得过小,可能会导致服务器过载。
  6. 在“最多重新传送次数”字段中,设置计时器服务尝试传送通知的最大次数。
  7. 在“重新传送时间间隔”字段中,设置两次重新传送尝试之间的时间间隔(以毫秒为单位)。
  8. 单击“保存”。
  9. 重新启动 Application Server。

将外部数据库与计时器服务一起使用

默认情况下,计时器服务使用嵌入式数据库存储计时器。

要使用外部数据库存储计时器,请执行以下步骤:

  1. 按照“创建 JDBC 资源”中所述为数据库设置 JDBC 资源。
  2. 在“计时器数据源”字段中输入资源的 JNDI 名称。
  3. 单击“保存”。
  4. 重新启动 Application Server。

<INSTALL_DIR>/lib/install/databases/ 中提供了 PointBase 和 Oracle 的计时器数据库创建文件样例。



上一页      目录      下一页     


版权所有 2004 - 2005 Sun Microsystems, Inc. 保留所有权利。