高可用性环境中的 BAM 侦听器

本主题介绍在高可用性环境下 SQL Server 故障转移过程中 BAM WF 侦听器和 BAM WCF 侦听器的故障转移流程。

BAM WF 侦听器

BAM WF 侦听器在高可用性环境下运行时,如果在 SQL Server 故障转移过程中发生 SQL Server 连接问题,BAM WF 侦听器将重试对侦听器配置文件的检索。 不过,如果正处于 SQL Server 故障转移过程中,则该侦听器不会在将数据写入 BAM 主导入数据库时重试。 这是因为在将数据写入 BAM 主导入数据库时,侦听器依赖于 WorkflowCommitBatchService 类的行为。

在下面的示例中, DefaultWorkflowCommitWorkBatchService 添加为具有 enableRetries="true" 的运行时服务,以便它重试批处理,如 App.config 文件的代码片段中所示:

<add type="System.Workflow.Runtime.Hosting.DefaultWorkflowCommitWorkBatchService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"  enableRetries="True"/>

但是,如果在调用 CommitWorkBatch 方法时存在现有环境事务,则工作流实例在SQL Server不可用时立即终止。

有关高可用性环境中 WorkflowCommitBatchService 类的行为的详细信息,请参阅 上的"托管服务工作流基础简介"中的"可靠性和高可用性"部分Windows Workflow Foundation" https://go.microsoft.com/fwlink/?LinkId=88068

BAM WCF 侦听器

在高可用性环境下,如果在 SQL Server 故障转移过程中 SQL Server 连接发生问题,BAM WCF 侦听器不会重试对侦听器配置文件的检索。 因此您应自定义 WCF 代码以补救此类失败,或者通过可靠的消息传送重新提交消息。

另请参阅

BAM WF 侦听器