BAM-Interceptors in einer Hochverfügbarkeitsumgebung
In diesem Thema werden die Failoverprozesse für den BAM WF-Interceptor und den BAM WCF-Interceptor in einer Hochverfügbarkeitsumgebung während eines SQL Server-Failovers beschrieben.
BAM WF-Interceptor
Wenn es in einer Hochverfügbarkeitsumgebung während eines SQL Server-Failovers zu einem Problem mit der SQL Server-Verbindung kommt, versucht der BAM WF-Interceptor, die Interceptorkonfigurationsdatei erneut abzurufen. Beim Schreiben von Daten in die primäre BAM-Importdatenbank während eines SQL Server-Failovers erfolgt dagegen kein erneuter Versuch. Dies liegt daran, dass der Interceptor beim Schreiben von Daten in die primäre BAM-Importdatenbank auf dem Verhalten der WorkflowCommitBatchService-Klasse basiert.
Im folgenden Beispiel wird DefaultWorkflowCommitWorkBatchService als Laufzeitdienst mit enableRetries="true" hinzugefügt, sodass der Batch wie in einem Codeausschnitt aus einer App.config-Datei gezeigt wiederholt wird:
<add type="System.Workflow.Runtime.Hosting.DefaultWorkflowCommitWorkBatchService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" enableRetries="True"/>
Wenn beim Aufrufen der CommitWorkBatch-Methode jedoch Ambient-Transaktionen vorhanden sind, wird der Workflow instance sofort beendet, wenn keine SQL Server Verbindung verfügbar ist.
Weitere Informationen zum Verhalten der WorkflowCommitBatchService-Klasse in einer Hochverfügbarkeitsumgebung finden Sie im Abschnitt "Zuverlässigkeit und Hochverfügbarkeit" unter "Einführung in das Hosten von Windows Workflow Foundation" unter https://go.microsoft.com/fwlink/?LinkId=88068.
BAM-WCF-Interceptor
Wenn es in einer Hochverfügbarkeitsumgebung während eines SQL Server-Failovers zu einem Problem mit der SQL Server-Verbindung kommt, versucht der BAM WCF-Interceptor nicht, die Interceptorkonfigurationsdatei erneut abzurufen. Sie sollten deshalb den WCF-Code so anpassen, dass Fehler kompensiert werden, oder Reliable Messaging zum erneuten Übermitteln von Nachrichten verwenden.