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

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

メッセージ・フロー内でのメッセージのリオーダー

メッセージ・フローに入れられるメッセージにシーケンス番号とグループ ID が含まれる場合、 Resequence ノードを使用して、メッセージの順序を再確立してから、 メッセージ・フローでメッセージを伝搬できます。

始める前に:

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

各メッセージには、単純に増分するシーケンス番号が含まれることを確認します。

シーケンス番号は、Sequence ノードによってメッセージに追加されることもありますし、メッセージ内の別の整数フィールドである場合もあります。

Resequence ノードは、受信した入力メッセージがシーケンスで次に位置するメッセージである場合にのみ、 そのメッセージを伝搬します。 メッセージがシーケンスで次に位置するメッセージではない場合、Resequence ノードは、以降のメッセージが着信してシーケンスを修正できるようになるまでそのメッセージを保管し、修正できた時点で保管しておいたメッセージを伝搬します。 メッセージが到着できず、Resequence ノードがシーケンスを揃えられなかった場合、残りのメッセージは Resequence ノードが構成された方法に従って処理されます。 この構成について詳しくは、未着メッセージの取り扱いを参照してください。

Resequence ノードで、トランザクションの中断が発生します。 メッセージが Resequence ノードに送信されると、制御はメッセージ・フロー 内の前のノードに戻されます。 Resequence ノードから伝搬されるすべてのメッセージは、シーケンスが完全であっても、新規トランザクションで伝搬されます。 詳しくは、Resequence ノードを参照してください。

メッセージ・シーケンスは、ブローカーの再始動時に保持されます。 Resequence ノードの「拡張」タブで「持続」オプションを 選択すると、シーケンスはキュー・マネージャーの再始動時にも保持されます。

以下のステップは、シーケンス・グループ内にあるメッセージの順序の再確立を可能にするメッセージ・フローの作成方法を示しています。

  1. 「ブローカー・アプリケーション開発」パースペクティブに切り替えます。
  2. MQInput ノード、Resequence ノード、および MQOutput ノードを含むメッセージ・フローを作成します。
  3. MQInput ノードの Out ターミナルを Resequence ノードの In ターミナルに接続します。
  4. Resequence ノードの Out ターミナルを MQOutput ノードの In ターミナルに接続します。
    MQInput、Resequence、MQOutput の各ノードで構成されているメッセージ・フロー
  5. MQInput ノードで、ノードの入力メッセージのソースを指定します。そのためには、「キュー名」プロパティー (「基本」タブ上) を、MQInput ノードのメッセージの取得先となる WebSphere® MQ キューの名前に設定します。 例えば、RESEQ.TASK1.IN1 です。
  6. Resequence ノードの以下のプロパティーを設定します。
    1. 「基本」タブで、以下のプロパティーを設定します。
      • 「シーケンス番号へのパス」プロパティーを、メッセージ内のシーケンス番号の場所に設定します。 例えば、$InputBody/doc/seq などです。 シーケンス番号は、LocalEnvironment.Sequence.Number 変数でローカル環境でも設定されます。
      • 「シーケンス・グループ ID へのパス」プロパティーを、メッセージ内のシーケンス・グループ ID の場所に設定します。 例えば、$InputBody/doc/grp などです。 シーケンス・グループ ID は、LocalEnvironment.Sequence.Group 変数でローカル環境でもコピーされます。
      • 「シーケンス定義の開始」プロパティーを、グループの最初のシーケンス番号に設定します。 例えば、値 0「リテラル」を選択します。
      • 「シーケンス定義の終了」プロパティーを「自動」に設定し、必要なタイムアウト値を指定します (例えば 60)。 その値を指定した場合は、ノードのメッセージ・キューが空になっている状態が 60 秒間続くと、シーケンス・グループが自動的に閉じます。 シーケンスの終了のメッセージは、ローカル環境では LocalEnvironment.Sequence.End 変数 (ブール値を指定可能) で示されます。
      • 「欠落しているメッセージ・タイムアウト」プロパティーを、10 に設定します。 この値により、Resequence ノードは 10 秒間、未着メッセージを待機してから、シーケンス・グループ内の後続のメッセージを Expire ターミナルに伝搬するように指定されます。 後続のメッセージを伝搬すると、欠落している (タイムアウトになった) メッセージのシーケンス番号が LocalEnvironment.Sequence.Missing 変数としてローカル環境にコピーされます。
  7. MQOutput ノードで、「キュー名」 プロパティー (「基本」 タブ上) を、MQOutput ノードのメッセージの送信先となる WebSphere MQ キューの名前に設定します。 例えば、SEQ.TASK1.OUT1 です。
  8. メッセージ・フローを保管します。
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

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

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


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