ResetContentDescriptor ノード

このトピックには、以下のセクションが含まれています。

目的

メッセージを別のパーサーを使用して再び構文解析するよう要求するには、ResetContentDescriptor ノードを使用します。 新しいパーサーが MRM の場合は、別のメッセージ・テンプレート (メッセージ・セット、タイプ、および形式) も指定しなければなりません。 このノードはメッセージを再構文解析しませんが、このノードに設定するプロパティーが、メッセージが次に再構文解析される際の構文解析方法を決定します。

ノードは新しいパーサー情報を入力メッセージのビット・ストリームと関連付けます。 メッセージがすでに構文解析されてメッセージ・ツリーが作成されており、ツリーの内容が (たとえば、Compute ノードにより) 変更されている場合、ResetContentDescriptor ノードはメッセージに関連した現行のパーサーを起動してメッセージを構文解析し、ビット・ストリームを再作成する必要があります。

ResetContentDescriptor ノードがメッセージを受け取る前にメッセージ・フローがメッセージを更新した場合、変更されたメッセージ内容が現行のパーサーにおいてまだ有効であることを確認する必要があります。 有効でないならば、パーサーがメッセージ・ツリーからビット・ストリームを再作成しようとするときにエラーが生成され、ResetContentDescriptor ノードは例外を出します。 たとえば、MRM ドメイン内のメッセージに新しいフィールドを追加しても、そのフィールドがモデルに存在しない場合、ビット・ストリームの再作成は失敗します。

ResetContentDescriptor ノードについては、以下の点に注意してください

  • メッセージ内容は変更されない。 変更されるのは、次回のパーサーの起動時にビット・ストリームを構文解析する方法を指定するメッセージ・プロパティーです。
  • メッセージの形式は変換されない。 たとえば、着信メッセージの「メッセージ形式 (Message Format)」が XML であり、発信メッセージの「メッセージ形式 (Message Format)」が CWF であっても、ResetContentDescriptor ノードは再フォーマットを行いません。 パーサーが起動され、メッセージ内に XML タグを保存する着信 XML メッセージのビット・ストリームが再作成されます。 メッセージが後続のノードにより再構文解析されるときには、XML タグは無効となり再構文解析は失敗します。

ワークベンチでは、ResetContentDescriptor ノードは次のアイコンで表されます。

ResetContentDescriptor ノード・アイコン

メッセージ・フロー内でのこのノードの使用

このノードの使用方法を示す例として、BLOB ドメインと MRM ドメイン間でスワップすると想定します。 メッセージ・フローを入力するときに着信メッセージの形式は知られていないので、BLOB パーサーが呼び出されます。 後ほど、メッセージ・フローで、メッセージが MRM ドメインで事前定義されているか判別し、メッセージ・フロー内の後続のノードがメッセージを解析する際に使用する正しい値を、ResetContentDescriptor ノードを使用して設定できます。

以下の表は、一般的な ResetContentDescriptor ノード・プロパティーを示しています。

プロパティー
メッセージ・ドメイン (Message Domain) MRM
メッセージ・ドメインのリセット (Reset Message Domain) 選択されている
メッセージ・セット (Message Set) DH53CU406U001
メッセージ・セットのリセット (Reset Message Set) 選択されている
メッセージ・タイプ (Message Type) m_MESSAGE1
メッセージ・タイプのリセット (Reset Message Type) 選択されている
メッセージ形式 (Message Format) CWF
メッセージ形式のリセット (Reset Message Format) 選択されている

「メッセージ・ドメイン (Message Domain)」は MRM に設定され、メッセージが次回構文解析されるときに MRM パーサーが呼び出されます。 メッセージ・セット、タイプ、および形式は、メッセージ・モデルを定義するメッセージ・テンプレート値であり、すべてのプロパティーは変更する必要があるためにすべてのリセット・チェック・ボックスが選択されています。

ResetContentDescriptor ノードにより、入力メッセージに関連した BLOB パーサーはメッセージの物理ビット・ストリーム (メッセージの論理ツリー表記ではない) を構成し、このビット・ストリームは後で MRM パーサーに渡されます。 次に、MRM パーサーは、ResetContentDescriptor ノードで指定されているメッセージ・テンプレート (「メッセージ・セット (Message Set)」、「メッセージ・タイプ (Message Type)」、および「メッセージ形式 (Message Format)」) を使用して、ビット・ストリームを構文解析します。

ResetContentDescriptor ノードの構成

ResetContentDescriptor ノードのインスタンスをメッセージ・フローに入れると、ResetContentDescriptor ノードを構成することができます。 エディター・ビューでノードを右マウス・ボタンでクリックし、「プロパティー (Properties)」をクリックします。 ノードの基本プロパティーが表示されます。

値を入力する必要のある (デフォルト値が定義されていない) すべての必須プロパティーには、プロパティー・ダイアログにアスタリスクが表示されます。

