Pregunta

Actualmente estoy responsable de la colocación de un entorno multi BizTalk Despliegue y estamos pensando en el despliegue de dos o más de BizTalk Server en un grupo de BizTalk para proporcionar alta disponibilidad y escalabilidad.

Nuestra preocupación ahora es cómo manejar la concurrencia de los adaptadores WCF como SQL y adaptadores de archivos debido a que es probable que sea posible, por ejemplo, para el adaptador de SQL que dos BizTalk Capacidad de acogida seguirá de votación en la misma tabla DB.

En un principio mi idea para SQL es sugerencias de bloqueo emplean pero no estoy realmente seguro de si hay alguna otra preocupación sobre esto o si hay alguna otra solución probada.

Por Archivo Adaptador lo que sé es que es posible ajustar el adaptador de recepción para cambiar el nombre del archivo durante el proceso de manera que otro host de BizTalk evitará recogiendo el archivo todavía no estoy muy seguro de si esta solución es suficiente ya a la concurrencia mango.

Le agradecería cualquier ayuda / sugerencias.

Muchas gracias

¿Fue útil?

Solución

mayoría de los adaptadores de BizTalk evitará las condiciones de carrera para que fuera de la caja.

Por ejemplo, el adaptador de archivo de BizTalk implementos ya archivo de bloqueo hasta varias instancias del adaptador de archivo en diferentes hosts no lo leerá en el mismo archivo.

El uso de la función de archivo de cambio de nombre se explica a continuación (En la página MSDN la documentación )

  

También puede configurar el archivo   recibir adaptador de archivos de cambio de nombre cuando   procesarlos. Debe cambiar el nombre   archivos para asegurar que la reciben   adaptador no genera duplicado   mensajes si la ubicación de recepción es   apagar y reiniciar

Hay varios adaptadores que no son seguros cuando se ejecuta en varias instancias. Estos incluyen (pero puede haber otros) el POP3, FTP, MSMQ / MSMQT y adaptadores de base de datos en escenarios de votación.

Para los adaptadores se puede utilizar la función de BizTalk de los ejércitos agrupados. Hay un puesto explicar aquí el uso y la configuración de una host en clúster. Esta es la forma más fácil de asegurarse de que su sondeo de SQL no se va a producir duplicados. También puede lograr esto a nivel de SQL si es necesario.

Más allá de que usted realmente está consiguiendo en los detalles de los procesos de negocio y usted tendrá que diseñar para cada caso. Por ejemplo - lo que sucede si se proporciona el mismo archivo dos veces por un sistema de origen

?

Consulte las dos siguientes puestos Así, por algo más de información en torno a este tema:

BizTalk - Recibir puerto de leer dos veces de DB

de carga de red Equilibrio de instancias Biztalk

Otros consejos

Esta sección de MSDN también le puede ayudar a:

http://msdn.microsoft.com/ en-us / library / aa558765 (BTS.20) .aspx

Gracias por la respuesta y los enlaces que usted ha proporcionado usted. De hecho, he leído ya algunos de ellos y yo también era capaz de hacer algunas pruebas con respecto a esas soluciones. Para el adaptador de SQL, host de BizTalk agrupación ha demostrado ser una buena solución, pero hará que no se pueda maximizar la ventaja de BizTalk Grupo (Host redundancia) para fines de escalabilidad. Así que por esa razón hemos decidido que vamos a evitar la solución de clustering de mensaje, pero para los que realmente necesita el agrupamiento de alta disponibilidad. Lo que estamos tratando de lograr es tener un activo / activo o diré equilibrio de carga por medio del Grupo de BizTalk Server que significa que estamos realmente va a tener varios SQL recibir adaptador de votación de forma simultánea. Inicialmente mi solución estaba en nivel de consulta manejarlo a través de sugerencias de bloqueo, a continuación se muestra de mi SP.

MERGE INTO EmployeeComp
USING (SELECT EmployeeID
FROM
[AdventureWorks].[dbo].[EmployeeComp] 
WITH (READPAST, UPDLOCK) 
WHERE
[AdventureWorks].[dbo].[EmployeeComp].[Status] = 0) e(EmployeeID)
 ON EmployeeComp.EmployeeID = e.EmployeeID
WHEN MATCHED THEN
 UPDATE SET
 STATUS = 2

OUTPUT Inserted.EmployeeID, Inserted.Name, Inserted.Status;

Puede dar alguna información con el SP que he creado? Hice varias pruebas con alrededor de 500.000 datos que están siendo leídos por BizTalk adaptador WCF-SQL y, a continuación, al mismo tiempo otros miles de datos que se escriben y se prueban estar funcionando como lo que esperaba.

A pesar de que la solución parece estar bien, pero no estoy seguro de lo que sin embargo son los impactos en este tipo de solución, tal vez usted me puede arrojar algo de luz con esto también?

También estaba pensando si es posible utilizar SQL Server Service Broker de este artículo. http://blogs.msdn.com/adapters/archive/2008/06/30/using-the-wcf-sql-adapter-to-read- mensajes-de-SSB-colas-y-presentar-les-a-biztalk.aspx

En este momento todavía estoy comprobando con él y aún no está seguro de si la forma posible de resolver esto.

Muchas gracias

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top