タイマー コントロールを使用する
このトピックでは、既存のタイマー コントロールをコンフィグレーションして使用する方法について説明します。
タイマー コントロールの作成方法については、新しいタイマー コントロールを作成するを参照してください。
タイマー コントロールの詳細については、タイマー コントロール : Web サービスでタイマーを使用するを参照してください。
WebLogic Workshop のコントロールの詳細については、コントロール : Web サービスからリソースを使用するを参照してください。
タイマー コントロールの使用には 3 つの局面があります。
timer プロパティを使用して、タイマー コントロールのデフォルト動作をコンフィグレーションする
TimerControl インタフェースのメソッドを使用してタイマー コントロールの動作を制御し、コントロールを発動、停止、またはコンフィグレーションする
タイマー コントロールからのコールバックを処理して、タイマー イベントに応答する
以下の節では、これらの各局面について説明します。
タイマー コントロールの初期動作を設定するには、timeout および repeats-every プロパティを使用します。たとえば、デザイン ビューで delayTimer というタイマー コントロールのインスタンスを選択すると、プロパティ ペインには次のプロパティが表示されます。
JWS ファイルでは、プロパティ値は @jws:timer タグに関連付けられた属性値として表されます。@jws:timer タグには次の属性があります。
timeout には、タイマー コントロールが開始後に初めて発動するまでの時間を指定する。
repeats-every には、タイマー コントロールが初めて発動してからの発動間隔を指定する。
coalesce-events には、イベントの配信が遅延した場合のタイマー コントロールの動作を指定する。
注意 :タイマー コントロールのプロパティによって設定するのはタイマー コントロールの初期動作です。weblogic.jws.control.TimerControl クラスは、作成後にタイマー コントロールの動作を変更するためのメソッドを公開します。以下の TimerControl インタフェースのメソッドを使用するを参照してください。
@jws:timer タグの属性を使用したタイマー コントロールのデフォルト動作の指定については、@jws:timer タグを参照してください。
タイマー コントロールを宣言してコンフィグレーションしたら、コントロールのメソッドを Web サービスのメソッドから呼び出したり、タイマー コントロールのコールバックに対応するハンドラを実装したりすることができます。
各メソッドについて以下で簡単に説明します。各メソッドの詳細については、TimerControl インタフェースを参照してください。
最も一般的な TimerControl インタフェースのメソッドは次のとおりです。
start: タイマーの動作を開始する。タイマー コントロールは、timeout 属性によって指定された時間が経過すると発動します。
restart: timeout 属性によって指定された時間が経過したら発動するように、タイマー コントロールをリセットする。
stop: start または restart が呼び出されるまで発動しないように、タイマー コントロールを停止する。
上述のメソッド以外に、TimerControl インタフェースには、タイマー コントロールをコンフィグレーションするための次のメソッドが定義されています。各メソッドは、メソッド名で示されているように属性値を設定または取得します。
setTimeoutAt
getTimeoutAt
setTimeout
getTimeout
setRepeatsEvery
getRepeatsEvery
setCoalesceEvents
getCoalesceEvents
タイマー コントロールには次のコールバックのみ定義されています。
onTimeout
タイマー コントロールは、指定された時間が経過したとき、または指定された絶対時間になったときに Web サービスに通知することを目的にしています。タイマー コントロールは、onTimeout コールバックを使用して通知します。コールバックを受け取るには、timerName_onTimeout というコールバック ハンドラを実装します。timerName は、タイマー コントロール インスタンスの名前です。
コールバックは、コールバックがスケジューリングされた時間を表す 1 つのパラメータを持ちます。この時間はコールバック ハンドラが実行される時間とは一致しないことに注意してください。システムの負荷が原因で、タイマー コントロールに指定された時間が経過してからコールバック ハンドラが呼び出されるまでに遅延が発生する場合があります。
WebLogic Workshop では、タイマー コントロールのコールバック ハンドラのスケルトンを作成できます。タイマー コントロールの onTimeout コールバックのスケルトン コールバックを作成するには、次に示す、タイマー コントロールに関連付けられている onTimeout リンクをデザイン ビューでクリックします。
選択したコールバックに対応するコールバック ハンドラがない場合、WebLogic Workshop はハンドラを作成し、ソース ビューに切り替え、選択したコールバックのコールバック ハンドラにカーソルを合わせます。
上の例では、コールバック ハンドラの名前は delayTimer_onTimeout となります。