MRM ドメインのメッセージの妥当性検査プロパティー

妥当性検査の制御は、Compute、Mapping、および MQInput ノード上の「妥当性検査 (Validation)」タブによって示されるプロパティーを設定することによって行えます。

妥当性検査 (Validate)
妥当性検査が必要かどうか。 「しない (None)」(デフォルト) または 「内容と値 (Content And Value)」のいずれかに設定します。

「内容と値 (Content And Value)」は、内容チェック (「内容妥当性検査 (Content Validation)」および「構成 (Composition)」など) と、値チェック (値データ・タイプ、ヌル許可、長さ、範囲、列挙など) を実行するよう指定します。

障害アクション (Failure Action)
妥当性検査に失敗したときに行うアクション。 「例外 (Exception)」(デフォルト)、 「ユーザー・トレース (User Trace)」、 または「ローカル・エラー・ログ (Local Error Log)」のいずれかを設定することができます。

「例外 (Exception)」は、最初の妥当性検査失敗で例外をスローします。 メッセージ・フローのユーザー・トレースを要求している場合は、 障害がユーザー・トレースに記録され、妥当性検査が停止します。 このデフォルト設定は、使用するメッセージ・フローおよびアプリケーションのデバッグの完了後に、最も有用です。

「ユーザー・トレース (User Trace)」は、メッセージ・フローのユーザー・トレースを要求していない場合でも、 妥当性検査の失敗をすべてユーザー・トレースに書き込みます。

「ローカル・エラー・ログ (Local Error Log)」は、妥当性検査の失敗をすべてエラー・ログ (たとえば、Windows のイベント・ログ) に書き込みます。

「ユーザー・トレース (User Trace)」 および「ローカル・エラー・ログ (Local Error Log)」 のいずれの場合も、妥当性検査は続行します。 これらの設定は、「妥当性検査 (Validate)」プロパティーを初めて 「内容および値 (Content And Value)」に設定し、 最初のものだけでなくすべての妥当性検査の失敗を見られるようにする場合に有用です。

タイミング (Timing)
入力メッセージ・フィールドの妥当性検査を行う時期。 「据え置き (Deferred)」 (デフォルト)、 「即時 (Immediate)」、 または「完全 (Complete)」のいずれかを設定できます。

「即時 (Immediate)」では、メッセージ全体を妥当性検査します。ただし、「構成 (Composition)」「選択 (Choice)」、または「メッセージ (Message)」の使用から生じた未解決のサブセットは、それらが解決されるまで妥当性検査されません。

「完全 (Complete)」では、メッセージ全体を妥当性検査します。

「据え置き (Deferred)」では、各フィールドの構文解析時にその妥当性検査を行います。 部分構文解析は、メッセージ・フロー内で妥当性検査を遅らせたり、まったく行わなくする場合があります。

MRM パーサーは部分構文解析を使用します。これは、メッセージ・フローの開始時には、入力メッセージが完全には構文解析されないという意味です。 メッセージ内のフィールドが参照される時点で、参照を完全に解決するために、必要なだけのメッセージが解析されます。 「タイミング (Timing)」プロパティーによって、 メッセージ妥当性検査が部分構文解析と相互作用する仕方を制御できます。
  • 「タイミング (Timing)」値として 「完全 (Complete)」または 「即時 (Immediate)」を選択した場合、 部分構文解析は指定変更されて、できるだけ多くのメッセージが即時に構文解析されます。 「完全 (Complete)」の場合、これはメッセージ全体です。 「即時 (Immediate)」の場合、 「構成 (Composition)」「選択 (Choice)」または 「メッセージ (Message)」との複合タイプ以外が すべて解析されます (それらは、内容が ESQL 内のユーザーによって解決されたときにのみ解析できるため)。
  • 「タイミング (Timing)」値として「据え置き (Deferred)」を選択している場合には、メッセージ内のフィールドが部分構文解析によって解析されるまで、それらの妥当性検査が遅延します。
「据え置き (Deferred)」または「即時 (Immediate)」を選択した場合、メッセージ・フローによるメッセージの処理において、妥当性検査エラーがすぐには検出されないことがあります。またはメッセージの一部が解析されない場合は、エラーがまったく検出されないこともあります。 メッセージ内のすべてのフィールドが確実に妥当性検査されるようにするには、 「完全 (Complete)」を選択するか、 または「即時 (Immediate)」を選択して メッセージ・フローの開始時にすべての未解決タイプを確実に解決しておいてください。

「タイミング (Timing)」プロパティーは、MQInput ノードでのみ選択できます。

値制約すべてを組み込む (Include All Value Constraints)
このチェック・ボックスは選択済みです。ユーザーは変更することができません。

「値制約すべてを組み込む (Include All Value Constraints)」は、以下の値制約をチェックすることを指定します。

  • 最小長 (Min Length)
  • 最大長 (Max Length)
  • ヌル許可 (Null Permitted)
  • 日付テンプレート (Date Template)
  • 位取り (Scale)
  • 最小値 (Min Inclusive)
  • 最大値 (Max Inclusive)
  • 列挙 (Enumeration)
  • パターン (Pattern)

これらの値制約については、単純タイプの論理値制約を参照してください。

修正 (Fix)
デフォルト値は「なし (None)」です。 それを変更することはできません。
「なし (None)」 は、 「妥当性検査 (Validation)」「内容および値 (Content And Value)」に設定されていて、 妥当性検査で障害が発生し、「障害アクション (Failure Action)」「例外 (Exception)」に設定されていない場合に、 限られた修正アクションだけが行われることを指定します。
  • MRM ドメインの修正済みフォーマット (CWF および TDS タグなし) の無関係のフィールドは廃棄されます。
  • 必須内容が欠落している場合には、 修正済みフォーマット (TDS タグなし) 用の構文解析および書き込みの両方に対して、 デフォルトが提供されます (使用可能な場合)。
  • ツリー内の要素のデータ・タイプが、辞書内で指定されたものと一致しない場合には、 可能であれば、データ・タイプが辞書の定義と一致するように変換されます。 これが生じるのは、MRM パーサーがメッセージ・フローの出力時に、 ビット・ストリームを書き込む場合です (すべてのフォーマット)。
「障害アクション (Failure Action)」「例外 (Exception)」に設定されている場合、 修復アクションは行われず、妥当性検査で最初に発生した障害で例外がスローされます。

関連概念
メッセージ・フロー

関連タスク
メッセージの妥当性検査
メッセージ・フローの設計
メッセージ・フローの作成
メッセージ・フローの内容の定義

関連資料
組み込みノード