メッセージを別のパーサーを使用して再構文解析するよう要求するには、ResetContentDescriptor ノードを使用します。
このトピックには、以下のセクションが含まれています。
新しいパーサーとして MRM を指定した場合は、別のメッセージ・テンプレート (メッセージ・セット、メッセージ・タイプ、およびメッセージ形式) も指定することができます。 このノードはメッセージを再構文解析しませんが、このノードに設定するプロパティーが、メッセージが次に再構文解析される際の構文解析方法を決定します。
ノードは新しいパーサー情報を入力メッセージのビット・ストリームと関連付けます。 メッセージがすでに構文解析されてメッセージ・ツリーが作成されており、ツリーの内容が (例えば、Compute ノードにより) 変更されている場合、ResetContentDescriptor ノードは現行のパーサーを呼び出して、メッセージ・ツリーからビット・ストリームを再作成する必要があります。
ResetContentDescriptor ノードがメッセージを受け取る前にメッセージ・フローがメッセージ を更新した場合、変更されたメッセージ内容が現行のパーサーにおいてまだ有効であることを確認します。 内容が有効でない場合、パーサーがメッセージ・ツリーからビット・ストリームを再作成しようとするときにエラーが生成され、 ResetContentDescriptor ノードは例外を出します。 例えば、MRM ドメイン内のメッセージに新しいフィールドを追加しても、そのフィールドがモデルに存在しない場合、ビット・ストリームの再作成は失敗します。
ResetContentDescriptor ノードは、以下の事柄は行いません。
ResetContentDescriptor ノードは、パレットの「変換」ドロワーに格納されていて、ワークベンチ内では次のアイコンによって表されます。
このノードの使用方法を示す例として、BLOB ドメインと MRM ドメイン間でスワップすると想定します。 メッセージ・フローを入力するときに着信メッセージの形式は知られていないので、BLOB パーサーが開始されます。 後ほど、メッセージ・フローで、メッセージが MRM ドメインで事前定義されているか判別し、 メッセージ・フロー内の後続のノードがメッセージを解析する際に使用する正しい値を、 ResetContentDescriptor ノードを使用して設定できます。
プロパティー | 値 |
---|---|
メッセージ・ドメイン | MRM |
メッセージ・ドメインのリセット | 選択されている |
メッセージ・セット | DH53CU406U001 |
メッセージ・セットのリセット | 選択されている |
メッセージ・タイプ | m_MESSAGE1 |
メッセージ・タイプのリセット | 選択されている |
メッセージ形式 | CWF |
メッセージ形式のリセット | 選択されている |
「メッセージ・ドメイン」は MRM に設定され、メッセージが次回構文解析されるときに MRM パーサーが開始されます。 メッセージ・セット、メッセージ・タイプ、およびメッセージ形式は、メッセージ・モデルを定義するメッセージ・テンプレート値であり、すべてのプロパティーは変更する必要があるためにすべてのリセット・チェック・ボックスが選択されています。
ResetContentDescriptor ノードにより、 入力メッセージに関連付けられている BLOB パーサーはメッセージの物理ビット・ストリーム (メッセージの論理ツリー表記ではない) を構成し、 このビット・ストリームは後で MRM パーサーに渡されます。 次に、MRM パーサーは、ResetContentDescriptor ノードで指定されているメッセージ・テンプレート (「メッセージ・セット」、「メッセージ・タイプ」、および「メッセージ形式」) を使用して、ビット・ストリームを構文解析します。
ResetContentDescriptor ノードのインスタンスをメッセージ・フローに入れたら、そのノードを構成することができます。詳しくは、メッセージ・フロー・ノードの構成を参照してください。ノードのプロパティーが、「プロパティー」ビューに表示されます。ノードのプロパティーを「プロパティー」ダイアログに表示するには、ノードをダブルクリックするか、またはノードを右クリックしてから「プロパティー」をクリックします。
値を入力する必要のある (デフォルト値が定義されていない) すべての必須プロパティーには、アスタリスクが表示されます。
状況により、ユーザー定義のパーサーを指定することもできます。
また、「メッセージ・ドメインのリセット」チェック・ボックスも選択する必要があります。
これらのプロパティーは、ResetContentDescriptor ノードを通過するメッセージのメッセージ・ヘッダー内にメッセージ・ドメイン、メッセージ・セット、メッセージ・タイプ、およびメッセージ形式の値を設定します。 ただし、これらのアクションが行われるのは、該当するヘッダーがすでに存在する場合だけです。 メッセージに MQRFH2 ヘッダーがない場合、ノードはヘッダーを作成しません。
XML、JMS、MIME、または BLOB パーサーを指定した場合は、「メッセージ・セット」、「メッセージ・タイプ」および「メッセージ形式」をブランクのままにしてください。
この値を「即時」に変更すると、 部分構文解析はオーバーライドされて、メッセージ内のすべてのものが構文解析および妥当性検査されます。 ただし、構成が「選択」または「メッセージ」に指定された複合タイプで、この時点で解決できないものは除きます。 この値を「完全」に変更すると、 部分構文解析はオーバーライドされて、メッセージ内のすべてのものが構文解析および妥当性検査されます。 構成が「選択」または「メッセージ」に指定された複合タイプで、この時点で解決できないものでは妥当性検査障害が生じます。
詳細については、要求時の構文解析を参照してください。
詳細については、メッセージの妥当性検査および妥当性検査プロパティーを参照してください。
ResetContentDescriptor ノードのターミナルについては、次の表に説明されています。
ターミナル | 説明 |
---|---|
In | ノードが処理するメッセージを受け入れる入力ターミナル。 |
Failure | ノードによりエラーが検出された場合に、メッセージがルーティングされる出力ターミナル。 |
Out | 新しいパーサーがプロパティーにより示される場合、メッセージがルーティングされる出力ターミナル。 |
以下の表は、ノード・プロパティーについて説明しています。 M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力することが必要なら、アスタリスクのマークが付きます)。 C の見出しの列は、プロパティーが構成可能 かどうかを示します (メッセージ・フローを BAR ファイルに追加してデプロイするとき、値を変更できます)。
ResetContentDescriptor ノードの「説明」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
ノード名 | いいえ | いいえ | ノード・タイプ | ノードの名前。 |
簡略説明 | いいえ | いいえ | ノードの簡単な説明 | |
詳細説明 | いいえ | いいえ | メッセージ・フロー内のノードの目的を説明するテキスト |
ResetContentDescriptor ノードの基本プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
メッセージ・ドメイン | いいえ | いいえ | 再構文解析するメッセージと関連付けられたメッセージ・ドメイン。 | |
メッセージ・ドメインのリセット | はい | いいえ | 選択されていない | リセット・チェック・ボックスを選択すると、「メッセージ・ドメイン」プロパティーがリセットされます。 その場合、「メッセージ・ドメイン」プロパティーの値を選択しないと、「メッセージ・ドメイン」のプロパティー値は BLOB になります。 |
メッセージ・セット | いいえ | いいえ | 再構文解析するメッセージと関連付けられたメッセージ・セット。 | |
メッセージ・セットのリセット | はい | いいえ | 選択されていない | リセット・チェック・ボックスを選択すると、「メッセージ・セット」プロパティーがリセットされます。 その場合、「メッセージ・セット」プロパティーの値を選択しないと、「メッセージ・セット」のプロパティー値はブランクになります。 |
メッセージ・タイプ | いいえ | いいえ | 再構文解析するメッセージと関連付けられたメッセージ・タイプ。 | |
メッセージ・タイプのリセット | はい | いいえ | 選択されていない | リセット・チェック・ボックスを選択すると、「メッセージ・タイプ」プロパティーがリセットされます。 その場合、「メッセージ・タイプ」プロパティーの値を選択しないと、「メッセージ・タイプ」のプロパティー値はブランクになります。 |
メッセージ形式 | いいえ | いいえ | 再構文解析するメッセージと関連付けられたメッセージ形式。 | |
メッセージ形式のリセット | はい | いいえ | 選択されていない | リセット・チェック・ボックスを選択すると、「メッセージ形式」プロパティーがリセットされます。 その場合、「メッセージ形式」プロパティーの値を選択しないと、「メッセージ形式」のプロパティー値はブランクになります。 |
ResetContentDescriptor ノードの「パーサー・オプション」のプロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
構文解析のタイミング | いいえ | いいえ | 要求時 | このプロパティーは、再解析済みのメッセージをいつ解析するかを制御します。有効な値は、「要求時」、「即時」、および 「完全」 です。 このプロパティーに関する詳しい説明については、要求時の構文解析を参照してください。 |
MQRFH2C コンパクト・パーサーを MQRFH2 ドメインに使用 | いいえ | いいえ | 選択されていない | このプロパティーは、MQRFH2 パーサーの代わりに、MQRFH2C コンパクト・パーサーを MQRFH2 ヘッダーに使用するかどうかを制御します。 |
XMLNSC コンパクト・パーサーを XMLNS ドメインに使用 | いいえ | いいえ | 選択されていない | このプロパティーは、XMLNS ドメイン内のメッセージに XMLNSC コンパクト・パーサーを使用するかどうかを制御します。 このプロパティーを設定すると、入力 MQRFH2 ヘッダーまたはドメインが XMLNS の場合、出力ターミナルに接続されているノードの XMLNSC の下にメッセージ・データが表示されます。 |
混合内容の保存 | いいえ | いいえ | 選択されていない | このプロパティーは、XMLNSC パーサーが再解析済みメッセージ内で混合テキストを検出したときに、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。チェック・ボックスを選択すると、混合テキスト用のエレメントが作成されます。 このチェック・ボックスのチェックを外した場合、混合テキストは無視されて、エレメントは作成されません。 |
コメントの保存 | いいえ | いいえ | 選択されていない | このプロパティーは、XMLNSC パーサーが再解析済みメッセージ内でコメントを検出したときに、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。チェック・ボックスを選択すると、コメント用のエレメントが作成されます。 このチェック・ボックスのチェックを外した場合、コメントは無視されて、エレメントは作成されません。 |
処理命令の保存 | いいえ | いいえ | 選択されていない | このプロパティーは、XMLNSC パーサーが再解析済みメッセージ内で処理命令を検出したときに、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。チェック・ボックスを選択すると、処理命令用のエレメントが作成されます。 このチェック・ボックスのチェックを外した場合、処理命令は無視されて、エレメントは作成されません。 |
ResetContentDescriptor ノードの「妥当性検査」プロパティーについては、次の表に説明されています。 これらのプロパティーの詳細については、妥当性検査プロパティーを参照してください。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
妥当性検査 | いいえ | はい | なし | このプロパティーは、妥当性検査を行うかどうかを制御します。 有効な値は、「なし」、「内容」、 「内容と値」、および「継承」です。 |
失敗時の処置 | いいえ | いいえ | 例外 | このプロパティーは、妥当性検査が失敗した場合の動作を制御します。 「妥当性検査」を「内容と値」または「内容」に設定した場合にのみ、このプロパティーを設定できます。 有効な値は、「ユーザー・トレース」、「ローカル・エラー・ログ」、「例外」、および「例外リスト」です。 |
すべての値制約を含める | いいえ | いいえ | 選択されている | このプロパティーは編集できません。このチェック・ボックスを選択すると、基本値制約検査が「内容と値」妥当性検査に含まれます。 |
修正 | いいえ | いいえ | なし | このプロパティーは編集できません。有効な値は、「なし」、および「フル」です。 |