BizTalk メッセージ コンテキストのプロパティについて
ドキュメントを受信すると、BizTalk Server アダプターは、そのドキュメントの BizTalk メッセージを作成します。 BizTalk メッセージには、受信したメッセージと共に、メッセージ コンテキストが含まれます。 メッセージ コンテキストは、BizTalk Server がドキュメントを処理する際に使用する、さまざまなプロパティのコンテナーです。 メッセージ コンテキストの各プロパティは、名前、名前空間、および値の 3 つで構成されています。 たとえば、次のメッセージ コンテキスト プロパティは、ドキュメントのインターチェンジ ID を示します。
<Property Name="InterchangeID" Namespace="http://schemas.microsoft.com/BizTalk/2003/system-properties" Value="{AC07BF30-2F1A-42B0-8390-191EF38BA839}"/>
メッセージ コンテキスト プロパティは、メッセージが BizTalk Server を通過する際に、メッセージの有効期間全体にわたってメッセージ コンテキストに追加されます。
BizTalk で使用されるメッセージ コンテキスト プロパティには、以下に示す 2 種類があります。
プロパティ フィールド
プロパティ フィールドは、BizTalk メッセージング エンジンが、ドキュメントのルーティング、メッセージの追跡、およびオーケストレーションでの評価のために使用する、メッセージ コンテキスト プロパティです。 Visual Studio で使用できるBizTalk Server スキーマ エディターでドキュメントのスキーマを編集することで、ドキュメント内のフィールドをプロパティ フィールドとしてメッセージ コンテキストに明示的に昇格させることができます。 ドキュメントのフィールドを、プロパティ フィールドとしてメッセージ コンテキストに書き込むには、ドキュメント スキーマにプロパティ スキーマが関連付けられている必要があります。 プロパティ フィールドは 255 文字までに制限されています。 メッセージ コンテキストの Property フィールドの IsPromoted プロパティは True に設定 されています。
識別フィールド
識別フィールドは、個別のプロパティ スキーマを必要とせず、オーケストレーションからのアクセスのみ可能なメッセージ コンテキスト プロパティです。 識別フィールドは、ルーティングまたは追跡のために使用できません。 識別フィールドは個別のプロパティ スキーマを必要としないため、オーケストレーション エンジンによる識別フィールドの評価は、オーケストレーション エンジンによるプロパティ フィールドの評価より、オーバーヘッドが少なくて済みます。 プロパティ フィールドの評価には XPath クエリが必要ですが、識別フィールドの評価では、パイプラインの逆アセンブラーによりコンテキストの識別フィールドに値が設定され、オーケストレーション エンジンでキャッシュ値が読み取られるため、XPath クエリは必須ではありません。 ただし、オーケストレーション エンジンがコンテキストのプロパティを見つけられない場合、オーケストレーション エンジンは、値を見つけるために XPath クエリを開始します。 識別フィールドには、サイズの制限もありません。 Message コンテキストの識別フィールドの IsPromoted プロパティは False に設定 されています。
プロパティ フィールドと識別フィールドの違いの概要
次の表は、プロパティ フィールドと識別フィールドの相違点および類似点をまとめたものです。
属性 | プロパティ フィールド | 識別フィールド |
---|---|---|
IsPromoted Property | True | False |
サイズの制限 | 255 文字 | 制限なし |
ルーティングのための使用 | はい | いいえ |
追跡のための使用 | はい | いいえ |
オーケストレーションでの使用 | はい | はい |
プロパティ スキーマの必要性 | はい | いいえ |
パイプラインおよびポートからのアクセス | はい | いいえ |