次の方法で共有


Service Broker のアクティブ化

Service Broker のアクティブ化を利用すると、メッセージ トラフィックに合わせて動的にアプリケーションのスケールを変更できます。一般的には、サービスへのトラフィックの変化を予測できない場合、またはサービスが受信するトラフィックに合わせてサービスのスケールを動的に変更する必要がある場合、アプリケーションでアクティブ化を行います。

アプリケーションで行う必要がある作業が発生すると、Service Broker によってアプリケーションが起動されます。

アクティブ化には、内部アクティブ化と外部アクティブ化の 2 種類があります。内部アクティブ化は SQL Server ストアド プロシージャに作用します。つまり、ストアド プロシージャが直接アクティブ化されます。外部アクティブ化は、SQL Server とは独立して実行されるプログラムに作用します。外部アクティブ化では、外部プログラムから別のキュー リーダーを起動することを示す SQL Server イベントが生成されます。

すべての Service Broker アプリケーションでアクティブ化が行われるわけではありません。起動時に大量のリソースを必要とする場合、または不定期に発生するメッセージの応答時間が最重要視される場合、アプリケーションを SQL Server と同時に起動して実行しておくデザインの方が適していることがあります。何度か実行した方がよいタスクについては、定期ジョブとして実行するようにアプリケーションをデザインすることが適している場合があります。Service Broker を使用するアプリケーションを起動する方法の選択の詳細については、「起動方法の選択」を参照してください。

このセクションの内容

トピック 説明

アクティブ化が行われるタイミングについて

Service Broker のアクティブ化処理の 2 つの段階について説明します。

内部アクティブ化のコンテキスト

内部アクティブ化によって開始されたストアド プロシージャの実行コンテキストについて説明します。

イベントベースのアクティブ化

イベントおよびその受信と応答の方法について説明します。

参照

その他の技術情報

sys.dm_broker_activated_tasks
sys.dm_broker_queue_monitors

ヘルプおよび情報

SQL Server 2005 の参考資料の入手