サブスクリプション管理 API
サブスクリプション管理インターフェイスを構築する際には、サブスクライバ、サブスクライバ デバイス、およびサブスクリプションの 3 種類のオブジェクトを管理します。カスタム アプリケーションでは、Notification Services のサブスクリプション管理 API を使用して、これらのオブジェクトを作成、変更、および削除します。API は内部で、サブスクライバとサブスクリプションの情報をインスタンス データベースとアプリケーション データベースに格納して操作します。
また、Notification Services には、インスタンス データベースとアプリケーション データベースのビューも用意されています。これらのビューを使用すると、基本的なサブスクライバ、サブスクライバ デバイス、およびサブスクリプションを直接データベースに追加できます。これらのビューは、主として、アプリケーションの開発とテストのために用意されています。
重要 : |
---|
サブスクライバ、サブスクライバ デバイス、およびサブスクリプションのデータの管理には、常に API またはビューを使用します。基になるテーブルを直接操作しないでください。 |
サブスクリプション管理 API
以下の図に、サブスクリプション管理インターフェイスがサブスクリプション管理オブジェクトを使用して、Notification Services と通信する方法を示します。
- Subscriber オブジェクトは、単一のサブスクライバを表します。サブスクライバは、サブスクライバ ID によって識別されるユーザーまたはプロセスです。サブスクライバのデータは、アプリケーションの間でサブスクライバを共有できるように、インスタンス データベースに格納されます。
- SubscriberDevice オブジェクトは、サブスクライバの単一のサブスクライバ デバイスを表します。サブスクライバ デバイスは、電子メール アドレスなどの通知の配信先です。
各サブスクライバに、少なくとも 1 つのサブスクライバ デバイスが必要です。サブスクライバ デバイスのデータは、サブスクライバのデータと同様に、インスタンス データベースに格納されます。
各サブスクライバ デバイスには名前とアドレスがあり、配信チャネルに関連付けられています。配信チャネルは、特定の SMTP (Simple Mail Transfer Protocol) ゲートウェイなど、デバイスに通知を配信するために使用する特定の配信サービスを表します。Notification Services のインスタンスを構成するときに、配信チャネルを構成します。 - Subscription オブジェクトは、サブスクライバの単一のサブスクリプションを表します。サブスクリプションは、サブスクライバが受け取る通知を定義します。サブスクリプションは特定のサブスクリプション クラスを対象とし、イベント ドリブン サブスクリプションにも定期的なサブスクリプションにも指定できます。サブスクリプションでは、サブスクリプション クラスのフィールドの値を定義します。
サブスクリプション クラスが条件アクションを使用する場合は、サブスクリプションの通知を生成する必要があるかどうかを判断するための条件をサブスクリプションで指定することもできます。条件の開発をサポートするには、アプリケーションで Microsoft.SqlServer.NotificationServices.Rules 名前空間のクラスを使用する必要があります。
サブスクリプションのデータは、アプリケーション データベースに格納されます。
サブスクリプション管理クラス
サブスクリプション管理インターフェイスを開発するには、次に示す Microsoft.SqlServer.NotificationServices 名前空間のクラスを使用します。
クラス | 説明 |
---|---|
Subscriber |
指定した Notification Services インスタンスの個々のサブスクライバを表します。 |
指定した Notification Services インスタンスのサブスクライバのコレクションを表します。 |
|
SubscriberDevice |
通知を受け取ることができるデバイスを表します。 |
サブスクライバ デバイスのコレクションを表します。 |
|
Subscription |
1 つのサブスクリプションを表すクラスです。 |
サブスクリプションのコレクションを表します。 |
|
通知の書式設定を行うための地理的な地域を表します。 |
|
特定の Notification Services インスタンスで使用できるサブスクライバ ロケールのコレクションを表します。 |
|
定期的なサブスクリプションに使用される有効なタイム ゾーンを表します。 |
|
指定した Notification Services インスタンスで使用できるタイム ゾーンのコレクションを表します。 |
|
指定したアプリケーションに指定されているサブスクリプション クラスを表します。 |
|
指定した Notification Services アプリケーションのサブスクリプション クラスのコレクションを表します。 |
|
Notification Services アプリケーションを表します。 |
|
Notification Services インスタンスを表します。 |
|
Notification Services アプリケーションのエラーが発生したときにスローされる例外を表します。 |
サブスクリプション条件クラス
条件アクションを使用するルールがサブスクリプション クラスに含まれている場合は、Microsoft.SqlServer.NotificationServices.Rules 名前空間のクラスを使用して、ユーザーが条件を定義できるようにします。
クラス | 説明 |
---|---|
ブール論理演算の AND を使用して評価される条件のセットを定義します。 |
|
テスト引数が最小値から最大値の間にある (最小値と最大値を含む) 場合に、true に評価されます。 |
|
ブール値の引数が true の場合に true に評価されます。 |
|
あらかじめ決められた値を持つ引数を表します。 |
|
式の演算子です。 |
|
単純な算術式の評価によって値が決まる引数を表します。 |
|
入力フィールドから値を取得する条件引数を表します。 |
|
フィルタ操作です。 |
|
条件評価の結果に基づいて入力テーブルまたは入力ビューのフィルタを定義します。フィルタ ルールは、1 つ以上のフィルタ ステートメントで構成されます。 |
|
"IF Condition THEN Action" という形式の論理ステートメントを記述します。 |
|
Transact-SQL ユーザー定義関数から値を取得する引数を表します。 |
|
引数が NULL である場合に true に評価されます。 |
|
関連付けられているフィルタ ルールの結果に対して操作を評価します。 |
|
リンクのリーフ条件の演算子です。 |
|
別の条件の結果を否定します。 |
|
ブール論理演算の OR を使用して論理的に評価される条件のセットを定義します。 |
|
入力テーブルまたは入力ビューの行のスカラ値に評価されるロジックを定義します。プロパティ ルールは、1 つ以上のプロパティ ステートメントで構成されています。 |
|
"IF Condition THEN Result" (結果はスカラ値) という形式の論理ステートメントを記述します。 |
|
この名前空間のオブジェクトによってスローされる例外を表します。 |
|
他のルールの評価から値を取得する引数を表します。 |
|
関係演算子を使って 2 つの引数を比較し、ブール値の結果を返します。 |
|
単純なリーフ条件の演算子です。 |
|
ルールの入力として使用されるテーブルを記述します。 |
|
ルールの入力として使用されるビューを記述します。 |
サブスクリプション管理クラス
上記のクラスは、サブスクライバ、サブスクライバ デバイス、およびサブスクリプションのデータを管理するためのものです。Notification Services のインスタンスを管理するためのアプリケーションを作成する場合は、次に示す Microsoft.SqlServer.Management.Nmo 名前空間のクラスを使用して、サブスクライバとサブスクリプションを有効および無効にします。
クラス | 説明 |
---|---|
サブスクライバの管理を有効および無効にするためのメソッドを提供します。 |
|
サブスクリプションの管理を有効および無効にするためのメソッドを提供します。 |
サブスクリプション管理ビュー
Notification Services は、サブスクライバのデータを管理するためのビューを公開します。これらは、主にアプリケーションのテストのために使用されます。詳細については、次のトピックを参照してください。
参照
概念
その他の技術情報
サブスクリプション管理インターフェイスの開発
サブスクライバの管理
サブスクライバ デバイスの管理
サブスクリプション データの管理