Partager via


Interrogation dans SQL Server à l’aide de l’adaptateur SQL

L’adaptateur Microsoft BizTalk pour SQL Server permet aux clients d’adaptateurs de recevoir des messages de modification de données de la base de données SQL Server. L’adaptateur SQL prend en charge la réception de messages « basés sur l’interrogation » où l’adaptateur exécute une instruction SQL spécifiée (instruction SELECT ou procédure stockée), récupère ou met à jour les données et fournit le résultat au client de l’adaptateur à intervalles réguliers de temps.

L’adaptateur SQL expose les opérations suivantes pour l’interrogation :

  • Sondage : vous permet de recevoir des messages périodiques concernant les modifications des données pour les tables ou vues SQL Server. Les messages ne sont pas fortement typés.

  • TypedPolling : vous permet de recevoir des messages fortement typés à partir de la base de données SQL Server. Vous devez utiliser cette opération si vous envisagez de mapper les éléments dans le message d’interrogation à tout autre schéma.

  • XmlPolling. Vous permet d’utiliser des instructions SELECT ou des procédures stockées qui utilisent une clause FOR XML et retournent des données en tant que messages XML. Cette opération retourne le message d’interrogation en tant que message XML.

    Pour plus d’informations sur la clause FOR XML, consultez https://go.microsoft.com/fwlink/?LinkId=131402.

    Pour plus d'informations sur l'interrogation avec l'adaptateur SQL, consultez Recevoir des messages de modification de données basés sur l'interrogation à partir de SQL Server en utilisant BizTalk Server.

Sondages

Une opération d’interrogation classique à l’aide de l’adaptateur SQL implique les éléments suivants :

  1. Les clients de l’adaptateur doivent spécifier Polling comme opération entrante dans la propriété de liaison InboundOperationType . La valeur par défaut de cette propriété de liaison est Polling.

  2. Les clients de l’adaptateur doivent spécifier une instruction SQL pour la propriété de liaison PolledDataAvailableStatement qui détermine s’il existe des données disponibles pour l’interrogation. La première colonne de la première ligne du premier jeu de résultats retourné lors de l’exécution de cette instruction contient une valeur entière. Si aucune donnée n’est disponible pour l’interrogation, la valeur de retour est 0 (zéro). S’il existe des données disponibles, la valeur de retour est supérieure à zéro.

  3. Les clients de l’adaptateur doivent spécifier un intervalle d’interrogation pour la propriété de liaison PollingIntervalInSeconds pour définir l’intervalle auquel l’instruction de la propriété de liaison PolledDataAvailableStatement est exécutée. À la fin de chaque intervalle d'interrogation, l'instruction de disponibilité des données interrogées est exécutée et le jeu de résultats est retourné.

  4. Les clients de l’adaptateur doivent spécifier une instruction SQL d’interrogation (instruction SELECT ou procédure stockée) pour la propriété de liaison PollingStatement . S’il existe des données disponibles pour l’interrogation (déterminée par la propriété de liaison PolledDataAvailableStatement ), l’adaptateur exécute l’instruction d’interrogation pour obtenir et mettre à jour (le cas échéant) les données de la base de données SQL Server. Lorsque l’adaptateur SQL est utilisé avec BizTalk Server, la même transaction est également utilisée pour envoyer le message à BizTalk Server.

  5. Les clients de l’adaptateur peuvent utiliser la propriété de liaison PollWhileDataFound pour ignorer l’intervalle d’interrogation et interroger en permanence les données, comme et quand elles sont disponibles.

  6. Les jeux de résultats retournés suite à l’exécution de l’instruction d’interrogation sont envoyés au client de l’adaptateur en tant que message entrant.

Remarque

Lorsque UseAmbientTransaction a la valeur False, polledDataAvailableStatement n’est pas appelé. Au lieu de cela, l’adaptateur appelle directement PollingStatement.

Remarque

