配置 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 計時器服務,以針對非持續性計時器,使用特定的重試次數上限和重試間隔值。 例如,使用下列配置,指定非持續性計時器最多重試三次,並且每隔 10 秒重試一次:
    <ejbContainer>        
         <timerService nonPersistentMaxRetries="3" nonPersistentRetryInterval="10"/>
    </ejbContainer>

    利用這項配置,計時器的逾時回呼方法最多可呼叫四次。第一次呼叫發生在排定的時間。如果第一次呼叫失敗,在失敗之後會立即進行第一次重試。如果逾時回呼方法繼續失敗,則分別會在 10 秒和 20 秒之後進行第二次和第三次重試。

    在下列範例中,只會重試一次失敗的逾時回呼方法。回呼間隔無關緊要,因為第一次重試一律是立即執行的。

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

指示主題類型的圖示 作業主題



「時間戳記」圖示 前次更新: 2016 年 11 月 30 日
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twlp_config_ejbtime
檔名:twlp_config_ejbtime.html