パーサー

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

入力メッセージを表現記するビット・ストリームが、ブローカーが処理できる内部フォームに変換される場合、パーサーが起動されます。 内部形式、すなわち論理ツリー構造については、論理メッセージ・ツリー に説明されています。パーサーがビット・ストリームを解釈する方法はパーサーに固有のものであるため、ビット・ストリームから作成される論理メッセージ・ツリーはパーサーごとに異なります。

また、メッセージ・フローのノードが ESQL ASBITSTREAM 機能を呼び出す場合、 パーサーはツリー構造からビット・ストリームを作成することがあります。

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

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

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

提供されたパーサーが処理しないメッセージ本体データまたはヘッダーを、処理および構文解析する必要がある場合には、WebSphere Business Integration Message Broker ユーザー定義パーサー・プログラミング・インターフェースを使用して、ユーザー定義パーサーを作成します。

Warning:

形式 MQFMT_IMS_VAR_STRING では、メッセージまたはメッセージのパーツ向けに、パーサーは提供されていません。この形式のデータの先頭には、MQIIH ヘッダーが付けられることがあります (形式 MQFMT_IMS)。WebSphere Business Integration Message Broker は、そのようなデータを BLOB として扱います。 メッセージ・フローの中で、そのようなメッセージの CodedCharSetId や Encoding を変更すると、MQFMT_IMS_VAR_STRING データは変換されず、メッセージ記述子や先頭ヘッダーは、メッセージのその部分を正確に記述するものとはなりません。 そのようなメッセージのデータを変換する必要がある場合は、MRM でメッセージを定義するか、ユーザー定義のパーサーを用意しなければなりません。

関連概念
論理ツリー構造
部分構文解析
ユーザー定義のパーサー

関連タスク
メッセージ・フロー・アプリケーションの開発
ユーザー定義拡張機能の開発

関連資料
組み込みノード
C ユーザー定義パーサー API