必须先安装 BAM 侦听器软件,并将应用程序配置为使用 Windows Workflow Foundation (WF) 侦听器服务,然后才能开始收集 BAM 活动数据。 假设你已成功安装 BizTalk Server 及其依赖项,并且已创建至少一个 BizTalk 组。
安装 BAM-Eventing 软件
在将 WF 应用程序配置为使用 WF 的 BAM 拦截器之前,必须使用 BizTalk Server 安装程序安装 BAM-Eventing 软件。 有关安装 BAM-Eventing 软件和注册性能计数器的详细信息,请参阅 安装 BAM-Eventing 软件。
配置用于跟踪的 Windows Workflow Foundation 应用程序
必须先完成四个任务,然后 WF 应用程序才能开始编写 BAM 事件信息:
必须使用 BizTalk Server BAM 工具创建观察模型,然后使用 BAM Manager 命令行工具(bm.exe)进行部署。
必须使用 BAM Manager 命令行工具(bm.exe)创建和部署侦听器配置文件。
运行主机应用程序的用户必须是相应的 BAM 活动事件编写器(bam_<activity>_EventWriter)SQL Server 角色的成员,以使应用程序能够读取侦听器配置信息并写入 BAM 活动。
必须修改 App.config 文件或应用程序本身才能加载 BAM 跟踪服务,然后重启应用程序。
只有在这些任务成功完成后,才会开始在 BizTalk Server BAM 数据库中显示事件。
部署观察模型
必须先部署观察模型,然后才能在应用程序中部署拦截器配置文件或捕获 BAM 活动。
使用 bm.exe 来部署观察模型
单击“ 开始 ”,然后单击“ 运行 ”以打开 Windows 命令提示符。
在“打开”字段中键入 cmd,然后单击“确定”。
使用更改目录命令移动到包含要部署的观察模型的目录。 例如, cd c:\businessprocess\Orders。
使用 bm.exe部署观察模型:
c:\Program Files (x86)\Microsoft BizTalk Server <VERSION>\Tracking\BM.exe deploy-all -definitionfile:<definitionfile.xml>
请确保将<definitionfile.xml>替换为您想部署的观察文件的名称。 有关更多选项,请参阅 侦听器管理命令。
注释
在支持用户帐户控制(UAC)的系统上,可能需要使用管理权限运行该工具。
键入 Exit,然后按 Enter 关闭命令提示符。
部署侦听器配置文件
必须先部署侦听器配置文件,然后应用程序才能捕获 BAM 活动。
使用 bm.exe 部署拦截器配置文件
单击“ 开始 ”,然后单击“ 运行 ”以打开 Windows 命令提示符。
在“打开”字段中键入 cmd,然后单击“确定”。
使用更改目录命令移动到包含要部署的侦听器配置文件的目录。 例如, cd c:\businessprocess\Orders。
使用 bm.exe部署拦截器配置文件:
\Program Files (x86)\Microsoft BizTalk Server <VERSION>Tracking\BM.exe deploy-interceptor -filename:<icfile.xml>
请确保将<icfile.xml>替换为您想要部署的拦截器配置文件的名称。
注释
可以使用 -Force:True 标志来覆盖与拦截器配置文件中相同名称的现有事件源。 如果这样做,请确保使用 get-interceptor 命令备份现有配置。 使用 -Force:True 标志可以删除引用被覆盖的事件源的任何拦截器配置。
注释
在支持用户帐户控制(UAC)的系统上,可能需要使用管理权限运行该工具。
键入 Exit,然后按 Enter 关闭命令提示符。
如果已部署 WF 应用程序,则在下次轮询间隔之前不会加载新配置。 但是,如果您配置应用程序并重新启动它,配置将会立即生效。
将用户添加到相应的 BAM 活动角色
BAM 拦截器框架使用每活动 SQL Server 角色来控制对活动和配置信息的访问。 必须将运行工作流应用程序的用户帐户添加到 BAM 主导入数据库中的相应 BAM 活动角色中。
配置应用程序以加载 BAM 跟踪服务
在 WF 应用程序中加载 BAM 跟踪服务有三种方案:
如果 WF 应用程序已使用 WorkflowRuntime 加载 WF 配置部分,则可以将 BAM 跟踪服务信息添加到现有部分。
如果 WF 应用程序不使用 WorkflowRuntime 加载 WF 配置部分,则必须添加代码,以便从应用程序配置文件加载自定义节。 必须创建该部分,并将 BAM 跟踪服务信息添加到其中。
如果希望对配置进行硬编码,可以使用 WF API 以编程方式加载没有配置文件的跟踪服务,或者从自定义源加载配置。
配置 WF 应用程序时,请注意以下注意事项:
WF 侦听器每一个 WorkflowRuntime 仅支持一个 BamTrackingService。
WF 拦截器支持每个应用程序域的多个 BamTrackingService 实例。
- N 个 BamTrackingService 支持 N 个 WorkflowRuntime。
如果不同的连接字符串用于同一应用程序域中的单独 BamTrackingService 实例,则侦听器将引发异常。
拦截器从启动的第一个 BamTrackingService 实例中获取 IC 轮询间隔值。
拦截器将在应用程序域中的最后一个 BamTrackingService 停止时停止 IC 轮询线程。
有关 WorkflowRuntime 和加载配置信息的详细信息,请参阅 https://go.microsoft.com/fwlink/?LinkId=83314。
为 BAM 跟踪服务配置App.config 文件
打开与应用程序关联的 App.config 文件。 可以将 Notepad.exe 或其他文本编辑器用于此任务。
通过将以下配置信息插入 App.config 文件来添加 BAM 跟踪服务。 应将其放置为
configuration
元素的子元素。注释
使用 WorkflowRuntime 类时,节元素应与应用程序代码使用的名称相对应。
谨慎
此示例或指南引用敏感信息,例如连接字符串或用户名和密码。 切勿在代码中硬编码这些值,并确保使用最安全的身份验证来保护机密数据。 有关详细信息,请参阅以下文档:
<!-- The element name must match the one expected by WorkflowRuntime in your WF application --> <WorkflowServiceContainer> <Services> <add type="Microsoft.BizTalk.Bam.Interceptors.Workflow.BamTrackingService, Microsoft.BizTalk.Bam.Interceptors, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" ConnectionString="Integrated Security=SSPI;Data Source=.;Initial Catalog=BAMPrimaryImport" PollingIntervalSec="5"/> </Services> </WorkflowServiceContainer>
修改 ConnectionString 属性以匹配环境。
重启应用程序。
修改应用程序以加载自定义配置部分
在 Visual Studio 中打开 Windows Workflow Foundation 项目。
在应用程序的 WorkflowRuntime 实例中添加具有适当参数的 BamTrackingService 的新实例:
// !! Replace "WorkflowServiceContainer" with the section name // you used in your App.config file. WorkflowRuntime workflowRuntime = new WorkflowRuntime("WorkflowServiceContainer");
重新编译和部署修改的应用程序。
修改您的应用程序以通过编程来加载 BAM 跟踪服务
在 Visual Studio 中打开 Windows Workflow Foundation 项目。
在应用程序的 WorkflowRuntime 实例中添加具有适当参数的 BamTrackingService 的新实例:
string connectionString = "Integrated Security=SSPI;Data Source=.;Initial Catalog=BAMPrimaryImport" int pollingInterval = 5; WorkflowRuntime workflowRuntime = new WorkflowRuntime(); workflowRuntime.AddService(new BamTrackingService(connectionString, pollingInterval));
可以根据特定环境添加或删除参数。
重新编译和部署修改的应用程序。