Une opération XmlPolling implique les mêmes étapes que l’opération d’interrogation.

sondage Strongly-Typed

Une opération d’interrogation fortement typée classique à l’aide de l’adaptateur SQL implique les éléments suivants :

  1. Les clients de l’adaptateur doivent spécifier TypedPolling comme opération entrante dans la propriété de liaison InboundOperationType . La valeur par défaut de cette propriété de liaison est Polling.

  2. Les clients de l’adaptateur doivent indiquer un ID d'entrée dans le cadre de l’URI de connexion. L’ID entrant peut être n’importe quelle chaîne et est ajouté à l’espace de noms standard de l’opération TypedPolling pour empêcher les collisions d’espaces de noms.

  3. Les autres étapes sont identiques aux étapes 2 à 6 répertoriées dans l’opération d’interrogation décrite dans la section précédente.

    Pour plus d’informations sur les propriétés de liaison liées à l’interrogation et à l’interrogation fortement typée, consultez la documentation sur les propriétés de liaison de l'adaptateur BizTalk pour SQL Server.

Remarque

Plusieurs jeux de résultats peuvent être retournés suite à l’exécution de l’instruction d’interrogation. Si les jeux de résultats ne contiennent aucune ligne, aucun message n’est envoyé au client de l’adaptateur.

L’illustration ci-dessous fournit des informations sur le flux de travail d’interrogation dans l’adaptateur SQL. Deux scénarios pour le flux de travail d’interrogation sont illustrés :

  1. Lorsque la valeur de PollWhileDataFound est définie sur « False » (paramètre par défaut).

  2. Lorsque la valeur de PollWhileDataFound est définie sur « True ».

    Workflow d’interrogation (PollWhileDataFound = False) Workflow d’interrogation (PollWhileDataFound = True)

Différences entre le sondage et la notification de requête

Bien que les notifications d’interrogation et de requête soient à la fois des opérations entrantes et informent les clients de l’adaptateur sur les modifications de données dans la base de données SQL Server, le tableau suivant répertorie certaines différences entre les deux. Les différences suivantes vous aideront à décider d’une opération en fonction de vos besoins :

Sondages Notification de requête
L’interrogation est lancée par l’adaptateur. L’adaptateur exécute une instruction pour vérifier si les données sont disponibles pour l’interrogation, puis lance l’interrogation en exécutant l’instruction d’interrogation si certaines données sont disponibles pour l’interrogation. La notification de requête est lancée par SQL Server. L’instruction de notification émise par l’adaptateur demande simplement à la base de données de lancer la notification en cas de modification dans le jeu de résultats de l’instruction.
Vous pouvez utiliser l’instruction d’interrogation pour lire ou mettre à jour des données dans une table de base de données SQL Server. Vous pouvez utiliser l’instruction de notification de requête pour lire uniquement les données d’une table de base de données SQL Server.
L’interrogation vous informe des données réelles qui ont changé. La notification de requête indique uniquement le type de modification dans les données telles que l’insertion, la mise à jour et la suppression.
La notification de modification des données dépend de l’intervalle d’interrogation, et les clients de l’adaptateur sont informés des modifications de données à la fin de chaque intervalle d’interrogation. Conseil: Le sondage peut offrir un meilleur rendement dans les scénarios où les modifications de données se produisent en continu, et vous ne souhaitez pas être averti de chaque changement au fur et à mesure qu'il se produit. Au lieu de cela, vous spécifiez un intervalle d’interrogation après lequel vous souhaitez être informé de toutes les modifications qui se sont produites depuis la dernière notification de modification des données. La notification de modification des données est instantanée.

Pour plus d’informations sur la notification de requête dans l’adaptateur Microsoft BizTalk pour SQL Server, consultez Recevoir des notifications de requête SQL à l’aide de BizTalk Server.

Voir aussi

Quelles opérations peuvent être effectuées à l’aide de l’adaptateur ?