Timeout Processing サンプルの実行

Timeout Processing サンプルには、以下のように個別に実行される 2 つの部分があります。

自動タイムアウト処理

AutomaticTimeout メッセージ・フローをデプロイしたなら、これを実行するために行う必要のあることはもう何もありません。その名前が示すように、このメッセージ・フローは自動的に実行されるからです。 メッセージは、ブローカーの実行中、10 秒ごとに TIMEOUT_SAMPLE_OUT_1 キューに出力されます。

制御されたタイムアウト処理

ControlledTimeout メッセージ・フローをデプロイした後、以下に説明するように、サンプル・メッセージを使用してこれを駆動する必要があります。
  1. SetTenTimeout.enqueue というテスト・メッセージ・エンキュー・ファイルを開きます。
  2. 「キューへ書き込み」をクリックします。 要求メッセージが TIMEOUT_SAMPLE_IN_1 キューに送信され、元のメッセージの 10 のコピーが 10 秒ごとに TIMEOUT_SAMPLE_OUT_2 キューに出力されます。

テストが完了したら、SetUnlimitedTimeout.enqueue ファイルを使ってこの手順を繰り返してください。 これにより、制限なしの (終了しない) タイムアウト要求の入ったメッセージが TIMEOUT_SAMPLE_IN_2 キューに書き込まれ、元のメッセージのコピーが 10 秒ごとに TIMEOUT_SAMPLE_OUT_2 キューに出力されます。 出力メッセージには、元の入力メッセージの断片 (最初の <Invoice> レコード) が含まれます。

制限なしのタイムアウト要求は、終了するよう命令されるまで実行されます。タイムアウト要求は、対応する取り消し要求で停止することができます。

  1. CancelUnlimitedTimeout.enqueue というテスト・メッセージ・エンキュー・ファイルを開きます。このファイルに入っているのは、SetUnlimitedTimeout.enqueue ファイルに入っている制限なしのタイムアウト要求の取り消し要求だけです。
  2. 「キューへ書き込み」をクリックします。 メッセージは TIMEOUT_SAMPLE_OUT_2 キューに出力されなくなります。

さらに、10 回のタイムアウト要求も CancelTenTimeout.enqueue ファイルを使用して、同じ方法で停止することができます。

制限付きのタイムアウトと制限なしのタイムアウトは、両方のメッセージを一緒にフローに送り込むことによって、一緒に 実行できます。 「制御された」ノードは、それぞれが ping するたびにそれらを処理し、出力メッセージは TIMEOUT_SAMPLE_OUT_2 キューで 混合されます。 いずれかのタイムアウト要求の 2 つのインスタンスを一緒に実行することはできません。2 番目のインスタンスは、既存の要求を上書きしないため、Timeout Control ノードでエラーを生成することになります。これは、Timeout ノード一般の制限ではなく、このサンプルの制限であることに注意してください。サンプルのエンキュー・ファイルのタイムアウト要求の ID がハードコーディングされているためです。

成功の検査

成功は TIMEOUT_SAMPLE_OUT_1 および TIMEOUT_SAMPLE_OUT_2 キューにメッセージが到着したかどうかによって判別します。最初のキューには AutomaticTimeout メッセージ・フローからのメッセージが入ります。メッセージは 10 秒ごとに出力され、メッセージ・フローが実行されている間、メッセージの出力が続きます。2 番目のキューには ControlledTimeout メッセージ・フローからのメッセージが入ります。要求の呼び出しの順序とタイミングに応じて、これらのメッセージはグループを成し、10 秒間隔で区切られます。

TIMEOUT_SAMPLE_OUT_1 キュー上のメッセージを表示するには、以下の手順に従ってください。

  1. ワークベンチ・ツールバーで、「メッセージをキューから取得」アイコン「デキュー・アクション」アイコンをクリックします。
  2. ドロップダウン・メニューで、「メッセージの取得」をクリックして、「メッセージのデキュー」ウィンドウを開きます。
  3. キュー・マネージャーに WBRK6_DEFAULT_QUEUE_MANAGER を入力し、キューに TIMEOUT_SAMPLE_OUT_1 を入力します。
  4. 「キューから読み取り」をクリックして、キューからメッセージを読み取ります。メッセージは自動的に生成され、次のように表示されます。
<TimeoutRequest>
<Action>SET</Action>
<Identifier>SampleAuto</Identifier>
<StartDate>2005-06-06</StartDate>
<StartTime>12:36:44.900</StartTime>
<Count>5</Count>
<Interval>10</Interval>
<IgnoreMissed>TRUE</IgnoreMissed>
<AllowOverwrite>TRUE</AllowOverwrite>
</TimeoutRequest>

TIMEOUT_SAMPLE_OUT_2 キュー上のメッセージの表示も同じ方法で行います。これには入力メッセージ全体か、入力メッセージのごく一部のいずれかが含まれます。

メインページのアイコン   サンプルのホームに戻る