定义 Analysis Services 事件提供程序

若要使用 Analysis Services 事件提供程序,您必须在应用程序定义中定义宿主事件提供程序。本主题将介绍 Analysis Services 事件提供程序所需的属性值和参数,并提供每种 MDX 查询类型(静态和动态)的示例。

ms171054.note(zh-cn,SQL.90).gif注意:
Analysis Services 事件提供程序连接到指定的 Analysis Services 实例并查询指定的 Analysis Services 数据库。运行事件提供程序的 Windows 服务或应用程序所使用的帐户必须能够连接到实例,并且必须具有数据库中的 SELECT 权限。

属性

当定义 Analysis Services 事件提供程序的属性时,请使用下列指南。

  • ProviderName(必需)必须是应用程序内的唯一名称。
  • ClassName(必需)必须是 AnalysisServicesProvider
  • 不要使用 AssemblyName 属性。Notification Services 将在 Microsoft.SqlServer.NotificationServices.dll 程序集中查找标准事件提供程序信息。
  • SystemName(必需)通常是将运行该宿主事件提供程序的计算机的名称。有关详细信息,请参阅定义宿主事件提供程序
  • 定义超时值(可选)。默认的超时值为五分钟。
  • 定义计划(必需)。有关详细信息,请参阅定义宿主事件提供程序

参数

Analysis Services 事件提供程序采用八个命名参数。您可以按任意顺序指定这些参数:

  • EventClassName(必需)指定该事件提供程序针对其配置为提交事件的事件类的名称。
  • AnalysisServicesInstance(必需)指定 Analysis Services 实例的名称,该实例可位于事件提供程序将连接到的远程计算机上。
  • AnalysisServicesDatabase(必需)指定事件提供程序将查询的 Analysis Services 数据库的名称。
  • MDXQuery 用于静态查询,不应该在动态查询中使用。
    MDXQuery 值是一个收集事件数据作为其值的静态 MDX 查询。查询必须返回具有以下特征的列的二维数据:这些列精确映射到指定事件类的事件字段,并且这些列与指定事件类的事件字段具有相同的顺序。必须返回所有事件字段的值。
  • RowsQuery 指定一个 Transact-SQL 查询,该查询的结果将由 XSL 转换用于动态构造 MDX 查询的 ROWS 轴的元素。不要将此参数用于静态查询。
  • SlicerQuery 指定一个 Transact-SQL 查询,该查询的结果将由 XSL 转换用于动态构造 MDX 查询的切片器部分(MDX WHERE 子句)。不要将此参数用于静态查询。
  • XsltFileName(在使用 RowsQuerySlicerQuery 时需要)是 XSLT 文件名的路径,用于将 RowsQuery(和 SlicerQuery,如果适用)的结果转换为完整的 MDX 查询。有关示例 XSLT 文件,请参阅 Notification Services 的 MDX 查询。如果使用静态 MDX 查询,则不应该使用此参数。

有关定义事件提供程序的详细信息,请参阅定义宿主事件提供程序

静态查询定义

以下来自应用程序定义文件 (ADF) 的 XML 显示了使用静态查询的 Analysis Services 事件提供程序的示例定义。

<HostedProvider>
    <ProviderName>StaticASEventProvider</ProviderName>
    <ClassName>AnalysisServicesProvider</ClassName>
    <SystemName>%NSSystem%</SystemName>
    <Schedule>
        <Interval>P0DT00H00M02S</Interval>
    </Schedule>
    <ProviderTimeout>PT7M</ProviderTimeout>
    <Arguments>
        <Argument>
            <Name>EventClassName</Name>
            <Value>KPIEvents</Value>
        </Argument>
        <Argument>
            <Name>AnalysisServicesInstance</Name>
            <Value>%ASInstance%</Value>
        </Argument>
        <Argument>
            <Name>AnalysisServicesDatabase</Name>
            <Value>Adventure Works</Value>
        </Argument>
        <Argument>
            <Name>MDXQuery</Name>
            <Value>SELECT
      {[Measures].[Reseller Gross Profit Margin], 
      [Measures].[Reseller Order Quantity], 
      [Measures].[Reseller Sales Amount]} ON COLUMNS,
      {[Employee].[Employees].[Ken J. Snchez], 
      [Employee].[Employees].[Amy E. Alberts]} ON ROWS
FROM [Adventure Works] 
WHERE [Date].[Calendar].[CY 2002]</Value>
        </Argument>
    </Arguments>
</HostedProvider>

动态查询定义

以下来自应用程序定义文件 (ADF) 的 XML 显示了使用动态查询的 Analysis Services 事件提供程序的示例定义。

<HostedProvider>
    <ProviderName>DynamicASEventProvider</ProviderName>
    <ClassName>AnalysisServicesProvider</ClassName>
    <SystemName>%NSSystem%</SystemName>
    <Schedule>
        <Interval>P0DT00H00M02S</Interval>
    </Schedule>
    <Arguments>
        <Argument>
            <Name>EventClassName</Name>
            <Value>KPIEvents</Value>
        </Argument>
        <Argument>
            <Name>AnalysisServicesInstance</Name>
            <Value>%ASInstance%</Value>
        </Argument>
        <Argument>
            <Name>AnalysisServicesDatabase</Name>
            <Value>Adventure Works</Value>
        </Argument>
        <Argument>
            <Name>RowsQuery</Name>
            <Value>SELECT EmployeeFullName as Employee
                   FROM NSKPISubscriptionsView</Value>
        </Argument>
        <Argument>
            <Name>SlicerQuery</Name>
            <Value>SELECT DATEPART(year, DATEADD(year, -2, GETDATE()))</Value>
        </Argument>
        <Argument>
            <Name>XsltFileName</Name>
            <Value>C:\NS\Transforms\MDXTransform.xslt</Value>
        </Argument>
    </Arguments>
</HostedProvider>

请参阅

概念

定义宿主事件提供程序
Notification Services 的 MDX 查询

其他资源

标准事件提供程序
Analysis Services 事件提供程序
MDX 中的重要概念 (MDX)

帮助和信息

获取 SQL Server 2005 帮助