定义文件系统观察器事件提供程序

若要使用文件系统观察器事件提供程序,您必须在应用程序定义中定义宿主事件提供程序,并且必须开发 Transact-SQL 批注的 XML 架构文件(该文件将事件数据映射到事件字段)。

属性

当定义文件系统观察器事件提供程序的属性时,请使用下列指南。

  • ProviderName(必需)必须是应用程序内的唯一名称。
  • ClassName(必需)必须是 FileSystemWatcherProvider
  • 不要使用 AssemblyName 属性。Notification Services 将在 Microsoft.SqlServer.NotificationServices.dll 程序集中查找标准事件提供程序信息。
  • SystemName(必需)通常是将运行该宿主事件提供程序的计算机的名称。有关详细信息,请参阅定义宿主事件提供程序
  • 不要定义超时值。文件系统观察器事件提供程序具有它自己的超时和重试逻辑。
  • 不要定义计划。文件系统观察器事件提供程序是一个连续的事件提供程序,不支持计划。

参数

文件系统观察器事件提供程序具有七个作为初始化参数使用的命名参数。您可以按任意顺序指定这些参数:

  • WatchDirectory(必需)将事件提供程序监视的目录的完整路径和名称指定为其值。可以使用标准的命名约定或通用命名约定 (UNC) 的命名约定。
  • EventClassName(必需)指定该事件提供程序针对其提交事件的事件类的名称。
  • SchemaFile(必需)指定包含 Transact-SQL 批注的 XML 架构(用于将 XML 文件数据转换为适当的事件格式)的文件的完整路径。有关详细信息,请参阅文件验证
    ms171351.note(zh-cn,SQL.90).gif注意:
    SchemaFile 参数中提供的 Transact-SQL 批注的 XML 架构必须处理事件类中定义的所有字段。如果事件字段从架构文件中丢失,则文件系统观察器事件提供程序失败,并出现错误“80004005:语句已终止”,而且在观察器目录中创建一个 .err 文件。
  • RetryAttempts(可选)指定在从队列中删除已锁定的文件之前尝试访问该文件的次数。该值是一个整数,默认值为 10。有关详细信息,请参阅文件拾取逻辑和重试逻辑
  • RetryQueueOccupancy(可选)指定重试队列中可以同时存在的文件数。该值是一个整数,默认值为 1024。
  • RetryPeriod(可选)指定事件提供程序处理队列的频率。该值以毫秒为单位,指定了线程结束与新线程开始之间的时间间隔。该值是一个整数,默认值为 10000 毫秒(即 10 秒)。如果值为 0,则在提供程序启动时执行单个重试尝试。
  • RetryWorkload(可选)指定队列中可在单个重试期间处理的最大文件数。该值是一个整数,默认值为 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>

请参阅

概念

文件拾取逻辑和重试逻辑
文件验证

其他资源

文件系统观察器事件提供程序
定义事件提供程序
标准事件提供程序

帮助和信息

获取 SQL Server 2005 帮助