配置 Enterprise JavaBeans 计时器服务

对于非持久性 EJB 计时器,可配置 EJB 计时器服务以控制计时器的重试时间间隔以及针对超时回调方法调用失败的重试次数。

关于此任务

EJB 计时器服务会以每 5 分钟一次的频率对非持久性计时器重试超时回调方法的失败调用,直到超时回调方法成功完成。使用以下选项来配置非持久性计时器。

最大重试次数

指定可重试失败超时回调方法的最大次数。如果超时回调方法在重试时成功,那么服务器将停止尝试运行该方法。如果重试失败,那么服务器将继续尝试,直到超时回调方法成功或达到重试限制。在达到重试限制后,服务器不会尝试运行超时回调方法,即使先前尝试未成功也是如此。缺省值 -1 表示重试次数无限制。值 0 表示不进行重试,它不符合规范。值 1 或更大的值表示允许进行重试的特定次数。

对于不需要非持久性计时器在每个安排时间完成的应用程序,更改针对非持久性计时器重试超时回调方法的次数的配置很有用。例如,如果应用程序创建的非持久性时间间隔计时器调度为每 5 分钟运行一次,那么将重试次数配置为 0 会导致该计时器每 5 分钟运行一次,而与它的运行是否成功无关。

重试时间间隔

指定失败超时回调方法的重试时间间隔。第一次重试始终立即进行,无论对此值配置的时间间隔如何都是如此。所有其他重试等待针对此值指定的时间间隔。值 0 表示立即进行所有重试。值 1 或更高的值指示重试必须等待该特定秒数。缺省值为 300 秒。

使用较小的重试时间间隔时,对于超时回调方法在调度时间前完成很重要的应用程序,对非持久性计时器配置另一重试时间间隔很有用。此方法也适用于可接受将计时器完成延迟至稍晚时间(例如,使用较长重试时间间隔时)以启用超时回调方法的应用程序,以使应用程序有更好的机会成功运行。

过程

  1. 配置应用程序服务器,以便在 server.xml 文件中包括支持非持久性计时器的 EJB 功能部件。 例如,将以下内容添加到 server.xml 文件:
    <featureManager>
         <feature>ejbLite-3.2</feature>
    </featureManager>
  2. server.xml 文件中配置 EJB 计时器服务,以对非持久性计时器使用特定最大重试次数值和重试时间间隔值。 例如,使用以下配置指定非持久性计时器最多重试 3 次,重试间隔时间为 10 秒:
    <ejbContainer>        
         <timerService nonPersistentMaxRetries="3" nonPersistentRetryInterval="10"/>
    </ejbContainer>

    对于此配置,最多可对计时器调用 4 次超时回调方法。第一次调用在安排时间进行。如果第一次调用失败,那么第一次重试在失败后立即进行。如果超时回调方法仍然失败,那么第二次和第三次重试分别在 10 秒后和 20 秒后进行。

    在以下示例中,失败超时回调方法仅重试一次。回调时间间隔不重要,因为第一次重试始终立即执行。

    <ejbContainer>        
         <timerService nonPersistentMaxRetries="1"/>    
    </ejbContainer>

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



时间戳记图标 最近一次更新时间: Monday, 5 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_config_ejbtime
文件名:twlp_config_ejbtime.html