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

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

パーサー

パーサーとは、着信メッセージの物理ビット・ストリームを解釈し、そのメッセージの内部論理表現をツリー構造で作成するプログラムです。 パーサーは、内部メッセージ・ツリー表現からの発信メッセージ用のビット・ストリームも再生成します。

入力メッセージを表すビット・ストリームが、ブローカーが処理できる内部形式に変換されると、パーサーが呼び出されます。このようなパーサーの起動を解析と呼びます。 内部形式、すなわち論理ツリー構造については、論理ツリー構造 に説明されています。 これがツリーとして説明されているのは、メッセージが通常は、構造内の階層になっているからです。 この構造の良い例が XML です。 パーサーがビット・ストリームを解釈する方法はパーサーに固有のものであるため、ビット・ストリームから作成される論理メッセージ・ツリーはパーサーごとに異なります。

呼び出されるパーサーは、メッセージの構造によって異なります (メッセージの構造のことをメッセージ・テンプレート といいます)。 メッセージ・テンプレート情報は、メッセージのメッセージ・ドメインメッセージ・セットメッセージ・タイプ、および物理形式から成っています。 これらの値はあわせて、メッセージが含むデータの構造を示します。

出力メッセージを表す論理ツリーがビット・ストリームに変換されるときにも、パーサーが起動されます。 パーサーによるこのアクションを書き込み といいます。 通常は、メッセージ・フローの最後に、出力ノードによって出力メッセージが生成されます。 ただし、出力ノードにさらにノードを接続して、メッセージの処理を続けることができます。

メッセージ・ドメインは、メッセージ・インスタンスの解析および書き込みで使用するパーサーを識別します。 メッセージ・テンプレートの残りの部分 (メッセージ・セット、メッセージ・タイプ、物理形式) はオプションであり、 MRM パーサーなどのモデル駆動型パーサーによって使用されます。

メッセージの論理構造は通常、メッセージの業務内容にマップします。 例えば、顧客名、アドレス、およびアカウント番号がそれに含まれます。 物理的特性が重要で、それがビット・ストリームの構造に影響するのは、接続を介してメッセージを送信するときだけです。

ブローカーは、入力メッセージと出力メッセージが属するすべてのメッセージ・ドメインについて、パーサーへのアクセスを必要とします。 さらに、ブローカーは、入力または出力メッセージに組み込まれる、すべての識別可能なメッセージ・ヘッダーに対して、パーサーを必要とします。 パーサーは、メッセージ・フローが必要とした時点で呼び出されます。

本体パーサー

WebSphere® Message Broker は、メッセージ本体パーサーを提供することによって、次のメッセージ・ドメイン内のメッセージに対して組み込みサポートを提供します。

どのような環境で、どのメッセージ本体パーサーを使用するかの詳細は、どの本体パーサーを使用すべきかを参照してください。

メッセージに対してどのメッセージ・ドメインを使用するかは、解析または書き込みが開始されるメッセージ・フロー内の場所で指定します。
  • メッセージ・ビット・ストリームを解析するには、通常は、メッセージを受信する入力ノードの「メッセージ・ドメイン」プロパティーを設定します。 しかし、解析操作を ESQL で開始する場合は、CREATE ステートメントの DOMAIN 節を使用します。

    作成されるメッセージ・ツリーについては、メッセージ・ツリー構造に説明されています。 その正確な形は、ノードが何をしているかによって、メッセージ・フローを進行していくにつれて変化することがあります。

    メッセージ・ツリーのルート・エレメントの最後の子エレメントは、そのツリーを作成した本体パーサーの名前にちなんで命名されます。 例えば、「メッセージ・ドメイン」プロパティーを MRM に設定した場合、ルートの最後の子エレメントは MRM という名前になります。これは、そのメッセージ・ツリーが MRM パーサーによって所有されていることを示します。

  • メッセージを書き込むために、ブローカーは所有する本文パーサーを呼び出して、メッセージ・ツリーからメッセージ・ビット・ストリームを作成します。

