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