メッセージ型
Service Broker を使用するアプリケーションは、メッセージ交換の一部として相互にメッセージを送信することにより通信を行います。メッセージ交換の参加者には、各メッセージの名前と内容に関する取り決めが必要です。メッセージ型オブジェクトは、メッセージ型の名前とメッセージに含まれるデータの型を定義します。メッセージ型は、そのメッセージ型が作成されたデータベースに保持されます。メッセージ交換に参加する各データベースで同じメッセージ型を作成できます。
各メッセージ型は、SQL Server が同じ型のメッセージに対して実行する検証を指定します。SQL Server では、各メッセージが有効な XML を含んでいるか、特定のスキーマに準拠する XML を含んでいるか、またはデータをまったく含んでいないかを検証できます。任意のデータまたはバイナリ データの場合は、SQL Server がメッセージの内容を検証しないようにメッセージ型を指定できます。
検証は、送信先のサービスがメッセージを受信したときに実行されます。メッセージの内容が指定された検証に一致しない場合、Service Broker はメッセージを送信したサービスにエラー メッセージを返します。
![]() |
---|
指定された検証に関係なく、アプリケーションは、メッセージの内容がアプリケーションにとって適切かどうか、プログラムでメッセージを使用する前に検証する必要があります。 |
空のメッセージ型の場合、メッセージ本体にデータを含めることはできません。適切な形式の XML を指定したメッセージ型の場合、メッセージ本体は適切な形式の XML である必要があります。特定のスキーマ コレクションに準拠する XML を指定したメッセージ型の場合、メッセージ本体はコレクション内のいずれかのスキーマに対して有効となる適切な形式の XML を含む必要があります。検証を指定しないメッセージ型の場合、SQL Server は、バイナリ データ、XML、空のメッセージなど任意のメッセージ内容を受け入れます。
Service Broker は、DEFAULT という名前の組み込みメッセージ型を提供します。Service Broker の SEND コマンドでメッセージ型が指定されていない場合、DEFAULT メッセージ型がシステムで使用されます。
参照
概念
その他の技術情報
CREATE MESSAGE TYPE (Transact-SQL)