本体パーサーの中には、モデル駆動型のものもあります。その意味するところは、解析および書き込みの際に、メッセージ・セットからの事前定義メッセージが使用されるということです。 MRM、SOAP、DataObject、IDOC、および (オプションとしての) XMLNSC パーサーは、モデル駆動型パーサーです。 これらのパーサーを使用するには、メッセージ・セット内でメッセージをモデル化し、WebSphere Message Broker Toolkit からブローカーにデプロイする必要があります。

それ以外の本体パーサーはプログラマチックです。つまり、解析して書き込むメッセージは、自己定義メッセージであり、メッセージ・セットは必要ないということです。 事前定義および自己定義メッセージを参照してください。

モデル駆動型パーサーを使用する場合、「メッセージ・セット」と、判断しだいで「メッセージ・タイプ」および「メッセージ形式」を指定する必要があります。その指定によって、パーサーは、メッセージの解析または書き込みのガイダンスとなるデプロイ済みメッセージ定義を見つけることができます。

メッセージ・ビット・ストリームを解析するために、通常は、メッセージを受信する入力ノードの「メッセージ・セット」「メッセージ・タイプ」、および「メッセージ形式」プロパティーを設定します。 また、ESQL で解析操作を開始する場合は、CREATE ステートメントの SETTYPE、および FORMAT 節を使用します。 この情報は、メッセージ・ツリーの「プロパティー」フォルダーにコピーされます。

メッセージを書き込むために、ブローカーは所有する本文パーサーを呼び出して、メッセージ・ツリーからメッセージ・ビット・ストリームを作成します。 パーサーがモデル駆動型パーサーである場合は、「プロパティー」フォルダー内の MessageSetMessageType、および MessageFormat フィールドを使用します。

「メッセージ・タイプ」または「メッセージ形式」が必要かどうかは、メッセージ・ドメインによって決まります。

本体パーサーがモデル駆動型でなくても、WebSphere Message Broker Toolkit 内でメッセージ・セットを作成して使用するのが得策です。なぜなら、それによって、メッセージ・セットがブローカーの実行時環境にデプロイされなくても、メッセージ・フロー・アプリケーションの開発が簡単になるからです。 メッセージ・セットを作成することの利点については、メッセージをモデル化する理由を参照してください。

ヘッダー・パーサー

また、WebSphere Message Broker は、ご使用のアプリケーションが入力メッセージまたは出力メッセージに組み込むことのできる、次のメッセージ・ヘッダーに対して、パーサーを提供します。

すべてのヘッダー・パーサーはプログラマチックであり、解析または書き込み時にメッセージ・セットを使用しません。

ユーザー定義のパーサー

提供されたパーサーが処理しないメッセージ本体データまたはヘッダーの解析または書き込みを行うには、WebSphere Message Broker ユーザー定義パーサー・プログラミング・インターフェースを使用して、ユーザー定義パーサーを作成します。

ヒント: WMQ 形式 MQFMT_IMS_VAR_STRING のメッセージまたはメッセージのパーツ向けのパーサーは提供されていません。 この形式のデータの先頭には、MQIIH ヘッダーが付けられることがあります (形式 MQFMT_IMS)。 WebSphere Message Broker は、そのようなデータを BLOB メッセージとして扱います。 メッセージ・フローの中で、そのようなメッセージの CodedCharSetId やエンコードを変更すると、MQFMT_IMS_VAR_STRING データは変換されず、メッセージ記述子や先頭ヘッダーは、メッセージのその部分を正確に記述するものとはなりません。 そのようなメッセージのデータを変換する必要がある場合は、MRM ドメインを使用して、メッセージ・セットを作成してメッセージの内容をモデル化するか、またはユーザー定義のパーサーを用意しなければなりません。
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

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

        
        最終更新:
        
        最終更新: 2015-02-28 17:46:24


概念トピック概念トピック | バージョン 8.0.0.5 | ac70570_