定义 Analysis Services 事件提供程序
若要使用 Analysis Services 事件提供程序,您必须在应用程序定义中定义宿主事件提供程序。本主题将介绍 Analysis Services 事件提供程序所需的属性值和参数,并提供每种 MDX 查询类型(静态和动态)的示例。
注意: |
---|
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(在使用 RowsQuery 或 SlicerQuery 时需要)是 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)