次の方法で共有


メッセージ型

適用対象: SQL Server Azure SQL Managed Instance

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 メッセージ型がシステムで使用されます。

Service Broker には、エラーとダイアログの状態を報告するために使用される、システム メッセージの型が用意されています。 詳細については、「ブローカーのシステム メッセージ」を参照してください。

関連項目