共用方式為


高可用性環境中的 BAM 攔截器

本主題說明高可用性環境中的 BAM WF 攔截器和 BAM WCF 攔截器在發生 SQL Server 容錯移轉時的容錯移轉程序。

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連線時立即終止。

For more information about the behavior of the WorkflowCommitBatchService class in a high availability environment, see the "Reliability and High Availability" section in "Introduction to Hosting Windows Workflow Foundation" at https://go.microsoft.com/fwlink/?LinkId=88068.

BAM WCF 攔截器

在高可用性環境中,若於 SQL Server 容錯移轉期間發生 SQL Server 連接問題,BAM WCF 攔截器不會重新嘗試擷取攔截器組態檔。 因此,您應該自訂 WCF 程式碼來解決失敗的問題,或使用可靠的傳訊來重新提交訊息。

另請參閱

BAM WF 攔截器