Compartir a través de


Sondear en SQL Server mediante el adaptador de SQL

El adaptador de Microsoft BizTalk para SQL Server permite a los clientes de adaptador recibir mensajes de cambio de datos de la base de datos de SQL Server. El adaptador de SQL admite la recepción de mensajes "basados en sondeos" en los que el adaptador ejecuta una instrucción SQL especificada (instrucción SELECT o procedimiento almacenado), recupera o actualiza los datos y proporciona el resultado al cliente del adaptador a intervalos regulares de tiempo.

El adaptador de SQL expone las siguientes operaciones para sondear:

  • Sondeo: permite recibir mensajes periódicos de cambio de datos para SQL Server tablas o vistas. Los mensajes no están fuertemente tipados.

  • TypedPolling: permite recibir mensajes fuertemente tipados de la base de datos de SQL Server. Debe usar esta operación si tiene previsto asignar los elementos del mensaje de sondeo a cualquier otro esquema.

  • XmlPolling. Permite usar instrucciones SELECT o procedimientos almacenados que usan una cláusula FOR XML y devuelven datos como mensajes XML. Esta operación devuelve el mensaje de sondeo como un mensaje XML.

    Para obtener más información sobre la cláusula FOR XML, vea https://go.microsoft.com/fwlink/?LinkId=131402.

    Para obtener más información sobre el sondeo en el adaptador de SQL, vea Recibir mensajes modificados por datos basados en sondeos de SQL Server mediante BizTalk Server.

Sondeo

Una operación de sondeo típica mediante el adaptador de SQL implica lo siguiente:

  1. Los clientes del adaptador deben especificar Polling como la operación de entrada en la propiedad de enlace InboundOperationType . El valor predeterminado de esta propiedad de enlace es Polling.

  2. Los clientes del adaptador deben especificar una instrucción SQL para la propiedad de enlace PolledDataAvailableStatement que determina si hay datos disponibles para el sondeo. La primera columna de la primera fila del primer conjunto de resultados devuelto al ejecutar esta instrucción contiene un valor entero. Si no hay datos disponibles para el sondeo, el valor devuelto es 0 (cero). Si hay datos disponibles, el valor devuelto es mayor que cero.

  3. Los clientes del adaptador deben especificar un intervalo de sondeo para la propiedad de enlace PollingIntervalInSeconds para definir el intervalo en el que se ejecuta la instrucción en la propiedad de enlace PolledDataAvailableStatement . Al final de cada intervalo de sondeo, se ejecuta la instrucción de datos de sondeo disponible y se devuelve el conjunto de resultados.

  4. Los clientes del adaptador deben especificar una instrucción SQL de sondeo (instrucción SELECT o procedimiento almacenado) para la propiedad de enlace PollingStatement . Si hay datos disponibles para el sondeo (determinado por la propiedad de enlace PolledDataAvailableStatement), el adaptador ejecuta la instrucción de sondeo para obtener y actualizar (si procede) los datos de la base de datos de SQL Server. Cuando se usa el adaptador de SQL con BizTalk Server, también se usa la misma transacción para enviar el mensaje a BizTalk Server.

  5. Los clientes del adaptador pueden usar la propiedad de enlace PollWhileDataFound para omitir el intervalo de sondeo y sondear continuamente los datos, como y cuando estén disponibles.

  6. Los conjuntos de resultados que se devuelven como resultado de ejecutar la instrucción de sondeo se envían al cliente del adaptador como mensaje entrante.

Nota

Cuando UseAmbientTransaction se establece en False, no se llama a PolledDataAvailableStatement . En su lugar, el adaptador llama directamente a PollingStatement.

Nota

Una operación XmlPolling implica los mismos pasos que la operación de sondeo.

sondeo de Strongly-Typed

Una operación típica de sondeo fuertemente tipada mediante el adaptador de SQL implica lo siguiente:

  1. Los clientes del adaptador deben especificar TypedPolling como la operación de entrada en la propiedad de enlace InboundOperationType . El valor predeterminado de esta propiedad de enlace es Polling.

  2. Los clientes del adaptador deben especificar un identificador de entrada como parte del URI de conexión. El identificador de entrada puede ser cualquier cadena y se anexa al espacio de nombres estándar de la operación TypedPolling para evitar colisiones de espacios de nombres.

  3. El resto de los pasos son los mismos que los pasos 2 a 6 enumerados en la operación de sondeo descrita en la sección anterior.

    Para obtener información detallada sobre las propiedades de enlace relacionadas con el sondeo y el sondeo fuertemente tipado, vea Leer sobre el adaptador de BizTalk para SQL Server propiedades de enlace del adaptador.

Nota

Se pueden devolver varios conjuntos de resultados como resultado de ejecutar la instrucción de sondeo. Si los conjuntos de resultados no contienen ninguna fila, no se enviará ningún mensaje al cliente del adaptador.

En la ilustración siguiente se proporciona información sobre el flujo de trabajo de sondeo en el adaptador de SQL. Se muestran dos escenarios para el flujo de trabajo de sondeo:

  1. Cuando el valor de PollWhileDataFound se establece en "False" (valor predeterminado).

  2. Cuando el valor de PollWhileDataFound se establece en "True".

    (PollWhileDataFound = False)Flujo de trabajo de sondeo Polling Workflow (PollWhileDataFound = True)

Diferencias entre sondeo y notificación de consulta

Aunque el sondeo y la notificación de consulta son operaciones entrantes e informan a los clientes del adaptador sobre los cambios de datos en la base de datos de SQL Server, en la tabla siguiente se enumeran algunas diferencias entre los dos. Las siguientes diferencias le ayudarán a decidir una operación en función de sus requisitos:

Sondeo Notificación de consulta
El adaptador inicia el sondeo. El adaptador ejecuta una instrucción para validar si los datos están disponibles para el sondeo y, a continuación, inicia el sondeo ejecutando la instrucción de sondeo si hay algunos datos disponibles para el sondeo. El SQL Server inicia la notificación de consulta. La instrucción de notificación emitida por el adaptador simplemente indica a la base de datos que inicie la notificación en caso de que haya un cambio en el conjunto de resultados de la instrucción.
Puede usar la instrucción de sondeo para leer o actualizar datos en una tabla de base de datos de SQL Server. Puede usar la instrucción de notificación de consulta para leer solo los datos de una tabla de base de datos de SQL Server.
El sondeo le informa sobre los datos reales que han cambiado. La notificación de consulta solo informa sobre el tipo de cambio en los datos, como Insertar, Actualizar y Eliminar.
La notificación de cambio de datos depende del intervalo de sondeo y los clientes del adaptador se informan sobre los cambios de datos al final de cada intervalo de sondeo. Propina: El sondeo puede proporcionar un mejor rendimiento en escenarios en los que los cambios de datos se producen continuamente y no desea recibir notificaciones de cada cambio como y cuando se produce. En su lugar, especifique un intervalo de sondeo después del cual desea recibir una notificación de todos los cambios que se han producido desde la última notificación de cambio de datos. La notificación de cambio de datos es instantánea.

Para obtener más información sobre la notificación de consulta en el adaptador de Microsoft BizTalk para SQL Server, vea Recibir notificaciones de consulta SQL mediante BizTalk Server.

Consulte también

¿Qué operaciones se pueden realizar mediante el adaptador?