適用対象:SQL Server
Azure SQL Managed Instance
SQL Server には、処理すべきメッセージがキューに格納されていることを外部アプリケーションに通知するためのキュー アクティブ化イベントが用意されています。 このトピックでは、イベントについて説明し、そのイベントの受信方法や、そのイベントに対する応答方法についても説明します。
キューのアクティブ化イベント
SQL Server には QUEUE_ACTIVATION イベントが含まれています。 このイベントは、別のキュー リーダーに役立つ作業があることを報告します。 アクティブ化イベントには、キューの名前と、そのキューを含むデータベース名およびスキーマ名が含まれています。 外部プログラムは、この情報に基づいて適切なプログラムを開始し、キューからデータを読み取ります。
SQL Server は、キューから読み取る容量または外部プロセスの数を追跡できません。 そのため、SQL Server では、アクティブ化が必要である限り、キュー アクティブ化イベントを定期的に作成します。
外部アプリケーションからのアクティブ化イベントを監視する
イベントベースのアクティブ化を使用する外部アプリケーションでは、通常、サービスのメッセージを受信するキューでイベント通知を作成します。 外部アプリケーションは、アクティブ化メッセージを受信するためのサービスとキューを作成し、そのキューでQUEUE_ACTIVATIONイベントを報告するメッセージを監視します。
この戦略により、外部アプリケーションは Service Broker に組み込まれているアクティブ化ロジックを使用して、キュー リーダーの作業が増えるタイミングを判断できます。 さらに、1 つの外部アプリケーションで複数のキューのアクティブ化を監視し、アクティブ化が必要なときに適切なプログラムを開始できます。