概要 : タイマー コントロール

タイマー コントロールは、以下の方法で Web サービスに通知することができます。

  1. 特定時間 (絶対時間) のタイムアウト (例 : 2012 年 1 月 23 日、午前 0 時)
  2. 相対時間のタイムアウト (例 : 1 時間 17 分)
  3. 繰り返しの時間間隔 (例 : 3 分ごと)
  4. 最初のタイムアウトと繰り返しの間隔の両方 (例 : 1 時間後に 5 分ごと、または 2010 年 1 月 1 日以降 1 時間ごと)

タイマー コントロールは、これらのタスクを同時に実行することはできません。複数のタイマー タスクを実行する場合は、追加のタイマー コントロールを作成することができます。または、1 つのタイマーを実行し終了したら、タイマーの設定を変更して再度タイマーを開始することができます。

時間を指定せずにタイマーを作成した場合、デフォルトのタイマー (0 秒の相対時間のタイムアウト) が実行されます。

タイマー コントロールは、すべて com.bea.control.TimerControl 基本クラスまたは com.bea.control.TimerControlBean 基本クラスのインスタンスです。タイマー コントロールは、.java ファイルで直接宣言されます。タイマー コントロールは EJB 2.1 タイマー サービスをベースにしています。そのため、タイマーが期限切れになったときのクライアントに対するコールバックはベストエフォートで動作します。これはアプリケーションのタイマーに適していますが、リアルタイムで動作する正確なタイム サービスとは異なります。タイマー コントロールは、会話形式の (ステートフルな) Web サービスでのみ使用できます。

基本的なタイマー コントロールの作成とコンフィグレーション

基本的なタイマー コントロールを作成するために、IDE では、Web サービスのコードに TimerControl の宣言およびアノテーションを挿入して属性を設定するコマンドが用意されています。

相対時間のタイムアウトと繰り返しの時間を指定するには、[プロパティー] ビューでタイマー プロパティ値を設定します

絶対時間のタイムアウトを指定するには、タイマーを開始する前にタイマー コントロールのインスタンスで setTimeoutAt メソッドを呼び出します。また、タイマーを停止して絶対時間のタイムアウト値をリセットし、再度タイマーを開始することができます。[プロパティー] ビューで事前に繰り返しの時間値が指定されていた場合は、最初の絶対時間の経過後に繰り返しの時間が開始します。

コールバックで返されるペイロードを定義するには、タイマーを開始する前に Web サービスの setPayload メソッドを呼び出します

他のコンフィグレーション値を設定するには、タイマー間隔の種類 (結合と非結合)、タイマーがトランザクション対応かどうか、JNDI プロバイダ URL とコンテキスト ファクトリを必要に応じて指定するプロパティを [プロパティー] ビューで設定します

タイマー コントロールにアクセスするための Web サービス オペレーションの設定

タイマーを実行するには、タイマーを宣言およびコンフィグレーションした時点で、会話形式の Web サービスを作成する必要があります。次に、アノテーション設定やメソッド呼び出しに基づいて、Web サービス内でタイマーを開始、停止、再開するオペレーション (Web メソッド) を作成します。タイマー コントロールには、ステートフルな会話形式の Web サービスが必要なため、Web メソッドを適切に設定する必要があります。

タイマーが期限切れになったときに行う処理内容を指定するには、コールバックを処理する Web サービスのイベント ハンドラを設定します

タイマー設定の動的な変更

プログラムから設定内容を変更するには (絶対時間のタイムアウト値ではなく)、TimerControlBean を使用する必要があります。この Bean は、ビルド時にコントロール フレームワークによって生成され、実行時に [プロパティー] ビューのすべてのプロパティを制御できるメソッドとプロパティを新たに提供する TimerControl インタフェースを実装します。

関連トピック

WebLogic システム コントロールの使用

タイマー コントロール

TimerControl インタフェース

タイマー コントロール リファレンス

チュートリアル : タイマー コントロールの作成


さらにヘルプが必要ですか。質問は Workshop ニュース グループまでお寄せください。