使用启动 Bean

共有两类启动 Bean:应用程序启动 Bean 和模块启动 Bean。

关于此任务

不推荐使用的功能部件 不推荐使用的功能部件: 随启动单元素会话 Bean(EJB 3.1 规范)一起提供的功能导致不推荐使用 WebSphere Application Server 专有的启动 Bean 功能。depfeat

模块启动 Bean 是在 EJB Jar 文件启动时装入的会话 Bean。模块启动 Bean 使 Java™ Platform Enterprise Edition (Java EE) 应用程序能够在 EJB 模块每次正常启动或停止时自动运行业务逻辑。应用程序启动 Bean 是在应用程序启动时装入的会话 Bean。应用程序启动 Bean 使 Java EE 应用程序能够在应用程序每次正常启动或停止时自动运行业务逻辑。

与异步 Bean 功能部件协同使用时,启动 Bean 特别有用。例如,启动 Bean 可能创建警报对象,该对象使用 Java 消息服务 (JMS) 在熟知主题上定期发布脉动信号。这使客户机或其他服务器应用程序可以确定应用程序是否可用。如果您正在使用缺省 JMS 提供程序,那么请参阅“允许应用程序等待消息传递引擎启动”一文。

过程

  1. 对于应用程序启动 Bean,使用 home 接口 com.ibm.websphere.startupservice.AppStartUpHome 来将一个 Bean 指定成应用程序启动 Bean。对于模块启动 Bean,使用 home 接口 com.ibm.websphere.startupservice.ModStartUpHome 来将一个 Bean 指定成模块启动 Bean。
  2. 对于应用程序启动 Bean,使用远程接口 com.ibm.websphere.startupservice.AppStartUp 来对该 Bean 定义 start() 和 stop() 方法。对于模块启动 Bean,使用远程接口 com.ibm.websphere.startupservice.ModStartUp 来对该 Bean 定义 start() 和 stop() 方法。

    当模块或应用程序启动时,如果该模块或应用程序包含要在启动时运行的业务逻辑,就会启动 Bean 的 start() 方法。

    start() 方法返回布尔值。True 表明start() 方法内的业务逻辑成功运行。相反,False 表明 start() 方法内的业务逻辑无法完全运行。返回值 False 还表明启动应用程序的应用程序服务器异常终止。

    当模块或应用程序停止时,如果该模块或应用程序包含要在停止时运行的业务逻辑,就会启动 Bean 的 stop() 方法。仅记录 stop() 方法抛出的任何异常。不需要任何其他操作。

    start() 和 stop() 方法必须不使用 TX_MANDATORY 事务属性。当调用 start() 或 stop() 方法时,线程上不存在全局事务。可以使用任何其他 TX_* 属性。如果使用 TX_MANDATORY,那么记录异常,并异常终止应用程序启动。

    远程接口的 start() 和 stop() 方法使用运行方式运行方式指定安全服务要使用的凭证信息来确定主体对各种资源的许可权。如果打开了安全性,那么需要对调用的所有方法定义运行方式。未定义不具有此设置的 Bean 的标识。

    对于 start() 和 stop() 方法可以运行什么代码没有限制,这是因为完全应用程序服务器编程模型可用于这些方法。

  3. 使用可选的环境属性整数 wasStartupPriority 指定同一 Java 归档 (JAR) 文件中的多个启动 Bean 的启动顺序。 如果找到环境属性并且它的类型错误,那么应用程序启动异常终止。如果未指定优先级值,那么使用缺省优先级 0。建议您指定优先级属性。已指定优先级的 Bean 是使用此属性排序的。首先运行优先级数字较小的 Bean。具有同一优先级的 Bean 以未定义的顺序运行。所有优先级都必须是正整数。以 Bean 启动优先级的相反顺序停止他们。模块启动 Bean 和应用程序启动 Bean 的优先级值是互斥的。由于所有模块都将在应用程序被声明为已启动之前启动,所以,将首先调用应用程序中模块启动 Bean 的 start() 方法,然后再调用任何应用程序启动 Bean 的 start() 方法。同样,对于特定 Java 归档 (JAR) 文件,将首先调用它的所有应用程序启动 Bean stop() 方法,然后再调用该 JAR 的任何模块启动 Bean stop() 方法。
    注: wasStartupPriority 环境属性整数不能通过命令或管理控制台设置。此环境属性整数是将由应用程序开发者设置而非管理员设置的 EJB 环境条目。可在 ejb-jar.xml 文件中如下例所示设置该整数值:
    <env-entry>
      <env-entry-name>wasStartupPriority</env-entry-name>
      <env-entry-type>java.lang.Integer</env-entry-type>
      <env-entry-value>3</env-entry-value>
    </env-entry>
    对于任何其他 EJB 环境条目,可为每个 EJB 设置一个单独的 wasStartupPriority 值。
  4. 对于模块启动 Bean,可以通过与每个模块相关联的启动权重值来调整 EJB 模块的启动顺序。
  5. 要通过 WebSphere® 安全性来控制能够调用启动 Bean 方法的用户,请执行下列操作:
    1. 按照为任何 EJB 模块定义方法许可权的方式来为 Start() 和 Stop() 方法定义方法许可权。(请参阅“定义 EJB 模块的方法许可权”。)
    2. 确保映射至为启动 Bean 方法定义的安全角色的用户就是用户注册表中定义的“服务器用户标识”用户。

下一步做什么

查看启动 Bean 服务设置

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



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