Partage via


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

L’adaptateur Microsoft BizTalk pour SQL Server permet aux clients d’adaptateur 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 » dans lesquels 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.

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

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

  • TypedPolling : vous permet de recevoir des messages fortement typés de la base de données SQL Server. Vous devez utiliser cette opération si vous envisagez de mapper les éléments du 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 sous forme de messages XML. Cette opération retourne le message d’interrogation sous la forme d’un 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 dans l’adaptateur SQL, consultez Receive Polling-based Data-changed Messages from SQL Server by Using BizTalk Server.

Interrogation

Une opération d’interrogation classique utilisant 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). Si des données sont 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 afin de définir l’intervalle d’exécution de l’instruction dans la propriété de liaison PolledDataAvailableStatement . À la fin de chaque intervalle d’interrogation, l’instruction des données interrogées disponibles 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ées 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 dans 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 continu les données, au fur et à mesure qu’elles sont disponibles.

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

Notes

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

Notes

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

interrogation Strongly-Typed

Une opération d’interrogation fortement typée classique utilisant 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 spécifier un ID entrant 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 éviter les collisions d’espaces de noms.

  3. Le reste des étapes est identique 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 En savoir plus sur l’adaptateur BizTalk pour SQL Server propriétés de liaison de l’adaptateur.

Notes

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 l’interrogation et la notification de requête

Bien que l’interrogation et la notification de requête soient à la fois des opérations entrantes et informent les clients de l’adaptateur des 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 à choisir une opération en fonction de vos besoins :

Interrogation 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 indique simplement à la base de données de lancer la notification en cas de modification du 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 informe uniquement du type de modification dans les données telles que Insert, Update et Delete.
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. Pointe: L’interrogation peut vous donner un meilleur débit dans les scénarios où les modifications de données se produisent en continu, et vous ne souhaitez pas être averti de chaque modification au fur et à mesure qu’elle 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 de 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 ?