タイマー コントロールは、会話形式で、ステートフルな Web サービス内で使用されます。会話形式の Web サービスには、開始、継続、終了という 3 つのフェーズがあります。
会話形式の Web サービスのタイマーを使用するには、タイマー コントロールを宣言 (「タイマー コントロールの設定」を参照) した後、タイマー コントロールにアクセスするために、会話形式の Web サービスを実装する必要があります。タイマー コントロールにアクセスするためには、以下に示す要件が最低限必要です。
会話形式の Web サービスは java.io.Serializable インタフェースを実装する必要があります。Web サービスに Serializable の実装を設定するには、Web サービスのクラス定義の行に implements Serializable を挿入します。クラス定義は以下のようになります。
public class TimerService implements Serializable {
その結果、クラス宣言行のマーカー バーにエラー マーカーが表示されます。エラー マーカーを右クリックして、[クイック・フィックス] を選択します。
エラー マーカーを右クリックして、[クイック・フィックス] を選択します。 [クイック・フィックス] プルダウンが表示されます。
[Serializable をインポートします] をクリックして〔Enter〕を押すと、新しい import 行が生成されてエラーが解決します。
会話形式の Web サービスが通常の Web サービスと異なる唯一の点は、Conversation プロパティを START、CONTINUE、または FINISH に設定する点です。通常、Web サービスには以下の 3 つのオペレーションがあります。
会話形式の Web メソッドを定義するには、コード エディタ ウィンドウを右クリックして、[挿入|Web メソッド] をクリックします。新しい Web メソッドの名前が強調表示された状態で、[プロパティー] ビューの [Conversation] 設定をクリックします。プルダウンでメソッドの会話状態を設定します。
タイマー コントロールを宣言してコンフィグレーションすると、そのメソッドをアプリケーションから呼び出してタイマーを開始または終了したり、コンフィグレーションを変更したりできます。各メソッドの詳細については、「TimerControl インタフェース」を参照してください。
以下のリストに、タイマーの開始および終了に使用できる TimerControl インタフェースのメソッドを示します。
タイマーを開始または停止する Web メソッドの他、Web サービスでは、タイマーが期限切れになったときにコールバックを提供する必要があります。
タイマー コントロールには、1 つのコールバック onTimeout が定義されています。タイマーが発動したときに実行するコールバック イベント ハンドラにコードを追加できます。onTimout イベントのコールバック イベント ハンドラは、timerName_onTimeout です。timerName は、タイマー コントロール インスタンスの名前です。
コールバック イベント ハンドラには、2 つのパラメータ (タイマー開始以後の秒数とペイロード) があります。この時間はコールバック ハンドラが実行される時間とは一致しないことに注意してください。システムの負荷によっては、タイマー コントロールに指定された時間が経過してからコールバック ハンドラが呼び出されるまでに遅延が発生する場合があります。
タイマー コントロールの onTimeout コールバックのコールバック イベント ハンドラを作成するには、コード ウィンドウを右クリックして、[挿入|コントロールのイベント ハンドラ] を選択します。コールバック イベント ハンドラが作成されて、コールバック イベント ハンドラの位置にカーソルが移動します。