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