以下のように ResetContentDescriptor ノードを構成します。

  1. 異なるパーサーをメッセージと関連付けたい場合、「メッセージ・ドメイン (Message Domain)」に新しいドメインを以下から指定します。
    • MRM
    • XML
    • JMSMap
    • JMSStream
    • BLOB

    状況により、ユーザー定義のパーサーを指定することもできます。

    「メッセージ・ドメインのリセット (Reset Message Domain)」チェック・ボックスを選択します。

  2. MRM パーサーがメッセージを再構文解析する場合、入力メッセージと関連付けられるモデルの他のプロパティーを指定し、それぞれのフィールドの下にある「リセット... (Reset...)」チェック・ボックスを選択します。 MRM パーサーがすでに入力メッセージと関連付けられている場合、変更するプロパティーのみを指定する必要があります。
    1. 「メッセージ・セット (Message Set)」にメッセージ・セットを入力します。 使用可能なメッセージ・セットのドロップダウン・リストから値を選択します (メッセージ・セットの名前と ID が表示されます)。
    2. 「メッセージ・タイプ (Message Type)」にメッセージの ID を入力します。 この ID は、エディター・ビューのメッセージのプロパティーにあります。 メッセージ ID は、メッセージの作成時に指定したものです。 メッセージ・プロパティーに示されているとおりに ID を入力してください。
    3. 「メッセージ形式 (Message Format)」フィールドにメッセージの形式を入力します。 これは MRM パーサーのワイヤー形式を指定します。 ドロップダウン・リストからいずれかの形式を選択できます (ドロップダウン・リストには、前に指定したメッセージ・セットで定義されている形式の ID がリストされています)。

    これらのプロパティーは、ResetContentDescriptor ノードを通過するメッセージのメッセージ・ヘッダーに必要な ドメイン、セット、タイプ、および形式を設定します。 ただし、この設定が行えるのは、該当するヘッダーがすでに存在する場合だけです。 メッセージに MQRFH2 ヘッダーがない場合、ノードはヘッダーを作成しません。

  3. XML、JMS、または BLOB パーサーを指定した場合、「メッセージ・セット (Message Set)」「メッセージ・タイプ (Message Type)」、および「メッセージ形式 (Message Format)」はブランクにしておきます。
  4. 簡略説明または詳細説明 (あるいはその両方) を入力するには、プロパティー・ダイアログ・ナビゲーターの「説明 (Description)」を選択します。
  5. 「適用」をクリックすると、プロパティー・ダイアログを閉じずに ResetContentDescriptor ノードが変更されます。 「OK」をクリックすると、変更を適用してプロパティー・ダイアログを閉じます。

    「キャンセル (Cancel)」をクリックすると、ダイアログを閉じてプロパティーの変更をすべて破棄します。

ターミナルおよびプロパティー

ResetContentDescriptor ノードのターミナルについては、次の表に説明されています。

ターミナル 説明
In ノードが処理するメッセージを受け入れる入力ターミナル。
Failure ノードによりエラーが検出された場合に、メッセージがルーティングされる出力ターミナル。
Out 新しいパーサーがプロパティーにより示される場合、メッセージがルーティングされる出力ターミナル。

以下の表でノードのプロパティーを説明します。M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力することが必要なら、プロパティー・ダイアログにアスタリスクのマークが付きます)。 C の見出しの列は、プロパティーが構成可能 かどうかを示します (メッセージ・フローを bar ファイルに追加してデプロイするとき、値を変更できます)。

ResetContentDescriptor ノードの「基本 (Basic)」プロパティーについては、次の表に説明されています。

プロパティー M C デフォルト 説明
メッセージ・ドメイン (Message Domain) いいえ いいえ   再構文解析したいメッセージと関連付けられたメッセージ・ドメイン。
メッセージ・ドメインのリセット (Reset Message Domain) はい いいえ 選択されていない メッセージ・ドメインをリセットするかどうか。 チェック・ボックスを選択すると、このアクションが実行されます。
メッセージ・セット (Message Set) いいえ いいえ   再構文解析したいメッセージと関連付けられたメッセージ・セット。
メッセージ・セットのリセット (Reset Message Set) はい いいえ 選択されていない メッセージ・セットをリセットするかどうか。 チェック・ボックスを選択すると、このアクションが実行されます。
メッセージ・タイプ (Message Type) いいえ いいえ   再構文解析したいメッセージと関連付けられたメッセージ・タイプ。
メッセージ・タイプのリセット (Reset Message Type) はい いいえ 選択されていない メッセージ・タイプをリセットするかどうか。 チェック・ボックスを選択すると、このアクションが実行されます。
メッセージ形式 (Message Format) いいえ いいえ   再構文解析したいメッセージと関連付けられたメッセージ形式。
メッセージ形式のリセット (Reset Message Format) はい いいえ 選択されていない メッセージ形式をリセットするかどうか。 チェック・ボックスを選択すると、このアクションが実行されます。

ResetContentDescriptor ノードの「説明 (Description)」プロパティーについては、次の表に説明されています。

プロパティー M C デフォルト 説明
簡略説明 (Short Description) いいえ いいえ   ノードの簡単な説明
詳細説明 (Long Description) いいえ いいえ   メッセージ・フロー内のノードの目的を説明するテキスト

関連概念
メッセージ・フロー
パーサー
メッセージのモデル化

関連タスク
使用するノードの決定
メッセージ・フローのエラー処理