次の方法で共有


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

適用対象:SQL ServerAzure SQL Managed Instance

SQL Server には、処理すべきメッセージがキューに格納されていることを外部アプリケーションに通知するためのキュー アクティブ化イベントが用意されています。 このトピックでは、イベントについて説明し、そのイベントの受信方法や、そのイベントに対する応答方法についても説明します。

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

SQL Server には QUEUE_ACTIVATION イベントが含まれています。 このイベントは、別のキュー リーダーに役立つ作業があることを報告します。 アクティブ化イベントには、キューの名前と、そのキューを含むデータベース名およびスキーマ名が含まれています。 外部プログラムは、この情報に基づいて適切なプログラムを開始し、キューからデータを読み取ります。

SQL Server は、キューから読み取る容量または外部プロセスの数を追跡できません。 そのため、SQL Server では、アクティブ化が必要である限り、キュー アクティブ化イベントを定期的に作成します。

外部アプリケーションからのアクティブ化イベントを監視する

イベントベースのアクティブ化を使用する外部アプリケーションでは、通常、サービスのメッセージを受信するキューでイベント通知を作成します。 外部アプリケーションは、アクティブ化メッセージを受信するためのサービスとキューを作成し、そのキューでQUEUE_ACTIVATIONイベントを報告するメッセージを監視します。

この戦略により、外部アプリケーションは Service Broker に組み込まれているアクティブ化ロジックを使用して、キュー リーダーの作業が増えるタイミングを判断できます。 さらに、1 つの外部アプリケーションで複数のキューのアクティブ化を監視し、アクティブ化が必要なときに適切なプログラムを開始できます。