Enterprise JavaBeans タイマー・サービスの構成

非パーシスタント EJB タイマーが必要な場合は、EJB タイマー・サービスを構成することで、 タイムアウト・コールバック・メソッド呼び出しが失敗したときのタイマー再試行間隔および再試行回数を制御できます。

このタスクについて

EJB タイマー・サービスは非パーシスタント・タイマー用に、タイムアウト・コールバック・メソッド呼び出しが失敗した場合に、そのタイムアウト・コールバック・メソッドが正常に完了するまで 5 分ごとに再試行します。非パーシスタント・タイマーの構成には、以下のオプションを使用します。

最大再試行回数

失敗したタイムアウト・コールバック・メソッドが再試行される最大回数を指定します。 再試行でタイムアウト・コールバック・メソッドが成功すると、サーバーは試行を停止します。再試行が失敗する場合、 タイムアウト・コールバック・メソッドが成功するか、再試行限度に達するまで、サーバーは再試行を続けます。再試行限度に達したら、 それまでの試行が成功しなかった場合でも、サーバーはタイムアウト・コールバック・メソッドを実行しようとはしません。デフォルト値 -1 は、無制限の再試行を示します。値 0 は、再試行なしを示し、 仕様に準拠していません。1 以上の値 は、その特定の回数だけ再試行が許可されることを示します。

非パーシスタント・タイマーに対するタイムアウト・コールバック・メソッド再試行回数の構成を変更することは、 スケジュールされた回ごとに非パーシスタント・タイマーが完了することを必要としないアプリケーションに有用です。例えば、 5 分ごとに実行するようスケジュールされた非パーシスタント・インターバル・タイマーをアプリケーションで作成する場合、 再試行回数を 0 と構成すると、タイマーは、成功か失敗かにかかわらず、5 分ごとに 1 回実行されます。

再試行の時間間隔

タイムアウト・コールバック・メソッドが失敗した場合に行う再試行の間隔を指定します。この値に構成された間隔にかかわらず、 最初の再試行は必ず即時に発生します。それ以降のすべての再試行は、この値に指定された間隔だけ待機します。値 0 は、すべての再試行が 即時であることを示します。1 以上の値は、指定されたその秒数だけ再試行が待機する必要があることを示します。デフォルトは 300 秒です。

非パーシスタント・タイマーに対して別の再試行時間間隔を構成することは、 スケジュールした時刻より前にタイムアウト・コールバック・メソッドが完了することが重要であるようなアプリケーションの場合に有用です (この場合は再試行間隔を短くします)。この手法は、タイマーの完了時刻を遅らせることが許容されるようなアプリケーションにも適用できます。例えば、再試行間隔を長くして、タイムアウト・コールバック・メソッドが正常に実行される可能性を高める場合などです。

手順

  1. アプリケーション・サーバーを構成して、非パーシスタント・タイマーをサポートする EJB フィーチャーを server.xml ファイルに含めます。 例えば、以下の行を server.xml ファイルに追加します。
    <featureManager>
         <feature>ejbLite-3.2</feature>
    </featureManager>
  2. server.xml ファイルで、非パーシスタント・タイマー用に特定の再試行最大回数値および再試行間隔値を使用するように、EJB タイマー・サービスを構成します。 例えば、非パーシスタント・タイマーが再試行間隔 10 秒で最大 3 回まで再試行するよう指定するには、以下の構成を使用します。
    <ejbContainer>        
         <timerService nonPersistentMaxRetries="3" nonPersistentRetryInterval="10"/>
    </ejbContainer>

    この構成では、タイマーのタイムアウト・コールバック・メソッドは 4 回まで呼び出されることができます。最初の呼び出しは、スケジュールされた時刻に発生します。最初の呼び出しが失敗した場合、その失敗の直後に最初の再試行が発生します。タイムアウト・コールバック・メソッドの失敗が続いた場合、2 番目と 3 番目の再試行はそれぞれ 10 秒後と 20 秒後に発生します。

    以下の例では、失敗したタイムアウト・コールバック・メソッドは 1 回だけ再試行されます。最初の再試行は必ず即時に開始されるので、コールバック間隔は関係ありません。

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

トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twlp_config_ejbtime
ファイル名: twlp_config_ejbtime.html