高可用性环境中的 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 侦听器