ブローカーは、事前定義メッセージ用のメッセージ・セットに基づいた妥当性検査を提供します。
メッセージ・フロー・ノードおよびパーサーと、特にMRM パーサーおよびドメインおよびXML パーサーおよびドメインに関する概念トピックに目を通しておきます。
妥当性検査は、ブローカーに対してモデル化およびデプロイしたメッセージにのみ適用されます。 具体的に言うと、妥当性検査をサポートするメッセージ・ドメインは、MRM、XMLNSC、、および IDOC です。
ブローカーは、自己定義メッセージの妥当性検査は提供しません。 MRM および IDOC パーサーは、メッセージ・セットから生成されたメッセージ・ディクショナリーに照らして、事前定義メッセージを検証します。 XMLNSC ドメインは、メッセージ・セットから生成された XML スキーマに直接照らして、事前定義メッセージを検証します。
メッセージ・フローは、特定の規則に合致するメッセージを変換して経路を定めるように設計されています。 デフォルトでは、パーサーはメッセージの妥当性検査を実行しますが、それは、解析操作の整合性を確認するためでしかありません。 しかしながら、メッセージ・フロー内の特定のノード上に妥当性検査オプションを指定することによって、メッセージ・セット内にあるメッセージ・モデルに対する、より厳重なメッセージの妥当性検査を実行することができます。
また、妥当性検査が失敗した場合に行うアクションを指定することもできます。
メッセージ妥当性検査には、メッセージ・ツリーをナビゲートし、そのツリーの妥当性を検査することが含まれています。 メッセージ妥当性検査は、入力メッセージの構文解析時にはツリー作成の延長であり、出力メッセージの書き込み時にはビット・ストリーム作成の延長です。
ノード・タイプ | 妥当性検査オプションを持つノード |
---|---|
入力ノード | MQInput, SCADAInput, HTTPInput, JMSInput, TimeoutNotification, , |
出力ノード | MQOutput, MQReply, SCADAOutput, HTTPReply, JMSOutput, JMSReply, , |
その他のノード | Compute, Mapping, JavaCompute, Validate, ResetContentDescriptor, MQGet, HTTPRequest, , , , |
妥当性検査オプションは、ESQL CREATE ステートメントおよび ASBITSTREAM 関数でも指定できます。
入力データで受け取った入力メッセージを妥当性検査するには、入力ノードで妥当性検査プロパティーを指定します。 その後入力メッセージは、メッセージ・ビット・ストリームが構文解析されてメッセージ・ツリーを形成するときに妥当性検査されます。
このときにメッセージ全体が構文解析されて妥当性検査されるのか、それともメッセージ内の個々のフィールドが参照されるときにのみ構文解析され妥当性検査されるのかを制御するために、入力ノードの「構文解析のタイミング」プロパティーを使用することもできます。
変換ノードによって作成される出力メッセージを妥当性検査するには、それらのノード自体で妥当性検査プロパティーを指定するか、またはメッセージを送信する出力ノードで妥当性検査プロパティーを指定します。 妥当性検査は、出力ノードによってメッセージ・ツリーからメッセージ・ビット・ストリームが作成される際に行われます。
別の方法として、Validate ノードを使用して、メッセージ・フローの特定の箇所でメッセージ・ツリーを妥当性検査するか、あるいは Compute、Filter、または Database ノード内で ESQL ASBITSTREAM 関数を使用します。
サンプル・ギャラリーのサンプルは、これらの妥当性検査オプションのいくつかを例示しています。
「構文解析のタイミング」 プロパティーについて詳しくは、要求時の構文解析を参照してください。
各種のプロパティーを使用しての妥当性検査の制御方法については、妥当性検査プロパティーを参照してください。