次の方法で共有


イベント クラスの記録の定義

イベント記録は、アプリケーション データベースの補足イベント テーブルです。これらのテーブルは、定期的なサブスクリプションで使用するイベント データの格納や、イベント履歴の保存に使用できます。

イベント記録を使用する理由

Notification Services では、イベントはイベント バッチとして到着します。たとえば、Transact-SQL クエリを使用してイベントを取得している場合は、1 つ以上のレコードを返す各クエリによって 1 つのイベント バッチが作成されます。

Notification Services が通知を生成するときには、最新のイベント バッチのみが使用され、そのバッチは完了としてマークされます。システム障害やシステムの再起動などの限られた状況を除いては、そのイベント バッチは二度と使用されません。古いデータを削除するためのデータ削除処理 (Vacuumer 処理) のスケジュールが定義されている場合は、これらの完了したイベント バッチをデータベースから削除できます。

このモデルは、現在のイベントに対してすべてのサブスクリプションを照合して通知を生成するイベント トリガ通知では、問題なく機能します。しかし、アプリケーションで定期的なサブスクリプションをサポートする場合は、定期的なサブスクリプションがいつ評価されるかに関係なく、関連するイベント データをいつでも使用できるように、イベント データを何らかの方法で保持する必要があります。

イベント記録は、イベント データの格納場所を提供します。たとえば、定期的なサブスクリプションをサポートする天気アプリケーションでは、記録を使用して各都市の最新の天気データを格納し、新しい天気データが到着するたびにこのデータを更新できます。スケジュールに従ってサブスクリプションが評価されるたびに、定期的なサブスクリプション ルールによってイベント記録から最新のデータが取得されます。

また、イベント記録は以下の目的で使用することもできます。

  • すべてのイベントをアーカイブし、通知を生成するときに、重複するイベントがないかどうかを確認する。
  • すべてのイベントをアーカイブし、そのデータを使用してレポートを作成する。
  • 上限と下限の値をアーカイブし、通知を生成するときに、現在のイベントがその範囲内かどうかを確認する。
ms171286.note(ja-jp,SQL.90).gifメモ :
データ削除処理では、古いデータは記録から削除されません。記録のデータを管理するためのプロシージャとジョブを独自に作成する必要があります。

イベント記録の実装

イベント クラスの記録を実装するには、記録テーブルとイベント記録ルールを定義する必要があります。テーブルは、それぞれが 1 つの記録です。イベント記録ルールは、記録のデータを維持します。

このセクションのトピック

トピック 説明

イベント記録テーブルの定義

イベント記録として使用されるテーブルを作成する方法について説明します。

イベント記録ルールの定義

イベント記録テーブルを維持するルールを作成する方法について説明します。

定期的なサブスクリプションでのイベント記録の使用例

定期的なサブスクリプションでイベント記録を使用する方法を示す例を紹介します。

イベント データの比較による通知の重複防止の例

イベント記録を使用して、通知を生成する前に、重複するイベントの有無を確認する方法を示す例を紹介します。

イベント データの最高値を使用して通知の重複を防止する例

イベント記録を使用して、通知を生成する前に、前のイベント データの値を確認する方法を示す例を紹介します。

参照

概念

コア イベント クラス プロパティの定義
イベント クラスのインデックスの定義

その他の技術情報

イベント クラスの定義
Notification Services アプリケーションの定義

ヘルプおよび情報

SQL Server 2005 の参考資料の入手