javax.servlet.sip
インタフェース TimerService


public interface TimerService

SIPサーブレットアプリケーションが、タイマが終了した時に通知をうけとるようタイマを設定することが可能になります。 アプリケーションは、こうした通知をTimerListenerインターフェースの実行により受け取ります。 タイマを使用するアプリケーションは、このインターフェースを実行し、またSIP配備記述子でリスナとしてそれを宣言しなければなりません。
SIPサーブレットコンテナは、javax.servlet.sip.TimerServiceという名前のServletContext属性からアプリケーションが利用できるTimerServiceインスタンスを作る必要があります。


メソッドの概要
 ServletTimer createTimer(SipApplicationSession appSession, long delay, boolean isPersistent, java.io.Serializable info)
          1回限りのServletTimerを作成し、指定の遅延時間を過ぎたら終了するようスケジュールします。
 ServletTimer createTimer(SipApplicationSession appSession, long delay, long period, boolean fixedDelay, boolean isPersistent, java.io.Serializable info)
          繰り返しのServletTimerを作成し、指定の遅延時間を過ぎたら終了し、その後ほぼ一定の間隔で繰り返すようスケジュールします。
 

メソッドの詳細

createTimer

public ServletTimer createTimer(SipApplicationSession appSession,
                                long delay,
                                boolean isPersistent,
                                java.io.Serializable info)
1回限りのServletTimerを作成し、指定の遅延時間を過ぎたら終了するようスケジュールします。

パラメータ:
appSession - 新しいServletTimerが関連付けられるアプリケーションセッション
delay - タイマ終了予定の前の遅延時間(ミリ秒)
isPersistent - trueの場合、ServletTimerは、包括的な障害またはオペレータのシャットダウンによるシャットダウンの後、元の状態に戻されます。
info - タイマ終了通知と一緒に配信されるアプリケーション情報
戻り値:
新たに作成されたServletTimerを戻す
例外:
java.lang.IllegalStateException - アプリケーションセッションが無効である場合、java.lang.IllegalStateExceptionをスローします。

createTimer

public ServletTimer createTimer(SipApplicationSession appSession,
                                long delay,
                                long period,
                                boolean fixedDelay,
                                boolean isPersistent,
                                java.io.Serializable info)
繰り返しのServletTimerを作成し、指定の遅延時間を過ぎたら終了し、その後ほぼ一定の間隔で繰り返すようスケジュールします。
ServletTimerは、fixedDelay引数で指定されるように、fixed-delayまたはfixed-rate方式の何れかで終了するよう再スケジュールされます。
セマンティックスは、java.util.Timerの場合と同じです。
fixed-delay実行では、前回の実際の実行時間を基準にして、各実行をスケジュールします。 実行が何らかの理由(ガベージ収集、他のバックグランド処理など)で遅れる場合には、後続の実行も同様に遅れます。 ロングランでは、実行の頻度が概ね指定された期間の逆数よりわずかに低くなります(Object.wait(long)の根底にあるシステム時計は正確であるという前提)。
fixed-rate実行では、最初の実行の予定実行時間を基準にして、 各実行をスケジュールします。実行が何らかの理由(ガベージ収集、他のバックグランド処理など)で遅れる場合には、 2つ以上の実行が遅れを取り戻すため立て続けに発生します。 ロングランでは、実行の頻度がまさに、指定された期間の逆数となります(Object.wait(long)の根底にあるシステム時計は正確であるという前提)

パラメータ:
appSession - 新しいServletTimerが関連付けられるアプリケーションセッション
delay - タイマ終了予定の前の遅延時間(ミリ秒)
period - 後に続くタイマ終了時間の間隔(ミリ秒)
fixedDelay - trueの場合、繰り返しのタイマはfixed-delayモードでスケジュールされます。そうでない場合は、fixed-rateモードでスケジュールされます。
isPersistent - trueの場合、ServletTimerは、包括的な障害またはオペレータのシャットダウンによるシャットダウンの後、元の状態に戻されます。
info - タイマ終了通知と一緒に配信されるアプリケーション情報 。これはnullかもしれません。
戻り値:
新たに作成されたServletTimerを戻す。
例外:
java.lang.IllegalStateException - アプリケーションセッションが無効である場合、java.lang.IllegalStateExceptionをスローします。