WebSphere Message Broker バージョン 8.0.0.5 オペレーティング・システム: AIX、HP-Itanium、Linux、Solaris、Windows、z/OS

製品の最新バージョンについては、IBM Integration Bus バージョン 9.0 をご覧ください。

メッセージ・シーケンスのシナリオ 1

WebSphere® MQ から受け取ったメッセージの順序を変更し、XML メッセージで定義されているシーケンス番号に基づいて正しい順序でメッセージを伝搬します。

始める前に:

メッセージ・シーケンスに関する概念トピックに目を通しておきます。

この例の作業では、開始シーケンス番号 0 (デフォルト)、終了シーケンス番号 8 でシーケンスを定義します。メッセージ・フローの構成では、メッセージの着信は順不同としますが、いずれかのシーケンス番号が着信しない場合でも、順不同のままでは伝搬できない、という構成内容にします。

ここでは、WebSphere MQ から XML 文書を受け取り、XML メッセージで定義されているシーケンス番号に基づいてメッセージを再配列し (この例では、パス $Root/XMLNSC/Doc/SeqNo を使用)、WebSphere MQ キューにその文書を書き込むメッセージ・フローを作成する手順を説明します。

  1. Resequence_Task1 というメッセージ・フローを作成し、MQInput ノード、Resequence ノード、MQOutput ノードを組み込みます。 これを行う方法の詳細は、メッセージ・フローの作成を参照してください。
  2. MQInput ノードの Out ターミナルを Resequence ノードの In ターミナルに接続します。
  3. Resequence ノードの Out ターミナルを MQOutput ノードの In ターミナルに接続します。
    MQInput、Resequence、MQOutput の各ノードで構成されているメッセージ・フロー
  4. MQInput ノードの以下のプロパティーを設定します。
    1. 「基本」タブで、「キュー名」プロパティーを RESEQUENCE_TASK1_IN1 に設定します。
    2. 「入力メッセージの構文解析」タブで、「メッセージ・ドメイン」プロパティーを XMLNSC に設定します。
  5. Resequence ノードの「基本」タブで、以下のプロパティーを設定します。
    1. 「シーケンス番号へのパス」プロパティーを $Root/XMLNSC/Doc/SeqNo に設定します。
    2. 「シーケンス定義の終了」プロパティーを「リテラル」に設定し、値 8 を指定します。
  6. MQOutput ノードの「基本」タブにある「キュー名」プロパティーを RESEQUENCE_TASK1_OUT1 に設定します。
  7. メッセージ・フローを保存します。

メッセージ・フローのメッセージ処理:

このセクションでは、メッセージ・フローに入ったメッセージを Resequence ノードがどのように処理するのかを説明します。

  1. 以下のようなメッセージが WebSphere MQ キュー RESEQUENCE_TASK1_IN1 に着信します。
    <Doc><SeqNo>0</SeqNo></Doc>,<Doc><SeqNo>1</SeqNo></Doc>,<Doc><SeqNo>2</SeqNo></Doc>,
    <Doc><SeqNo>3</SeqNo></Doc>,<Doc><SeqNo>4</SeqNo></Doc>,<Doc><SeqNo>5</SeqNo></Doc>,
    <Doc><SeqNo>6</SeqNo></Doc>,<Doc><SeqNo>7</SeqNo></Doc>,<Doc><SeqNo>8</SeqNo></Doc>,
  2. Resequence ノードは、まずシーケンス番号 0 のメッセージを受け取ります。Resequence ノードは、再配列プロセスを管理するための新しいシーケンス・グループを作成します。その新しいシーケンス・グループは、デフォルト・グループです。メッセージでは、シーケンス・グループが定義されていないからです。 そのシーケンス番号 0 のメッセージがシーケンスの最初のメッセージになり、Out ターミナルに伝搬します。
  3. Resequence ノードは、残りのメッセージ (シーケンス番号 8 までのメッセージ) を受け取り、着信順に伝搬します。 Resequence ノードは、各メッセージを伝搬する前にいったん保管し、別々のトランザクションを使用して各メッセージを下流に伝搬します。
  4. シーケンス番号 8 のメッセージが処理された時点で、そのシーケンス・グループは閉じます。 その後、同じグループの新しいメッセージが着信すると、新しいグループが作成されます。
  5. 次に、以下のようなメッセージが RESEQUENCE_TASK1_IN1 キューに着信します。
    <Doc><SeqNo>8</SeqNo></Doc>,<Doc><SeqNo>7</SeqNo></Doc>,<Doc><SeqNo>6</SeqNo></Doc>,
    <Doc><SeqNo>5</SeqNo></Doc>,<Doc><SeqNo>4</SeqNo></Doc>,<Doc><SeqNo>3</SeqNo></Doc>,
    <Doc><SeqNo>2</SeqNo></Doc>,<Doc><SeqNo>1</SeqNo></Doc>,<Doc><SeqNo>0</SeqNo></Doc>,
  6. Resequence ノードは、まずシーケンス番号 8 のメッセージを受け取ります。その時点で、Resequence ノードは、新しい (デフォルトの) シーケンス・グループを作成します。 そのメッセージは、シーケンスの最後のメッセージなので、伝搬しないで、内部に保管します。
  7. Resequence ノードは、残りのメッセージ (シーケンス番号 0 までのメッセージ) を受け取ります。最初のシーケンス番号 (この場合は 0) を受け取るまで、すべてのメッセージを伝搬しないで保管します。
  8. シーケンス番号 0 のメッセージを受け取ると、そのメッセージをメッセージ・フローの下流に伝搬します。残りのメッセージを順番に伝搬していき、最後にシーケンス番号 8 のメッセージを伝搬します。 その時点で、シーケンス・グループは再び閉じます。
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        最終更新:
        
        最終更新: 2015-02-28 17:48:39


タスク・トピックタスク・トピック | バージョン 8.0.0.5 | bc28024_