Sun ONE logo     上一个      目录      索引      下一个     
Sun ONE Application Server 7, Update 1 管理员指南



配置 J2EE 容器

Sun ONE Application Server 提供了各种符合 J2EE 1.3 规范的 J2EE 容器。容器为 J2EE 应用程序组件(例如,企业 Java Bean [EJB] 和消息驱动的 Bean [MDB])提供运行时支持。MDB 和 EJB 与其它 J2EE 应用程序从不直接进行交互,它们使用 EJB 容器的协议和方法彼此进行交互或和其它平台服务(例如,Java 事务服务)进行交互。该容器位于应用程序组件和 J2EE 服务之间,因而,容器可以透明地引入组件部署描述符定义的服务,例如,声明的事务管理、安全性检查、资源加入和状态管理。

Sun One Application Server 中集成了 Web 容器和 EJB 容器。

本module包括以下主题:

关于 Web 容器

Web 容器是一个用来存储 Web 应用程序的 J2EE 容器。Web 容器通过为开发者提供运行 servlet 和 Java Server Page (JSP) 的环境,扩展了 Web 服务器的功能。Servlet 提供了基于组件且独立于平台的方法,使用该方法可以创建基于 Web 的应用程序而不受到 CGI (Common Gateway Interface) 程序的性能限制。JSP 技术对 servlet 技术进行了扩展,它用于支持 HTML 和 XML 页面的创建。Web 容器中包括的 Servlet 或 JSP 具有调用企业 Java Bean (EJB) 容器中的 Bean 方法的能力。Bean 方法可以从本地调用,也可以使用 Object Request Broker (ORB) 进行远程调用。

Web 容器还可以使 Web 应用程序访问使用 JNDI (Java Naming Directory Interface) 定位的本地 EJB。

下图“Sun ONE Application Server 体系结构中的 Web 容器”解释了 Web 容器在 Sun ONE Application Server 体系结构中的角色和位置:

  
该图显示了 Web 容器是如何集成到 Sun ONE Application Server 体系结构中的。
Sun ONE Application Server 体系结构中的 Web 容器

本节包括以下主题:

了解 Web 容器的角色

Web 容器的主要角色如下:为 Web 应用程序提供运行时环境并为存储在容器中的 Web 应用程序提供服务(数据库访问、安全性、多线程等等)。一个 Web 应用程序是 servlet、HTML 页面、类和其它资源的集合,这些资源构成了 Sun ONE Application Server 上的完整应用程序。

下面列出了 Web 应用程序的组成元素:

  • Servlet
  • JSP 页面
  • 工具类
  • 静态文档(html、图形、声音文件等)
  • 客户端 Java applet、Bean 和类
  • 将以上所有的元素连接到一起的说明性元信息。

Web 应用程序可以部署到 Sun ONE Application Server 中运行的 Web 容器。

有关如何在 Sun ONE Application Server 上配置和使用 Web 服务器插件的详细信息,请参见“配置 Web 服务器插件”

Web 应用程序配置

您还可以将 Web 容器配置为在虚拟服务器中部署 Web 应用程序。Web 容器可以配置为包含多个虚拟服务器。每个虚拟服务器可以设置为存储任何数目的 Web 应用程序。Web 应用程序位于虚拟服务器的上下文之内。有关虚拟服务器的详细信息,请参见“使用虚拟服务器”

本节包括以下主题:

虚拟服务器的属性

您可以为虚拟服务器的某些可配置属性指定值。一个虚拟服务器可以有多个 Web 应用程序与之相关联。用户需要登录 Web 应用程序。

如果单一登录的属性 sso-enabledserver.xml 文件中设置为默认值 True,则用户可以登录任何与指定虚拟服务器相关联的 Web 应用程序。同时,该用户的身份将被运行在同一虚拟服务器上所有其它 Web 应用程序认可。如果 sso-enabled 的值设为 False,则该虚拟服务器上的所有 Web 应用程序的单一登录将被禁用。

sso-enabled 属性可以动态配置,并且无需重新启动服务器即可使更改生效。

“单一登录功能”一节中介绍了有关单一登录的详细信息。

