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

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

メッセージへのシーケンス番号の追加

Sequence ノードを使用すると、メッセージ・フローに入れられるメッセージにシーケンス番号を追加できます。

始める前に:

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

Sequence ノードは、ノードに到達する各入力メッセージに対して単純に増分するシーケンス番号を割り振ります。 各メッセージが Sequence ノードに到達するとシーケンス番号が増分し、「保管シーケンス番号へのパス」プロパティーで指定された場所にメッセージとともに保管されます。 シーケンス番号の割り振りは、「シーケンス定義の終了」プロパティーの指定内容に基づいてシーケンスが終了するまで続きます。

入力メッセージをメッセージ内で定義された ID に基づいて独立シーケンス・グループに分けることができます。 グループごとに別個のグループ ID を持ち、各グループ内のメッセージのシーケンスが独立して管理されます。

Sequence ノードはシーケンス・グループ内の各メッセージにシーケンス番号を割り振りますが、グループ内の現行メッセージの処理が (コミットされるかまたはロールバックされることにより) 終了するまで、グループ内の次のシーケンス番号は割り振られません。 これによって、メッセージ・フローに複数のスレッドがあっても、グループでの順序付けが維持されます。

メッセージを新たに割り当てたシーケンス番号とともに保存する必要があり (例えば、 別のフローで処理するために、メッセージを WebSphere® MQ に保存する 必要がある場合など)、メッセージ内にシーケンス番号の保存に適した場所がない場合は、 メッセージの Sequence ノードの前に MQRFH2 ヘッダーを追加して、 usr フォルダー内のフィールドにシーケンス番号を設定できます。

複数のシーケンス・グループを並列で独立して管理でき、ブローカーが再始動されてもシーケンス・グループ状態が保持されます。

以下のステップは、シーケンス・グループ内にある各メッセージにシーケンス番号を追加するメッセージ・フローの作成方法を示しています。

  1. MQInput ノード、Sequence ノード、および MQOutput ノードを含むメッセージ・フローを作成します。
  2. MQInput ノードの Out ターミナルを Sequence ノードの In ターミナルに接続します。
  3. Sequence ノードの Out ターミナルを MQOutput ノードの In ターミナルに接続します。
    MQInput、Sequence、および MQOutput ノードで構成されるメッセージ・フロー。
  4. MQInput ノードで、ノードの入力メッセージのソースを指定します。そのためには、「キュー名」プロパティー (「基本」タブ上) を、MQInput ノードのメッセージの取得先となる WebSphere MQ キューの名前に設定します。 例えば、SEQ.TASK1.IN1 です。
  5. Sequence ノードの以下のプロパティーを設定します。
    1. 「基本」タブで、以下のプロパティーを設定します。
      • 「保管シーケンス番号へのパス」プロパティーを、メッセージ内のシーケンス番号が設定される場所に設定します。 例えば、$OutputBody/doc/seq などです。 シーケンス番号は、LocalEnvironment.Sequence.Number 変数でローカル環境でも設定されます。
      • 「シーケンス・グループ ID へのパス」プロパティーを、メッセージ内のシーケンス・グループ ID の場所に設定します。 例えば、$InputBody/doc/grp などです。 シーケンス・グループ ID は、LocalEnvironment.Sequence.Group 変数でローカル環境でもコピーされます。
      • 「シーケンス定義の開始」プロパティーを「リテラル」に設定し、必要な開始値を指定します (例えば 0)。

        開始シーケンス番号はリテラル数値で指定する必要がありますが、ローカル環境でこの値を LocalEnvironment.Sequence.StartOfSequenceNumber 変数でオーバーライドできます。

        シーケンスの開始のメッセージは、ローカル環境では LocalEnvironment.Sequence.Start 変数 (ブール値を指定可能) で示されます。

      • 「シーケンス定義の終了」プロパティーを以下のいずれかの値に設定します。
        • 「自動」。必要なタイムアウト値 (例えば 60) を指定します。 その値を指定した場合は、ノードのメッセージ・キューが空になっている状態が 60 秒間続くと、シーケンス・グループが自動的に閉じます。
        • 「リテラル」。必要な終了値 (例えば 100) を指定します。 その値を指定した場合は、シーケンス番号 100 のメッセージが処理された時点で、シーケンス・グループが閉じます。
        • 「述部」。必要な XPath 式 (例えば $InputBody/doc/endFlag) を指定します。 その値を指定すると、$InputBody/doc/endFlag 述部の評価結果が True ($InputBody/doc/endFlag=True) になった時点で、シーケンス・グループが閉じます。

        シーケンスの終了のメッセージは、ローカル環境では LocalEnvironment.Sequence.End 変数 (ブール値を指定可能) で示されます。

    2. 「拡張」タブで「持続モード」プロパティーを「非持続」に設定します。 キュー・マネージャーが再始動されてもシーケンスが保持されるようにする場合は、「持続」を選択します。
  6. MQOutput ノードで、「キュー名」 プロパティー (「基本」 タブ上) を、MQOutput ノードのメッセージの送信先となる WebSphere MQ キューの名前に設定します。 例えば、SEQ.TASK1.OUT1 です。
  7. メッセージ・フローを保管します。
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

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

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


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