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