SqlDependency.Start メソッド

定義

依存関係の変更通知を受け取るリスナーを開始します。

オーバーロード

Start(String)

接続文字列で指定される SQL Server のインスタンスから依存関係の変更通知を受け取るリスナーを開始します。

Start(String, String)

接続文字列で指定される SQL Server のインスタンスから依存関係の変更通知を受け取るリスナーを、指定した SQL Server Service Broker キューを使用して開始します。

注釈

SqlDependency SQL Server接続でエラーが発生すると、リスナーが再起動します。

メソッドの複数の Start 呼び出しは、次の制限に従って行うことができます。

  • 同じパラメーター (呼び出し元スレッド内の同じ接続文字列と Windows 資格情報) を持つ複数の呼び出しが有効です。

  • 接続文字列が異なる複数の呼び出しは、次の場合に限り有効です。

    • 各接続文字列は異なるデータベースを指定します。

    • 各接続文字列は異なるユーザーを指定します。

    • 呼び出しは、さまざまなアプリケーション ドメインから行われます。

複数のスレッドを使用するアプリケーションで、dbo ロールをSqlDependencyグループに付与せずに異なるユーザー資格情報を表すアプリケーションに対して作業を正しく行うことができます。これは、異なるユーザーが管理者によって作成された通知キューにサブスクライブしてリッスン (または SqlCommandを使用SqlCacheDependency) できるためです。 関連するアプリケーション ドメインが起動したら、サービス/キューを初期化するアクセス許可を持つユーザーの (Windows) 資格情報 (データベースの CREATE QUEUE および CREATE SERVICE のアクセス許可) で開始を呼び出します。 Start が AppDomain ごとに 1 回だけ呼び出されるようにします。それ以外の場合はあいまいさの例外が発生します。 ユーザー スレッドには、通知をサブスクライブするためのアクセス許可 (データベースの SUBSCRIBE QUERY NOTIFICATIONS アクセス許可) が必要です。 SqlDependency は、管理者以外のユーザーのサブスクリプション要求を、管理者によって作成されたサービス/キューに関連付けます。

Start(String)

接続文字列で指定される SQL Server のインスタンスから依存関係の変更通知を受け取るリスナーを開始します。

public:
 static bool Start(System::String ^ connectionString);
public static bool Start (string connectionString);
static member Start : string -> bool
Public Shared Function Start (connectionString As String) As Boolean

パラメーター

connectionString
String

変更通知の取得元である SQL Server のインスタンスの接続文字列。

戻り値

リスナーが正常に初期化された場合は true。互換性のあるリスナーが既に存在する場合は false

例外

connectionString パラメーターが NULL です。

connectionString パラメーターは、このメソッドの以前の呼び出しと同一ですが、他のパラメーターに異なるものがあります。

CLR 内からメソッドが呼び出されました。

必要な SqlClientPermission コード アクセス セキュリティ (CAS: Code Access Security) のアクセス許可が、呼び出し元にありません。

このメソッドの後続の呼び出しは、同一 connectionString パラメーターを指定し、異なるユーザーまたは同一のスキーマを既定としないユーザーで行われました。

いずれかの、基になる SqlClient 例外も発生しました。

注釈

このメソッドは、 パラメーターで指定された SQL Server のインスタンスから依存関係通知を受信するために、 のリスナーAppDomainconnectionString開始します。 このメソッドは、複数のサーバーに対して異なる接続文字列を使用して複数回呼び出される場合があります。

その他の解説については、「」を参照してください Start

こちらもご覧ください

適用対象

Start(String, String)

接続文字列で指定される SQL Server のインスタンスから依存関係の変更通知を受け取るリスナーを、指定した SQL Server Service Broker キューを使用して開始します。

public:
 static bool Start(System::String ^ connectionString, System::String ^ queue);
public static bool Start (string connectionString, string queue);
static member Start : string * string -> bool
Public Shared Function Start (connectionString As String, queue As String) As Boolean

パラメーター

connectionString
String

変更通知の取得元である SQL Server のインスタンスの接続文字列。

queue
String

使用する、既存の SQL Server Service Broker キュー。 null の場合は、既定のキューが使用されます。

戻り値

リスナーが正常に初期化された場合は true。互換性のあるリスナーが既に存在する場合は false

例外

connectionString パラメーターが NULL です。

connectionString パラメーターは、このメソッドの以前の呼び出しと同一ですが、他のパラメーターに異なるものがあります。

CLR 内からメソッドが呼び出されました。

必要な SqlClientPermission コード アクセス セキュリティ (CAS: Code Access Security) のアクセス許可が、呼び出し元にありません。

このメソッドの後続の呼び出しは、同一 connectionString パラメーターを指定しているが、異なるユーザーまたは同一のスキーマを既定としないユーザーで行われました。

いずれかの、基になる SqlClient 例外も発生しました。

注釈

このメソッドは、 パラメーターで指定された SQL Server のインスタンスから依存関係通知を受信するために、 のリスナーAppDomainconnectionString開始します。 このメソッドは、複数のサーバーに対して異なる接続文字列を使用して複数回呼び出される場合があります。

キュー名が指定されていない場合は、 SqlDependency プロセスに複数 AppDomainの が含まれている場合でも、プロセス全体に使用される一時キューとサービスをサーバーに作成します。 キューとサービスは、アプリケーションのシャットダウン時に自動的に削除されます。

その他の解説については、「」を参照してください Start

こちらもご覧ください

適用対象