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

タイマー コントロールは、会話形式で、ステートフルな Web サービス内で使用されます。会話形式の Web サービスには、開始、継続、終了という 3 つのフェーズがあります。

会話形式の Web サービスのタイマーを使用するには、タイマー コントロールを宣言 (「タイマー コントロールの設定」を参照) した後、タイマー コントロールにアクセスするために、会話形式の Web サービスを実装する必要があります。タイマー コントロールにアクセスするためには、以下に示す要件が最低限必要です。

  1. Web サービスが Serializable インタフェースを実装していること。
  2. 少なくとも、開始および終了のオペレーションを定義すること。
  3. タイマーが期限切れになったときにタイマー コントロールからコールバックを受信するイベント ハンドラを定義すること。

Web サービスへの Serializable 実装の設定

会話形式の Web サービスは java.io.Serializable インタフェースを実装する必要があります。Web サービスに Serializable の実装を設定するには、Web サービスのクラス定義の行に implements Serializable を挿入します。クラス定義は以下のようになります。

public class TimerService implements Serializable {

その結果、クラス宣言行のマーカー バーにエラー マーカーが表示されます。エラー マーカーを右クリックして、[クイック・フィックス] を選択します。

エラー マーカーを右クリックして、[クイック・フィックス] を選択します。 [クイック・フィックス] プルダウンが表示されます。

[Serializable をインポートします] をクリックして〔Enter〕を押すと、新しい import 行が生成されてエラーが解決します。

開始および停止の会話形式 Web メソッドの定義

会話形式の Web サービスが通常の Web サービスと異なる唯一の点は、Conversation プロパティを START、CONTINUE、または FINISH に設定する点です。通常、Web サービスには以下の 3 つのオペレーションがあります。

  1. タイマーを開始するオペレーション。ConversationSTART に設定し、タイマー コントロールの start() メソッドを呼び出すオペレーションです。
  2. タイマーを停止するオペレーション。ConversationSTOP に設定し、タイマー コントロールの stop() メソッドを呼び出すオペレーションです。
  3. タイマーを再開するオペレーション (省略可能)。ConversationCONTINUE に設定し、タイマー コントロールの restart() メソッドを呼び出すオペレーションです。これは、主に相対時間のタイムアウトまたは繰り返しの時間間隔をリセットするために使用します。

会話形式の Web メソッドを定義するには、コード エディタ ウィンドウを右クリックして、[挿入|Web メソッド] をクリックします。新しい Web メソッドの名前が強調表示された状態で、[プロパティー] ビューの [Conversation] 設定をクリックします。プルダウンでメソッドの会話状態を設定します。

TimerControl インタフェースのメソッドを呼び出す

タイマー コントロールを宣言してコンフィグレーションすると、そのメソッドをアプリケーションから呼び出してタイマーを開始または終了したり、コンフィグレーションを変更したりできます。各メソッドの詳細については、「TimerControl インタフェース」を参照してください。

以下のリストに、タイマーの開始および終了に使用できる TimerControl インタフェースのメソッドを示します。

イベント ハンドラでのタイマー コールバックの設定

タイマーを開始または停止する Web メソッドの他、Web サービスでは、タイマーが期限切れになったときにコールバックを提供する必要があります。

タイマー コントロールには、1 つのコールバック onTimeout が定義されています。タイマーが発動したときに実行するコールバック イベント ハンドラにコードを追加できます。onTimout イベントのコールバック イベント ハンドラは、timerName_onTimeout です。timerName は、タイマー コントロール インスタンスの名前です。

コールバック イベント ハンドラには、2 つのパラメータ (タイマー開始以後の秒数とペイロード) があります。この時間はコールバック ハンドラが実行される時間とは一致しないことに注意してください。システムの負荷によっては、タイマー コントロールに指定された時間が経過してからコールバック ハンドラが呼び出されるまでに遅延が発生する場合があります。

タイマー コントロールの onTimeout コールバックのコールバック イベント ハンドラを作成するには、コード ウィンドウを右クリックして、[挿入|コントロールのイベント ハンドラ] を選択します。コールバック イベント ハンドラが作成されて、コールバック イベント ハンドラの位置にカーソルが移動します。

関連トピック

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

タイマー コントロール

TimerControl インタフェース

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

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

 


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