Web 模块属性

Sun ONE Application Server 特定的部署描述符在名为 sun-web.xml 的文件中进行了指定,该文件可以在给定 Web 应用程序的 WEB-INF 目录中找到。

通常,每个 Web 应用程序都配置有一个 sun-web.xml 文件。但是,Web 容器不需要每个 Web 应用程序都有一个 sun-web.xml 文件。在没有 sun-web.xml 文件的情况下,Web 容器将采用所有的 Sun ONE Application Server 特定属性的默认值。

context-root 属性

该属性定义了安装 Web 应用程序安装的上下文根。如果该属性为空字符串,则这个 Web 应用程序将被指定为虚拟服务器的默认 Web 应用程序。虚拟服务器的默认 Web 应用程序负责处理虚拟服务器中的其它 Web 应用程序不能响应的所有请求。每个虚拟服务器都有一个默认 Web 应用程序。

对于默认的 Web 应用程序,这个字段的值应该为空字符串 ""

location 属性

该属性的输入值应该是一个有效目录路径,它指示了默认的 Web 应用程序的位置。在安装过程中,默认 Web 应用程序的位置被设置到 modules/default-web-app/ 目录。

location 属性为必需的属性,其值为提取 WAR (Web ARchive) 文件内容的目录的全限定路径或相对路径。如果指定的路径是相对路径,则该路径应该是相对于在虚拟服务器级别上定义的应用程序根目录的路径。

例如:

location="applications/<ear name>/<war-module name>/"

location="modules/<war-module name>"

location="/u/myapps/<war-module name>"

location="/u/myapps/<ear-name>/<war-module name>"

enabled 属性

该属性的默认值是 True,表示为服务请求启用了 Web 应用程序。通过将 enabled 属性设置为 False,可以暂时使请求无法获取 Web 应用程序。但是,Web 应用程序的内容(例如,存储在硬盘上的内容)不会被删除。

Web 应用程序部署

Web 容器部署来自 Web ARchive (WAR) 文件的 Web 应用程序,或者部署来自包含 WAR 文件分解视图的目录(WEB-INF/lib、WEB-INF/classes,等等)的 Web 应用程序。您不需要重新启动计算机即可部署应用程序。

