ファイル システム監視イベント プロバイダの定義
ファイル システム監視イベント プロバイダを使用するには、アプリケーション定義でホストされるイベント プロバイダを定義し、イベント フィールドにイベント データをマップする Transact-SQL の注釈付き XML スキーマ ファイルを作成する必要があります。
プロパティ
ファイル システム監視イベント プロバイダのプロパティを定義する場合は、次のガイドラインに従ってください。
- ProviderName (必須) は、アプリケーション内で一意な名前にする必要があります。
- ClassName (必須) は、FileSystemWatcherProvider にする必要があります。
- AssemblyName プロパティは使用しないでください。Notification Services は、Microsoft.SqlServer.NotificationServices.dll アセンブリで標準イベント プロバイダ情報を検索します。
- SystemName (必須) は、通常、ホストされるイベント プロバイダを実行するコンピュータの名前です。詳細については、「ホストされるイベント プロバイダの定義」を参照してください。
- タイムアウト値は定義しないでください。ファイル システム監視イベント プロバイダには、独自のタイムアウトと再試行のロジックがあります。
- スケジュールは定義しないでください。ファイル システム監視イベント プロバイダは連続するイベント プロバイダであるため、スケジュールをサポートしません。
引数
ファイル システム監視イベント プロバイダには、初期化パラメータとして使用される名前付き引数が 7 つあります。これらは任意の順序で指定することができます。
- WatchDirectory (必須) は、イベント プロバイダが監視するディレクトリの完全なパスと名前を値として指定します。標準または UNC (Universal Naming Convention) の両方の名前付け規則が使用できます。
- EventClassName (必須) は、このイベント プロバイダがイベントを送信するイベント クラスの名前を指定します。
- SchemaFile (必須) は、XML ファイル データを適切なイベント形式に変換する際に使用される、Transact-SQL の注釈付き XML スキーマが含まれるファイルへの完全なパスを指定します。詳細については、「ファイルの検証」を参照してください。
メモ : SchemaFile 引数で指定される Transact-SQL の注釈付き XML スキーマは、イベント クラスで定義されるフィールドをすべて処理する必要があります。スキーマ ファイルにイベント フィールドがない場合、ファイル システム監視イベント プロバイダでエラー ("80004005: ステートメントは終了されました") が発生し、.err ファイルが監視対象ディレクトリに作成されます。 - RetryAttempts (省略可) は、キューからファイルを削除するまでにロックされたファイルへのアクセスを試みる回数を指定します。この値は整数で指定し、既定値は 10 です。詳細については、「ファイルのピックアップおよび再試行ロジック」を参照してください。
- RetryQueueOccupancy (省略可) は、再試行キュー内に同時に格納できるファイル数を指定します。この値は整数で指定し、既定値は 1024 です。
- RetryPeriod (省略可) は、イベント プロバイダがキューを処理する頻度を指定します。この値には、スレッドが終了してから新しいスレッドが開始されるまでの時間をミリ秒単位で指定します。この値は整数で指定し、既定値は 10,000 ミリ秒 (10 秒) です。値が 0 の場合は、プロバイダの開始時に 1 回再試行が行われます。
- RetryWorkload (省略可) は、1 回の再試行期間に処理できるキュー内の最大ファイル数を指定します。この値は整数で指定し、既定値は 1024 です。
ホストされるイベント プロバイダの定義の詳細については、「ホストされるイベント プロバイダの定義」を参照してください。
ファイル システム監視イベント プロバイダの定義の例
次の例は、アプリケーション定義ファイル (ADF) で StockWatcher という名前のファイル システム監視イベント プロバイダを定義する方法を示しています。
<Providers>
<HostedProvider>
<ProviderName>StockWatcher</ProviderName>
<ClassName>FileSystemWatcherProvider</ClassName>
<SystemName>NSSERVER01</SystemName>
<Arguments>
<Argument>
<Name>WatchDirectory</Name>
<Value>C:\StockInfo\NewEvents</Value>
</Argument>
<Argument>
<Name>EventClassName</Name>
<Value>StockEvents</Value>
</Argument>
<Argument>
<Name>SchemaFile</Name>
<Value>C:\Schemas\StockEventSchema.xsd</Value>
</Argument>
<Argument>
<Name>RetryAttempts</Name>
<Value>15</Value>
</Argument>
<Argument>
<Name>RetryQueueOccupancy</Name>
<Value>100</Value>
</Argument>
<Argument>
<Name>RetryPeriod</Name>
<Value>50000</Value>
</Argument>
<Argument>
<Name>RetryWorkload</Name>
<Value>100</Value>
</Argument>
</Arguments>
</HostedProvider>
</Providers>
参照
概念
その他の技術情報
ファイル システム監視イベント プロバイダ
イベント プロバイダの定義
標準イベント プロバイダ