キュー

キューにはメッセージが格納されます。Service Broker は、サービスへのメッセージを受信すると、該当サービスのキューに挿入します。サービスに送信されたメッセージを取得するには、アプリケーションによってキューからメッセージを受信します。Service Broker はキューを管理し、テーブルと同様のキューのビューを提供します。

各サービスは 1 つのキューと関連付けられています。サービスへのメッセージが到着すると、Service Broker は該当のサービスに関連付けられたキュー内にメッセージを格納します。

各メッセージはキュー内の 1 つの行に格納されます。行には、メッセージの内容、メッセージ型の情報、メッセージの宛て先のサービス、メッセージが従うコントラクト、メッセージに対して実行される検証、そのメッセージが含まれるメッセージ交換、およびキューの内部情報を含みます。アプリケーションは、このメッセージ行の情報を使用し、各メッセージを一意に識別して適切に処理します。

アプリケーションはサービスのキューからメッセージを受信します。メッセージ交換ごとに、キューは送信側がメッセージを送った順序でメッセージを返します。1 回の受信操作で返されるメッセージは、すべて 1 つのメッセージ交換グループに属するメッセージ交換の一部です。結果として、キューは、各メッセージ交換グループごとに 1 セットの、関連するメッセージのセットを保持します。アプリケーションがキューからの受信操作を実行するたびに、キューは関連するメッセージの 1 つのセットを返します。アプリケーションは、特定のメッセージ交換または特定のメッセージ交換グループのメッセージの受信を選択できます。キューは、厳密な先入れ先出しの順序でメッセージを返すのではなく、メッセージ交換ごとにメッセージが送信された順序でメッセージを返します。したがって、アプリケーションにはメッセージの元の順序を復元するためのコードを含む必要はありません。

キューにストアド プロシージャを関連付けることもできます。この場合、キュー内に処理するメッセージがあると、SQL Server はストアド プロシージャをアクティブ化します。SQL Server では、設定された最大値以内の数のストアド プロシージャ インスタンスを開始できます。詳細については、「Service Broker のアクティブ化」を参照してください。