Intercepteurs BAM dans un environnement haute disponibilité
Cette rubrique décrit le processus de basculement pour les intercepteurs WF BAM et WCF BAM dans un environnement à haute disponibilité lors d'un basculement SQL Server.
Intercepteur WF BAM
Dans un environnement à haute disponibilité, l'intercepteur WF BAM tente à nouveau de récupérer le fichier de configuration de l'intercepteur si un problème de connexion SQL Server survient lors d'un basculement SQL Server. L'intercepteur n'effectue toutefois pas de nouvelle tentative lors de l'écriture des données dans la base de données d'importation principale BAM si un basculement SQL Server est en cours. En effet, l’intercepteur s’appuie sur le comportement de la classe WorkflowCommitBatchService lors de l’écriture de données dans la base de données d’importation principale BAM.
Dans l’exemple suivant, DefaultWorkflowCommitWorkBatchService est ajouté en tant que service d’exécution avec enableRetries="true » afin qu’il tente à nouveau le lot comme indiqué dans un extrait de code d’un fichier App.config :
<add type="System.Workflow.Runtime.Hosting.DefaultWorkflowCommitWorkBatchService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" enableRetries="True"/>
Toutefois, s’il existe des transactions ambiantes existantes lorsque la méthode CommitWorkBatch est appelée, la instance de flux de travail est arrêtée immédiatement lorsqu’une connexion SQL Server n’est pas disponible.
Pour plus d’informations sur le comportement de la classe WorkflowCommitBatchService dans un environnement à haute disponibilité, consultez la section « Fiabilité et haute disponibilité » dans « Introduction à l’hébergement de Windows Workflow Foundation » sur https://go.microsoft.com/fwlink/?LinkId=88068.
Intercepteur WCF BAM
Dans un environnement à haute disponibilité, l'intercepteur WCF BAM ne tente pas à nouveau de récupérer le fichier de configuration de l'intercepteur si un problème de connexion SQL Server survient lors d'un basculement SQL Server. Vous devez donc personnaliser le code WCF pour compenser l'échec ou utiliser la fiabilité de la messagerie pour renvoyer les messages.