高可用性環境における BAM インターセプタ
このトピックでは、高可用性環境における SQL Server のフェールオーバー時の BAM WF インターセプタと BAM WCF インターセプタのフェールオーバー プロセスについて説明します。
BAM WF インターセプタ
BAM WF インターセプタは、高可用性環境での稼働中での SQL Server のフェールオーバー時に SQL Server との接続で問題が発生すると、インターセプタ構成ファイルの取得を再試行します。 しかし、SQL Server のフェールオーバー時に BAM プライマリ インポート データベースにデータの書き込みを行っている場合、BAM WF インターセプタはこの操作を再試行しません。 これは、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 インターセプタ
BAM WCF インターセプタは、高可用性環境での SQL Server のフェールオーバー時に SQL Server との接続で問題が発生すると、インターセプタ構成ファイルの取得を再試行しません。 このため、WCF コードをカスタマイズして障害発生時に対応できるようにするか、信頼できるメッセージング機能を使用してメッセージを再送信する必要があります。