Compartir a través de


Recibir notificaciones de consulta en varias ubicaciones de recepción de SQL mediante BizTalk Server

Considere un escenario en el que tiene varias ubicaciones de recepción creadas como parte de diferentes aplicaciones de BizTalk configuradas para recibir notificaciones de consulta para la misma tabla (por ejemplo, Empleado) en la misma base de datos. Si se insertan cien registros en la misma tabla, todas las ubicaciones de recepción recibirán el mensaje de notificación. Para recibir notificaciones de forma eficaz en varias ubicaciones de recepción, puede llamar a operaciones desde la aplicación de BizTalk de forma que, si una ubicación de recepción recibe una notificación, la otra ubicación de recepción no recibe la misma notificación. Por lo tanto, puede equilibrar la carga eficazmente las notificaciones recibidas en varias ubicaciones.

Las tareas necesarias para configurar una orquestación para equilibrar la carga de las notificaciones de recepción son las mismas que para recibir notificaciones de consulta incrementalmente desde SQL mediante BizTalk Server. En este tema se muestra la única diferencia entre los dos enfoques.

Load-Balancing las notificaciones de consulta en varias ubicaciones de recepción

Al igual que en el tema Recibir notificaciones de consulta incrementalmente desde SQL mediante BizTalk Server, ha configurado notificaciones incrementales mediante la ejecución de una instrucción UPDATE en los registros que ya se han notificado. Para configurar el equilibrio de carga, puede ejecutar un procedimiento almacenado que elimine los registros notificados. Por ejemplo, considere un procedimiento almacenado PROCESS_EMPLOYEE con la siguiente definición:

DECLARE @var int  
SELECT TOP 1 @var = Employee_ID FROM Employee  
SELECT * FROM Employee WHERE Employee_ID=@var  
DELETE FROM Employee WHERE Employee_ID=@var  

Cuando se ejecuta este procedimiento almacenado como parte de la aplicación de BizTalk, se elimina el registro para el que ya se recibe la notificación. Por lo tanto, la otra ubicación de recepción recibe una notificación para el siguiente registro.

Estos son los pasos de alto nivel que debe realizar para configurar el equilibrio de carga para recibir notificaciones.

  1. Cree un esquema para notificación (operación de entrada) y PROCESS_EMPLOYEE procedimiento almacenado (operación de salida).

  2. Agregue una orquestación y agregue tres mensajes para recibir notificaciones, ejecutar el procedimiento almacenado y obtener respuesta para el procedimiento almacenado.

  3. Cree una orquestación agregando formas de envío y recepción, forma Construir mensaje y puertos. Puede usar el mismo código de ejemplo para construir un mensaje para invocar el procedimiento almacenado PROCESS_EMPLOYEE. Tenga en cuenta que al realizar la operación en BizTalk Server consola de administración, debe tener el mensaje de solicitud para el procedimiento almacenado PROCESS_EMPLOYEE en la ubicación C:\TestLocation\MessageIn. Esto se debe a que el fragmento de código que invoca como parte de la orquestación creada en Recibir notificaciones de consulta incrementalmente desde SQL mediante BizTalk Server crea un mensaje de solicitud basado en el XML de solicitud presente en C:\TestLocation\MessageIn.

  4. Compile e implemente la aplicación. Para demostrar el equilibrio de carga, debe implementar esta orquestación al menos en dos equipos diferentes que tengan instalado BizTalk Server y adaptador de SQL.

  5. En la consola de administración de BizTalk Server en ambos equipos, especifique las siguientes propiedades de enlace para la ubicación de recepción de WCF-Custom o WCF-SQL:

    Binding (propiedad) Value
    InboundOperationType Establézcalo en Notificación.
    NotificationStatement Establézcalo en:

    SELECT Employee_ID, Name FROM dbo.Employee WHERE Status=0

    Nota: Para las instrucciones de notificación, siempre debe especificar el nombre de la tabla junto con el nombre del esquema. Por ejemplo, dbo.Employee.
    NotifyOnListenerStart Establézcalo en True.
  6. Inicie la aplicación de BizTalk.

  7. Para empezar a recibir notificaciones, inserte cien registros en la tabla EMPLOYEE. Al hacerlo, asegúrese de que el XML de solicitud para invocar el procedimiento almacenado PROCESS_EMPLOYEE está disponible en C:\TestLocation\MessageIn.

  8. Supervise la ubicación (en ambos equipos) donde la aplicación de BizTalk quitará los mensajes de notificación. Observará que de los cientos de registros insertados, una ubicación recibe notificaciones para algunos registros, mientras que la otra ubicación recibe una notificación para los registros restantes. Juntos, ambas ubicaciones recibirán una notificación para todos los cientos de registros.

Consulte también

Recepción de notificaciones de consulta SQL mediante BizTalk Server