Interceptores de BAM en un entorno de alta disponibilidad
En este tema se describen los procesos de conmutación por error para el interceptor de WF de BAM y el interceptor de WCF de BAM en un entorno de alta disponibilidad durante una conmutación por error de SQL Server.
Interceptor de WF de BAM
Si se trabaja en un entorno de alta disponibilidad, el interceptor de WF de BAM volverá a intentar la recuperación del archivo de configuración del interceptor cuando haya un problema de conexión con SQL Server durante una conmutación por error de SQL Server. Sin embargo, el interceptor no realizará ningún reintento al escribir los datos en la base de datos de importación principal de BAM cuando una conmutación por error de SQL Server esté en proceso. Esto se debe a que el interceptor se basa en el comportamiento de la clase WorkflowCommitBatchService al escribir datos en la base de datos de importación principal de BAM.
En el ejemplo siguiente, DefaultWorkflowCommitWorkBatchService se agrega como un servicio en tiempo de ejecución con enableRetries="true" para que vuelva a intentar el lote como se muestra en un fragmento de código de un archivo App.config:
<add type="System.Workflow.Runtime.Hosting.DefaultWorkflowCommitWorkBatchService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" enableRetries="True"/>
Sin embargo, si hay transacciones ambientales existentes cuando se llama al método CommitWorkBatch, la instancia de flujo de trabajo finaliza inmediatamente cuando una conexión de SQL Server no está disponible.
Para obtener más información sobre el comportamiento de la clase WorkflowCommitBatchService en un entorno de alta disponibilidad, vea la sección "Confiabilidad y alta disponibilidad" en "Introducción al hospedaje de Windows Workflow Foundation" en https://go.microsoft.com/fwlink/?LinkId=88068.
Interceptor de WCF de BAM
En un entorno de alta disponibilidad, el interceptor de WCF de BAM no vuelve a intentar la recuperación del archivo de configuración del interceptor cuando haya un problema de conexión con SQL Server durante una conmutación por error de SQL Server. Por tanto, debe personalizar el código WCF para compensar la conmutación por error o usar mensajería confiable para reenviar mensajes.