Share via


メッセージ型

Service Broker を使用するアプリケーションは、メッセージ交換の一部として相互にメッセージを送信することにより通信を行います。メッセージ交換の参加者には、各メッセージの名前と内容に関する取り決めが必要です。メッセージ型オブジェクトは、メッセージ型の名前とメッセージに含まれるデータの型を定義します。メッセージ型は、そのメッセージ型が作成されたデータベースに保持されます。メッセージ交換に参加する各データベースで同じメッセージ型を作成できます。

各メッセージ型は、SQL Server が同じ型のメッセージに対して実行する検証を指定します。SQL Server では、各メッセージが有効な XML を含んでいるか、特定のスキーマに準拠する XML を含んでいるか、またはデータをまったく含んでいないかを検証できます。任意のデータまたはバイナリ データの場合は、SQL Server がメッセージの内容を検証しないようにメッセージ型を指定できます。

検証は、送信先のサービスがメッセージを受信したときに実行されます。メッセージの内容が指定された検証に一致しない場合、Service Broker はメッセージを送信したサービスにエラー メッセージを返します。

ms166066.note(ja-jp,SQL.90).gif重要 :
指定された検証に関係なく、アプリケーションは、メッセージの内容がアプリケーションにとって適切かどうか、プログラムでメッセージを使用する前に検証する必要があります。

空のメッセージ型の場合、メッセージ本体にデータを含めることはできません。適切な形式の XML を指定したメッセージ型の場合、メッセージ本体は適切な形式の XML である必要があります。特定のスキーマ コレクションに準拠する XML を指定したメッセージ型の場合、メッセージ本体はコレクション内のいずれかのスキーマに対して有効となる適切な形式の XML を含む必要があります。検証を指定しないメッセージ型の場合、SQL Server は、バイナリ データ、XML、空のメッセージなど任意のメッセージ内容を受け入れます。

Service Broker は、DEFAULT という名前の組み込みメッセージ型を提供します。Service Broker の SEND コマンドでメッセージ型が指定されていない場合、DEFAULT メッセージ型がシステムで使用されます。

参照

概念

コントラクト
ブローカ メッセージ

その他の技術情報

CREATE MESSAGE TYPE (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手