次の方法で共有


サブスクリプション管理 API

サブスクリプション管理インターフェイスを構築する際には、サブスクライバ、サブスクライバ デバイス、およびサブスクリプションの 3 種類のオブジェクトを管理します。カスタム アプリケーションでは、Notification Services のサブスクリプション管理 API を使用して、これらのオブジェクトを作成、変更、および削除します。API は内部で、サブスクライバとサブスクリプションの情報をインスタンス データベースとアプリケーション データベースに格納して操作します。

また、Notification Services には、インスタンス データベースとアプリケーション データベースのビューも用意されています。これらのビューを使用すると、基本的なサブスクライバ、サブスクライバ デバイス、およびサブスクリプションを直接データベースに追加できます。これらのビューは、主として、アプリケーションの開発とテストのために用意されています。

ms166467.note(ja-jp,SQL.90).gif重要 :
サブスクライバ、サブスクライバ デバイス、およびサブスクリプションのデータの管理には、常に 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 インスタンスの個々のサブスクライバを表します。

SubscriberEnumeration

指定した Notification Services インスタンスのサブスクライバのコレクションを表します。

SubscriberDevice

通知を受け取ることができるデバイスを表します。

SubscriberDeviceEnumeration

サブスクライバ デバイスのコレクションを表します。

Subscription

1 つのサブスクリプションを表すクラスです。

SubscriptionEnumeration

サブスクリプションのコレクションを表します。

SubscriberLocale

通知の書式設定を行うための地理的な地域を表します。

SubscriberLocaleEnumeration

特定の Notification Services インスタンスで使用できるサブスクライバ ロケールのコレクションを表します。

TimeZone

定期的なサブスクリプションに使用される有効なタイム ゾーンを表します。

TimeZoneEnumeration

指定した Notification Services インスタンスで使用できるタイム ゾーンのコレクションを表します。

SubscriptionClass

指定したアプリケーションに指定されているサブスクリプション クラスを表します。

SubscriptionClassEnumeration

指定した Notification Services アプリケーションのサブスクリプション クラスのコレクションを表します。

NSApplication

Notification Services アプリケーションを表します。

NSInstance

Notification Services インスタンスを表します。

NSException

Notification Services アプリケーションのエラーが発生したときにスローされる例外を表します。

サブスクリプション条件クラス

条件アクションを使用するルールがサブスクリプション クラスに含まれている場合は、Microsoft.SqlServer.NotificationServices.Rules 名前空間のクラスを使用して、ユーザーが条件を定義できるようにします。

クラス 説明

AndCondition

ブール論理演算の AND を使用して評価される条件のセットを定義します。

BetweenLeafCondition

テスト引数が最小値から最大値の間にある (最小値と最大値を含む) 場合に、true に評価されます。

BooleanLeafCondition

ブール値の引数が true の場合に true に評価されます。

ConstantValue

あらかじめ決められた値を持つ引数を表します。

ExpressionOperator

式の演算子です。

ExpressionValue

単純な算術式の評価によって値が決まる引数を表します。

FieldValue

入力フィールドから値を取得する条件引数を表します。

FilterAction

フィルタ操作です。

FilterRule

条件評価の結果に基づいて入力テーブルまたは入力ビューのフィルタを定義します。フィルタ ルールは、1 つ以上のフィルタ ステートメントで構成されます。

FilterStatement

"IF Condition THEN Action" という形式の論理ステートメントを記述します。

FunctionValue

Transact-SQL ユーザー定義関数から値を取得する引数を表します。

IsNullLeafCondition

引数が NULL である場合に true に評価されます。

LinkLeafCondition

関連付けられているフィルタ ルールの結果に対して操作を評価します。

LinkLeafOperator

リンクのリーフ条件の演算子です。

NotCondition

別の条件の結果を否定します。

OrCondition

ブール論理演算の OR を使用して論理的に評価される条件のセットを定義します。

PropertyRule

入力テーブルまたは入力ビューの行のスカラ値に評価されるロジックを定義します。プロパティ ルールは、1 つ以上のプロパティ ステートメントで構成されています。

PropertyStatement

"IF Condition THEN Result" (結果はスカラ値) という形式の論理ステートメントを記述します。

RulesException

この名前空間のオブジェクトによってスローされる例外を表します。

RuleValue

他のルールの評価から値を取得する引数を表します。

SimpleLeafCondition

関係演算子を使って 2 つの引数を比較し、ブール値の結果を返します。

SimpleOperator

単純なリーフ条件の演算子です。

TableInputType

ルールの入力として使用されるテーブルを記述します。

ViewInputType

ルールの入力として使用されるビューを記述します。

サブスクリプション管理クラス

上記のクラスは、サブスクライバ、サブスクライバ デバイス、およびサブスクリプションのデータを管理するためのものです。Notification Services のインスタンスを管理するためのアプリケーションを作成する場合は、次に示す Microsoft.SqlServer.Management.Nmo 名前空間のクラスを使用して、サブスクライバとサブスクリプションを有効および無効にします。

クラス 説明

Instance

サブスクライバの管理を有効および無効にするためのメソッドを提供します。

Application

サブスクリプションの管理を有効および無効にするためのメソッドを提供します。

サブスクリプション管理ビュー

Notification Services は、サブスクライバのデータを管理するためのビューを公開します。これらは、主にアプリケーションのテストのために使用されます。詳細については、次のトピックを参照してください。

参照

概念

サブスクリプション管理プロジェクトの開始

その他の技術情報

サブスクリプション管理インターフェイスの開発
サブスクライバの管理
サブスクライバ デバイスの管理
サブスクリプション データの管理

ヘルプおよび情報

SQL Server 2005 の参考資料の入手