次の方法で共有


Service Broker サービスの作成

Service Broker サービスの定義には、そのサービスを発信先とするコントラクトの名前が含まれます。"発信先サービス" は、サービスが指定するコントラクトで識別されるタスクに関する要求を受け取るアドレスを表します。"発信側サービス" は、発信先サービスとのメッセージ交換の戻りアドレスを表します。

サービスは、ビジネス プロセスを一連の個別のタスクとして表現したものです。サービス内の各コントラクトは、特定のタスクを表します。サービスは複数のコントラクトを指定できます。また、1 つのコントラクトを複数のサービスで使用することもできます。

各サービスでは、メッセージを格納するためにキューを使用します。サービスに送信されたメッセージは、キューに配信されます。一般に、実装が最も容易なアプリケーションは、1 つのサービスだけが 1 つの特定のキューを使用する場合です。ただし、柔軟性を提供するために、Service Broker では複数のサービスに同じキューを指定できます。この場合は、アプリケーションで同じ型のすべてのメッセージを同じ方法で扱います。または、メッセージの処理方法を決定するために、メッセージ型名とサービス名の両方を調べます。アプリケーションで同じサービスの複数のバージョンをサポートするような場合に、この方法が役に立ちます。

メッセージのネットワーク形式には、サービスの名前が含まれます。そのため、多くの場合、照合順序の問題や名前の競合を回避するために、サービス名が選択されます。名前付けの詳細については、「Service Broker オブジェクトの名前付け」を参照してください。

サービスを作成するには、次の操作を行う必要があります。

  1. 送受信可能なデータを定義するメッセージ型を作成します。

  2. 特定のタスクを実現するためにエンドポイントが送信でき、使用できるメッセージ型を識別するコントラクトを作成します。

  3. 特定のタスクを実現するために、必要に応じてメッセージを受信、処理、および送信するアプリケーションを作成します。

  4. サービスに着信するメッセージを格納するためのキューを作成します。キューをアクティブ化ストアド プロシージャに関連付けると、ストアド プロシージャが自動的にアクティブになり、着信時にメッセージが処理されます。

  5. サービスを作成し、サービスのメッセージを受信するキューに関連付けます。このサービスでは、他のサービスの代わりに実行するタスクを定義するコントラクトを公開します。他のサービスから要求するタスクのコントラクトを指定する必要はありません。

サービスの作成に関係する正確な手順は、サービスの具体的なニーズによってやや異なることがあります。たとえば、イベント通知を処理するサービスを作成するときは、メッセージ型やコントラクトが SQL Server によって既に定義されているので作成する必要はありません。