Web 容器在每个虚拟服务器上部署一个“默认”Web 应用程序。默认的位置(目录)为虚拟服务器上 app root 目录下的 modules/default-web-app/ 子目录。这个默认 Web 应用程序负责处理虚拟服务器中的其它 Web 应用程序不能响应的所有请求。 该 Web 应用程序包含一个用于处理对 /servlet/* 的请求的调用程序 servlet,以及一个用于处理 JSP 页面的 JSP servlet。只要用户在 web.xmlsun-web.xml 文件中指示了 EJB 参考,默认 Web 应用程序即可访问 EJB。

在虚拟服务器的 server.xml 中定义的默认 Web 应用程序应如下所示:

<web-module context-root="" location="modules/default-web-app/">

动态重新部署和热部署

动态重新部署这项功能可以重新部署现有应用程序,而无需重新启动服务器。动态重新部署会在应用程序的配置(其 xml 文件的内容)和某些类发生改变时进行。动态重新部署过程的结果和动态重新装入整个应用程序的类结果相同。另外,动态重新部署创建了新应用程序上下文(Web 和 ejb)并删除旧的上下文。这样,进行动态重新部署之后,将产生全新的应用程序实例(除了现有会话数据)。该功能只在开发模式下得到支持,并可能会导致出现类似于动态重新装入中的异常情况。而且,需要服务器重启才能生效的配置修改在重新启动之前不能生效。只有那些中心配置中指定了动态重新装入的应用程序和未共享的独立模块才能激活动态重新装入。

当 Web 应用程序重新装入后,无论会话管理器是否配置了持久性机制,所有现有会话信息都将自动进行保存和恢复。

热部署是指在无需重新启动服务器即可在服务器运行时部署应用程序的功能。该功能使用的体系结构与动态重新部署相同。但是,因为上一阶段未留下任何状态,此功能在生产时可用。

单一登录功能

只要用户只访问位于指定虚拟服务器上的 Web 应用程序中的未保护资源,则不需要进行身份验证。

当用户访问任何与指定虚拟服务器关联的 Web 应用程序中的受保护资源时,需要使用当前要访问的 Web 应用程序指定的登录方法对自己进行身份验证。

身份验证通过后,用户的相关角色将获取对所有相关 Web 应用程序的访问控制决策。此时用户不再需要对每个 Web 应用程序单独进行身份验证。

在用户登录退出 Web 应用程序之后,其在所有 Web 应用程序中的会话将失效。在此之后,如果想再次对应用程序中的受保护资源进行访问,则需要用户再次进行身份验证。

单一登录功能使用 HTTP Cookie 传输一个将每个请求和保存的用户身份相关联的标记,因此该功能只能在支持 Cookie 的客户机环境中使用。

记录 Web 容器

通过设置不同的日志级别,您可以控制存储在虚拟服务器上的 Web 容器和应用程序的默认记录行为。注意,该记录行为不影响应用程序本身的记录。

指定控制要记录的消息类型的日志级别。例如,如果您指定仅日志级别为 FATAL 的消息被记录,则日志级别比这个值“更高”的消息会自动被忽略。只有以明确日志级别记录的消息才会与该值进行比较。

如果记录的消息的日志级别不明确,则该消息将无条件地被记录。该默认的行为是记录所有警告、错误和严重错误的消息。

为 Web 容器设置日志级别的步骤:

  1. 在管理界面的左侧窗格中,展开 Sun ONE Application Server 实例树,找到要修改的 Web 容器配置。
  2. 展开“Containers”标签,从显示的 J2EE 容器列表中选择“Web Container”。您会在管理界面的右侧窗格中看到以下页面,如图“记录 Web 容器”所示。

   记录 Web 容器
该图显示了 Web 容器的日志级别设置。

  1. 从“Log Level”下拉列表中,选择所需的日志级别。有关所有日志级别及其说明的一览表,请参见“使用日志”
  2. 单击“Save”对设置进行保存。

要为 Web 容器创建其它属性,单击“Properties”按钮。

关于 EJB 容器

企业 Java Bean 容器是一个运行时环境,它用于控制企业 Bean 并为企业 Bean 提供重要的系统级服务。EJB 是在 EJB 容器内执行的组件,而 EJB 容器在 EJB 服务器内执行。为 Bean 提供的系统级服务有:

  • 事务管理
  • 安全性
  • 生命周期管理
  • 远程连接
  • 数据库连接加入
  • 命名服务

企业 Bean 是用 Java 编写的服务器组件,它包含了商业逻辑。使用 EJB 容器可以对 Bean 进行远程访问。EJB 总是在容器的上下文中工作,而容器充当 EJB 及其所在的服务器之间的链接。 EJB 容器使用您自己的组件和其他供应商的组件,使分布式应用程序生成。

通过 EJB 容器,Sun ONE Application Server 提供了高级别的事务、状态管理、多线程和资源加入包装,这样您就无需了解低级别的 API 细节。该容器提供了所有 2.0 EJB 规范中说明的标准容器服务,还提供了 Sun ONE Application Server 特定的其它服务。

该容器使用钝化和激活进程来管理 Bean 的活动以确保可扩展性。

本节包括以下主题:

了解 EJB 容器的角色

EJB 容器提供了以下标准服务:

  • 钝化
  • 将 EJB 从内存转移到第二个存储器的进程。钝化使一个 Bean 的资源得到释放,同时又不会损坏该 Bean。这样,一个 Bean 就可以持久存在,并且可以重新调用,而无需进行实例化。

  • 激活
  • 将 EJB 从第二个存储器转移到内存的进程。EJB 容器合同在 EJB 及其容器之间建立联系,而且对于客户机而言是完全透明的。这种联系包括:

    • 生命周期
    • 对于会话 Bean,这种联系包括 javax.ejb.SessionBeanjavax.ejb.SessionSynchronization 接口实现。对于实体 Bean,这种联系包括 javax.ejb.EntityBean 接口实现。对于消息驱动的 Bean,这种联系包括 javax.ejb.MessageDriven 接口实现。

    • 会话上下文
    • 容器实现 javax.ejb.SessionContext 接口,以便在 Bean 实例创建后将服务和信息传送到会话 Bean 实例。

    • 实体上下文
    • 容器实现 javax.ejb.EntityContext 接口,以便在 Bean 实例创建后将服务和信息传送到实体 Bean。

    • 消息上下文
    • 容器实现 javax.ejb.MDBContext 接口,以便在 Bean 实例创建后将服务和信息传送到消息驱动的 Bean。

    • 环境
    • 容器实现 java.util.Properties 并使这些属性可供它的 EJB 使用。

    • 服务信息
    • 容器使其服务可供 EJB 使用。

Sun ONE Application Server 服务包括远程访问、命名、安全性、并行性、事务控制和数据库访问。

使用 EJB 容器可以:

  • 创建允许远程连接的实现对象 (EJBObject)。
  • 创建允许创建 EJBObject 的主实现对象。
  • 将主实现对象绑定到命名服务,以备客户机查找。
  • 确保只有授权的客户机才能调用该 Bean 方法(通过 EJBObject)。
  • 确保该商业方法在适当的事务中进行调用。
  • 管理 Bean 的生命周期。管理 Bean 的生命周期包括:
    • 将 Bean 聚集成池
    • 调用相应的回叫方法(例如 ejbActivate/ejbPassivate
    • 管理数据库连接的池,这样应用程序可以更有效地使用和重复使用连接。

实际实现细节是容器的一部分(该容器基于某个容器及其 EJB 之间的符合标准的接口)。您不需要了解如何处理平台特定的实现细节。您可以创建通用且针对于任务的 EJB,这些 EJB 可用于支持 EJB 标准的任何供应商的产品。

如果我们了解 Sun ONE Application Server 所用的 EJB 的类型,这将非常有用。

企业 Java Bean 的类型

EJB 是代表以下项之一的对象:

  • 一个与某个客户机的会话,它将自动保持多客户机调用的方法的状态。
  • 一个持久实体对象,它可能由多个客户机共享。
  • 一个无状态服务,例如,消息处理。

实体 Bean 主要用于使用 Java Database Connectivity (JDBC) API 来处理数据访问,而会话 Bean 提供了暂时应用程序对象并执行互不关联的商业任务。EJB 有三种类型,请参见以下主题:

关于会话 Bean

会话 Bean 为某个客户机请求实现商业规则或逻辑。

会话 Bean 用于表示暂时对象和进程,例如,单数据库记录、用于编辑的文档或专门用于单独客户机的商业对象。这就是说,会话 Bean 是一种专用资源,仅供创建它的客户机使用。因为这些对象仅供一个客户机使用,因而会话 Bean 可以保持客户机特定的会话信息,称为会话状态。

例如,您可能创建 EJB 来模仿电子购物车。每次用户登录到应用程序时,该应用程序创建购物车的会话 Bean 来保存该用户的购物信息。用户注销或结束购物之后,该会话 Bean 将被释放。

会话 Bean 具有以下特性:

  • 会话 Bean 为一个客户机执行。
  • 会话 Bean 的生命周期相对较短。
  • 会话 Bean 并不总是能够在服务器崩溃后仍然存在。
  • 如果 EJB 容器崩溃,会话 Bean 将被删除。
  • 会话 Bean 还根据属性设置来处理事务管理。该特性是可选的。
  • 会话 Bean 升级基础数据库中的共享数据。该特性是可选的。
  • 会话 Bean 即可以是无状态会话,也可以是状态会话。

无状态会话 Bean。无状态会话 Bean 将特定用户所需的一个临时的商业逻辑段封装了一段时间。无状态会话 Bean 不保持会话状态。

状态会话 Bean。状态会话 Bean 是暂时的,但该会话 Bean 保持会话状态,以便保留客户机呼叫之间的内容和值。会话状态使得 Bean 的容器可以保持该会话 Bean 状态的信息,并可以在以后执行程序时根据所需重新创建该状态。

关于实体 Bean

实体 Bean 通常表示持久数据,这些数据直接保留在数据库中或作为对象通过 Enterprise Information System (EIS) 应用程序进行访问。存储 EJB 和 EJB 容器的服务器提供了可扩展的运行环境,可用于同时处于激活状态的实体 EJB。

实体 Bean 的一个简单示例:一个实体 Bean 被定义为表示数据库表中的一行,其中每个 Bean 实例表示特定的一行。实体 Bean 的一个复杂示例:一个实体 Bean 被设计为表示数据库中联合表的复杂视图,其中每个 Bean 实例表示一个购物车的内容。

实体 Bean 具有以下特性:

  • 实体 Bean 提供了 EIS 资源(通常是一个数据库)中数据的对象视图。
  • 所有用户都可以访问实体 Bean。
  • 实体 Bean 在服务器崩溃时可以透明地保存下来。
  • 实体 Bean 使用的事务由容器管理或由 Bean 管理。

实体 Bean 将持久数据表示为容器管理的持久性或 Bean 管理的持久性。实体 Bean 的持久性可以由 Bean 管理或由容器管理。

Bean 管理的持久性。实体 Bean 管理其自身的持久性。Bean 开发者直接在 EJB 类方法中实现持久性代码(例如 JDBC 呼叫)。这其中不利的一面是可能会丢失可移植性(如果使用专用接口),并可能会导致将 Bean 连接到特定数据库。

容器管理的持久性。实体 Bean 持久性由容器管理。因为容器透明地管理持久性状态,因而您不需要在 Bean 方法中实现任何数据访问代码。这种方法不仅实现起来更简单,而且使 Bean 可以实现完全的可移植性,而不与任何特定数据库相关联。

使用容器管理的持久性的实体 Bean 从本质上讲是一个使用 Bean 管理持久性的实体 Bean 的自动生成(由该容器生成)的版本。

有关创建和使用实体 Bean 的详细信息,请参见《Sun ONE Application Server Developer's Guide to Enterprise JavaBeans Technology》。

关于消息驱动的 Bean

消息驱动 Bean 是一个 EJB,它允许 J2EE 应用程序异步处理消息。消息驱动 Bean 由返回的 Java Message Service 消息所驱动。

消息驱动 Bean 实例从其创建到删除都位于消息驱动 Bean 的容器中。该容器提供了消息驱动 Bean 实例的安全性、事务、消息并行处理、生命周期管理,以及消息驱动 Bean 的其它服务。存储 EJB 和 EJB 容器的服务器提供了可扩展的运行环境,可用于同时处于激活状态的消息驱动 Bean。

J2EE 1.3 平台中的 Java Message Service API 指定了以下项:

  • 应用程序客户机、EJB 组件和 Web 组件可以发送或同步接收 Java Message Service 消息。另外,应用程序客户机可以异步使用 Java Message Service 消息。
  • 消息驱动 Bean 启用了消息异步处理功能。Java Message Service 提供者可以选择使消息驱动 Bean 实现对消息的同步处理。

消息驱动 Bean 表示一个无状态服务;它本质上是一个完全匿名且身份对用户不可见的异步消息接收客户机。消息驱动 Bean 即没有主接口,也没有组件接口。客户机通过向消息驱动 Bean 类是 MessageListener 的 Java Message Service 目标(队列或主题)发送消息来访问消息驱动 Bean。

只有消息驱动 Bean 可以异步接收消息。Java Message Service MessageListener 不允许是会话或者实体 Bean。

消息驱动 Bean 具有以下特性:

  • 在接收到单用户消息后执行。
  • 为异步调用。
  • 生命周期相对较短。
  • 不直接表示数据库中的共享数据,但是可以访问和升级该数据。
  • 如果 EJB 服务器崩溃,即被删除。
  • 为无状态。
  • (可选)具有事务意识。

配置 EJB 容器

您可以为 EJB 容器配置日志级别,也可以启用监视。EJB 容器既处理 EJB,也处理 MDB。使用管理界面,您可以为该容器管理的 EJB 和 MDB 配置设置。本节包括以下主题:

进行通用配置

您可以对 EJB 容器的以下方面进行配置:

  • 记录
  • 监视
  • 事务属性

设置 EJB 容器的日志级别、启用监视器和设置事务属性的步骤:

  1. 在管理界面的左侧窗格中,打开 Sun ONE Application Server 实例树,找到要修改的 EJB 容器配置。
  2. 展开“Containers”标签,从显示的 J2EE 容器列表中选择“EJB Container”。您会在管理界面右侧窗格中看到以下窗口,如图“EJB 容器 - 通用配置”所示。

   EJB 容器 - 通用配置
该图显示了如何设置 EJB 容器的日志级别。

  1. 选中“Monitoring Enabled”旁边的复选框,将启用对 EJB 容器的监视。您现在已为 Sun ONE Application Server 的该特定实例的 EJB 容器启用了监视。有关 EJB 容器的可监视方面的信息列表,请参见表“EJB 容器的监视统计”
  2. 从“Log Level”下拉列表中,选择所需的日志级别。有关所有日志级别及其说明的一览表,请参见“使用日志”。指定控制要记录的消息类型的日志级别。例如,如果您指定仅日志级别为 FATAL 的消息被记录,则日志级别比这个值“更高”的消息会自动被忽略。只有以明确日志级别记录的消息才会与该值进行比较。
  3. 如果记录的消息的日志级别不明确,则该消息将无条件地被记录。该默认的行为是记录所有警告、错误和严重错误的消息。

  4. 从“Commit Option”下拉列表中,选择要用于 EJB 容器的“Commit Option”。
  5. 事务可以以两种方式结束:使用提交或回滚。当事务提交时,其语句对数据所做的修改将被保存。当您设计企业 Bean 时,要决定该提交是容器管理的事务还是 Bean 管理的事务。因而用户界面中选项为:B 表示 Bean 管理的提交,C 表示容器管理的提交。

  6. 单击“Properties”按钮为 EJB 容器创建新的属性。
  7. 单击“OK”对设置进行保存。

下表显示了可以监视的 EJB 容器的属性:

   EJB 容器的监视统计

统计名称

数据类型和单位

值的范围

说明

minBeansInPool

 

整数型

 

0-MAXINT

 

池中 Bean 的推荐的最小数目(适用于无状态会话 Bean)。

 

initialBeansInPool

 

整数型

 

0-MAXINT

 

池中 Bean 的初始数目(适用于无状态会话 Bean)。

 

maxBeansInPool

 

整数型

 

0-MAXINT

 

池中 Bean 的最大数目。(适用于无状态会话 Bean)。

 

beanIdleTimeoutInSeconds

 

整数型

 

0-MAXLONG

 

空闲超时(以秒为单位),空闲值大于此值的 Bean 将被删除。

 

numBeansCreated

 

整数型

 

0-MAXINT

 

到目前为止创建的 Bean 的数目。

 

numBeansDestroyed

 

整数型

 

0-MAXINT

 

到目前为止删除的 Bean 的数目。

 

numThreadsWaitaing

 

整数型

 

0-MAXINT

 

等待空闲的 Bean 的线程数目。

 

numBeansInPool

 

整数型

 

0-MAXINT

 

池中可用的 Bean 的数目。(如果此数目大于零,则 numThreadsWaitaing 必须为 0)

 

maxBeansInCache

 

整数型

 

0-MAXINT

 

高速缓存中 Bean 的最大数目(适用于实体 Bean 和有状态 Bean)。

 

minBeansInCache

 

整数型

 

0-MAXINT

 

高速缓存中 Bean 的推荐的最大数目(适用于实体 Bean 和有状态 Bean)。

 

cacheFaultsPercentage

 

双精度型

 

 

引起从备份存储中进行激活的高速缓存丢失的数目。

 

配置 EJB 设置

使用管理界面,您可以为 EJB 容器管理的 EJB 配置默认池和 Bean 高速缓存设置,请参见以下主题:

配置 EJB 池设置

配置 EJB 池设置的步骤:

  1. 在管理界面的左侧窗格中,打开 Sun ONE Application Server 实例树,从中修改要修改的 EJB 设置。
  2. 展开“Containers”标签,从显示的 J2EE 容器列表中选择“EJB Container”。您会在管理界面右侧窗格中看到以下窗口,如图“编辑 EJB 池设置”所示。

   编辑 EJB 池设置
该图显示了如何设置 EJB 容器的日志级别。

  1. 在“Steady Pool Size”字段中,指定池中 Bean 数目的最小值。此设置适用于无状态会话 Bean。
  2. 在“Max Pool Size”下拉列表中,指定该池在任何指定时间所拥有的 Bean 的最大数目。此设置适用于无状态会话 Bean。
  3. 在“Pool Resize Quantity”字段中,指定当 Bean 的空闲时间超过 idle-timeout-in-seconds 标记中指定的时间时,要从池中删除的 Bean 的数目。
  4. 在“Idle Timeout (secs)”字段中,指定 Bean 可以保持空闲状态的时间(以秒为单位)。如果超过该时间段而 Bean 仍处于空闲状态,则它会被删除。
  5. 单击“Save”保存所做的更改。

配置 EJB 高速缓存设置

配置 EJB 高速缓存设置的步骤:

  1. 在管理界面的左侧窗格中,打开 Sun ONE Application Server 实例树,从中修改要修改的 EJB 设置。
  2. 展开“Containers”标签,从显示的 J2EE 容器列表中选择“EJB Container”。您会在管理界面右侧窗格中看到以下窗口,如图“编辑 EJB 池设置”所示。

   编辑 EJB 高速缓存设置
该图显示了如何设置 EJB 容器的日志级别。

  1. 在“Max Cache Size”字段中,指定高速缓存中保留的 Bean 的最大数目。这个属性的默认值如在 idle-timeout-in-seconds 属性中指定一样。
  2. 在“Cache Resize Quantity”字段中,指定如果池中的 Bean 数目超过了“Max Cache Size”属性中指定的数目时,要删除的 Bean 的数目。
  3. 在“Removal Timeout (secs)”字段中,指定在备份存储中处于空闲状态的 Bean 可以保持钝化的时间值。如果 Bean 在 removal-timeout-in-seconds 属性中指定的时间值内未得到客户机的访问,则该 Bean 将从备份存储中删除,因而客户机也将无法对其进行访问。
  4. 从“Victim Selection Policy”下拉列表中,选择用于选择牺牲 Bean 以将其从池中删除所需的牺牲选择算法。
  5. 在“Idle Timeout (secs)”字段中,指定允许 Bean 在高速缓存中保持空闲的时间。如果 Bean 处于空闲状态的时间超过该值,则将被钝化。Bean 保持钝化状态(在空闲备份存储中)的时间段由 removal-timeout-in-seconds 参数控制。
  6. 单击“Save”保存所做的更改。

配置 MDB 池设置

使用管理界面,您可以配置由 EJB 容器管理的 MDB 的默认池设置。配置 MDB 的默认池设置的步骤:

  1. 在管理界面左侧窗格中,打开 Sun ONE Application Server 实例树,从中修改要修改的 MDB 容器配置。
  2. 展开“Containers”标签,从显示的 J2EE 容器列表中选择“EJB Container”。您会在管理界面右侧窗格中看到以下窗口,如图“配置 MDB 池设置”所示。

   配置 MDB 池设置
该图显示了由 EJB 容器管理的 MDB 的默认池设置配置

  1. 单击“MDB Settings”。在“Steady Pool Size”文本字段中,指定池中 Bean 的最小数目。此设置适用于无状态会话 Bean。
  2. 在“Max Pool Size”字段中,指定该池在任何指定时间所拥有的 Bean 的最大数目。
  3. 在“Pool Resize Quantity”字段中,指定当 Bean 的空闲时间超过 idle-timeout-in-seconds 标记中指定的时间时,要从池中删除的 Bean 的数目。
  4. 在“Idle Timeout (secs)”字段中,指定 Bean 可以保持空闲状态的时间(以秒为单位)。如果超过该时间段而 Bean 仍处于空闲状态,则它会被删除。
  5. 单击“Save”对设置进行保存。

上一个      目录      索引      下一个     
Copyright 2003 Sun Microsystems, Inc. All rights reserved.