Enterprise JavaBeans タイマー・サービスの構成
非パーシスタント EJB タイマーが必要な場合は、EJB タイマー・サービスを構成することで、 タイムアウト・コールバック・メソッド呼び出しが失敗したときのタイマー再試行間隔および再試行回数を制御できます。
このタスクについて
EJB タイマー・サービスは非パーシスタント・タイマー用に、タイムアウト・コールバック・メソッド呼び出しが失敗した場合に、そのタイムアウト・コールバック・メソッドが正常に完了するまで 5 分ごとに再試行します。非パーシスタント・タイマーの構成には、以下のオプションを使用します。
- 最大再試行回数
失敗したタイムアウト・コールバック・メソッドが再試行される最大回数を指定します。 再試行でタイムアウト・コールバック・メソッドが成功すると、サーバーは試行を停止します。再試行が失敗する場合、 タイムアウト・コールバック・メソッドが成功するか、再試行限度に達するまで、サーバーは再試行を続けます。再試行限度に達したら、 それまでの試行が成功しなかった場合でも、サーバーはタイムアウト・コールバック・メソッドを実行しようとはしません。デフォルト値 -1 は、無制限の再試行を示します。値 0 は、再試行なしを示し、 仕様に準拠していません。1 以上の値 は、その特定の回数だけ再試行が許可されることを示します。
非パーシスタント・タイマーに対するタイムアウト・コールバック・メソッド再試行回数の構成を変更することは、 スケジュールされた回ごとに非パーシスタント・タイマーが完了することを必要としないアプリケーションに有用です。例えば、 5 分ごとに実行するようスケジュールされた非パーシスタント・インターバル・タイマーをアプリケーションで作成する場合、 再試行回数を 0 と構成すると、タイマーは、成功か失敗かにかかわらず、5 分ごとに 1 回実行されます。
- 再試行の時間間隔
タイムアウト・コールバック・メソッドが失敗した場合に行う再試行の間隔を指定します。この値に構成された間隔にかかわらず、 最初の再試行は必ず即時に発生します。それ以降のすべての再試行は、この値に指定された間隔だけ待機します。値 0 は、すべての再試行が 即時であることを示します。1 以上の値は、指定されたその秒数だけ再試行が待機する必要があることを示します。デフォルトは 300 秒です。
非パーシスタント・タイマーに対して別の再試行時間間隔を構成することは、 スケジュールした時刻より前にタイムアウト・コールバック・メソッドが完了することが重要であるようなアプリケーションの場合に有用です (この場合は再試行間隔を短くします)。この手法は、タイマーの完了時刻を遅らせることが許容されるようなアプリケーションにも適用できます。例えば、再試行間隔を長くして、タイムアウト・コールバック・メソッドが正常に実行される可能性を高める場合などです。