Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Vous pouvez configurer l’adaptateur Oracle Database pour recevoir des messages périodiques de modification des données en utilisant une instruction SELECT pour interroger en permanence les tables et les vues dans la base de données Oracle. Vous pouvez spécifier une instruction SELECT comme instruction d’interrogation que l’adaptateur s’exécute régulièrement pour interroger la base de données Oracle. Si vous le souhaitez, vous pouvez également spécifier un bloc de code PL/SQL post-sondage que l’adaptateur exécute s’il existe une modification des données. Ce bloc est souvent utilisé pour mettre à jour un champ sur les enregistrements interrogés dans la cible ou pour déplacer les enregistrements interrogés vers une autre table ou vue.
Pour l’activer, vous devez spécifier certaines propriétés de liaison sur l’adaptateur Oracle Database. Vous pouvez également modifier l’espace de noms cible pour l’opération POLLINGSTMT en définissant la propriété PollingId dans l’URI de connexion. Pour plus d’informations, consultez Support pour la réception de messages de changement de données basés sur l'interrogation dans Oracle Database et Recevoir des messages de changement de données basés sur l'interrogation dans l'adaptateur Oracle Database. Pour plus d’informations sur la structure du message SOAP pour les opérations d’interrogation, consultez Schémas de message pour les opérations d’interrogation2.
Configuration d’une opération de sondage avec les propriétés de liaison de l'adaptateur Oracle de base de données
Le tableau suivant récapitule les propriétés de liaison d’adaptateur Oracle Database que vous utilisez pour configurer l’adaptateur pour recevoir des messages de modification de données. Vous devez spécifier ces propriétés de liaison lors de la configuration du port de réception dans la console Administration de BizTalk Server.
Propriété de liaison | Descriptif |
---|---|
InboundOperationType | Spécifie si vous souhaitez effectuer une opération d’interrogation ou de notification entrante. La valeur par défaut est sondage. |
PolledDataAvailableStatement | Spécifie l’instruction SQL exécutée par l’adaptateur pour déterminer si des données sont disponibles pour l’interrogation. Uniquement si un enregistrement est disponible, l’instruction SELECT que vous spécifiez pour la propriété de liaison PollingStatement est exécutée. La valeur par défaut est SELECT 1 FROM DUAL , ce qui implique que l’adaptateur doit continuer l’interrogation, que la table interrogée ait ou non des données. |
PollingInterval | Spécifie l’intervalle, en secondes, auquel l’adaptateur Oracle Database exécute l’instruction spécifiée pour la propriété de liaison PolledDataAvailableStatement . La valeur par défaut est 500 secondes. L’intervalle d’interrogation détermine l’intervalle de temps entre les sondages successifs. Si l’instruction est exécutée dans l’intervalle spécifié, l’adaptateur est en veille pendant la durée restante de l’intervalle. |
PollingStatement | Spécifie l’instruction d’interrogation. Pour interroger à l’aide d’une instruction SELECT, vous devez spécifier une instruction SELECT pour cette propriété de liaison. La valeur par défaut est Null. Vous devez spécifier une valeur pour la propriété de liaison de PollingStatement pour activer l’interrogation. L’instruction d’interrogation est exécutée uniquement s’il existe des données disponibles pour l’interrogation, qui est déterminée par la propriété de liaison PolledDataAvailableStatement . |
PollingAction | Spécifie l’action de l’opération d’interrogation. Vous pouvez déterminer la méthode d’interrogation pour une opération spécifique à partir des métadonnées que vous générez pour l’opération, à l’aide de l'outil Complément Consommer le Service d'Adaptateur. |
Déclaration post-sondage | Spécifie un bloc d’instruction exécuté après l’exécution de l’instruction spécifiée par la propriété de liaison PollingStatement . |
PollWhileDataFound | Spécifie si l’adaptateur Oracle Database ignore l’intervalle d’interrogation et exécute en permanence l’instruction d’interrogation, si les données sont disponibles dans la table interrogée. Si aucune donnée n’est disponible dans la table, l’adaptateur rétablit l’exécution de l’instruction d’interrogation à l’intervalle d’interrogation spécifié. La valeur par défaut est false. |
Pour obtenir une description plus complète de ces propriétés, consultez En savoir plus sur les propriétés de liaison d’adaptateur Oracle Database. Pour obtenir une description complète de l’utilisation de l’adaptateur Oracle Database pour interroger la base de données Oracle, lisez plus en détail.
Comment ce sujet démontre le sondage
Dans cette rubrique, pour montrer comment l’adaptateur Oracle Database prend en charge la réception de messages de modification de données à l’aide d’instructions SELECT, créez un projet BizTalk et générez un schéma pour l’opération POLLINGSTMT en définissant la propriété de liaison PollingStatement sur la valeur suivante :
SELECT * FROM ACCOUNTACTIVITY FOR UPDATE
La table ACCOUNTACTIVITY est créée lorsque vous exécutez les scripts SQL fournis avec les exemples pour créer ces objets dans la base de données.
Remarque
L’orchestration de cette rubrique interroge la table ACCOUNTACTIVITY, qui est une table de base de données créée en exécutant les scripts fournis avec les exemples. Vous devez effectuer des procédures similaires tel que décrit dans cette rubrique pour consulter une autre table.
Pour illustrer une opération d’interrogation, nous procédons comme suit :
Spécifiez une instruction SELECT pour la propriété de liaison PolledDataAvailableStatement pour déterminer où la table interrogée (ACCOUNTACTIVITY) contient des données. Dans cet exemple, vous pouvez définir cette propriété de liaison comme suit :
SELECT COUNT (*) FROM ACCOUNTACTIVITY
Cela garantit que l’adaptateur exécute l’instruction d’interrogation uniquement lorsque la table ACCOUNTACTIVITY contient des enregistrements.
Spécifiez l’instruction SELECT comme indiqué précédemment pour la propriété de liaison PollingStatement . Cette instruction récupère toutes les lignes de la table ACCOUNTACTIVITY.
EXÉCUTEz un bloc PL/SQL dans le cadre de la propriété de liaison PostPollStatement . Cette instruction déplace toutes les données de la table ACCOUNTACTIVITY vers une autre table de la base de données. Une fois cette opération effectuée, la prochaine fois que l’instruction spécifiée pour PollingStatement est exécutée, elle n’extrait aucune donnée.
Tant que d’autres données ne sont pas ajoutées à la table ACCOUNTACTIVITY, vous n’obtiendrez aucun message de sondage. Par conséquent, vous devez remplir à nouveau la table ACCOUNTACTIVITY avec de nouveaux enregistrements. Pour ce faire, exécutez le script more_activity_data.sql fourni avec les exemples. Après avoir exécuté ce script, la prochaine opération d’interrogation récupérera les nouveaux enregistrements insérés dans la table.
Comment recevoir des messages de modification des données d’Oracle
L’exécution d’une opération sur une base de données Oracle à l’aide de l’adaptateur Oracle Database avec BizTalk Server implique les tâches procédurales suivantes décrites dans Les blocs de construction pour développer des applications BizTalk avec Oracle Database. Pour configurer l’adaptateur pour interroger la base de données Oracle à l’aide d’une instruction SELECT, ces tâches sont les suivantes :
Créez un projet BizTalk et générez un schéma pour l’opération POLLINGSTMT pour la table à interroger.
Créez un message dans le projet BizTalk pour recevoir des messages à partir de la base de données Oracle.
Créez une orchestration pour recevoir des messages d’Oracle et enregistrez-les dans un dossier.
Générez et déployez le projet BizTalk.
Configurez l’application BizTalk en créant des ports d’envoi et de réception physiques.
Important
Pour les scénarios d’interrogation entrant, vous devez toujours configurer un port de réception unidirectionnel. Les ports de réception bidirectionnels ne sont pas supportés pour les opérations entrantes.
Démarrez l’application BizTalk.
Cette rubrique fournit des instructions pour effectuer ces tâches.
Génération d’un schéma
Vous devez générer le schéma pour l’opération POLLINGSTMT . Effectuez les tâches suivantes lors de la génération du schéma en utilisant le complément Adapter Service.
Spécifiez une valeur pour la propriété de liaison PollingStatement lors de la génération du schéma. Pour plus d’informations sur cette propriété de liaison, consultez En savoir plus sur les propriétés de liaison d’adaptateur Oracle Database. Par exemple, spécifiez ce qui suit en tant que déclaration de sondage :
SELECT * FROM ACCOUNTACTIVITY FOR UPDATE
Sélectionnez le type de contrat en tant que service (opération entrante).
Générez le schéma pour l’opération POLLINGSTMT .
Pour plus d’informations sur la génération du schéma, consultez Parcourir, rechercher et obtenir des métadonnées pour les opérations Oracle Database.
Définition des messages et des types de messages
Le schéma que vous avez généré précédemment décrit les « types » requis pour les messages dans l’orchestration. Un message est généralement une variable, dont le type est défini par le schéma correspondant. Une fois le schéma généré, vous devez le lier aux messages de la vue Orchestration du projet BizTalk.
Pour cette rubrique, vous devez créer un message pour recevoir des messages d’Oracle.
Effectuez les étapes suivantes pour créer des messages et les lier au schéma.
Pour créer des messages et créer un lien vers le schéma
Ajoutez une orchestration au projet BizTalk. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nom du projet BizTalk, pointez sur Ajouter, puis cliquez sur Nouvel élément. Tapez un nom pour l’orchestration BizTalk, puis cliquez sur Ajouter.
Ouvrez la fenêtre d’affichage orchestration du projet BizTalk, si elle n’est pas déjà ouverte. Cliquez sur Affichage, pointez sur Autres fenêtres, puis cliquez sur Mode Orchestration.
Dans l’affichage Orchestration, cliquez avec le bouton droit sur Messages, puis cliquez sur Nouveau message.
Cliquez avec le bouton droit sur le message nouvellement créé, puis sélectionnez Fenêtre Propriétés.
Dans le volet Propriétés de Message_1, procédez comme suit :
Utiliser cette option Pour ce faire Identificateur Tapez Recevez. Type de message Dans la liste déroulante, développez Schémas et sélectionnez TablePolling.OracleDBBinding, où TablePolling est le nom de votre projet BizTalk. OracleDBBindingSchema est le schéma de réponse généré pour l’opération POLLINGSTMT sur la table ACCOUNTACTIVITY.
Important Étant donné que l’interrogation est une opération unidirectionnelle, le schéma généré par l’adaptateur ne contient pas de nœud de réponse, et il n’existe donc qu’un seul nœud racine dans le schéma. Si vous utilisez ces schémas pour un type de message, vous devez identifier le schéma par le nom de fichier du schéma généré.
Par exemple, si vous créez un schéma pour une opération bidirectionnelle, les nœuds du fichier de schéma avec un nomOracleDBBindingSchema
peuvent ressembler à « Demande » et « Réponse ». Si vous souhaitez créer un message dans l’orchestration qui correspond au schéma de requête, vous pouvez identifier le schéma dans la liste en recherchantOracleDBBindingSchema.Request
. Toutefois, dans le cas d’une opération d’interrogation, étant donné que le seul nœud est « POLLINGSTMT », il n’est pas facile d’identifier le schéma auquel vous souhaitez mapper, car les schémas avec des nœuds uniques ne sont pas répertoriés comme <nom_fichier_>schéma.<rootnodename>. Au lieu de cela, ces schémas sont répertoriés uniquement par le nom de fichier. Dans ce cas, la seule façon d’identifier le schéma est par le nom de fichier de schéma, par exemple OracleDBBindingSchema.
Configuration de l’orchestration
Pour utiliser BizTalk Server et recevoir des messages de modification de données par interrogation à partir d’Oracle, vous devez créer une orchestration BizTalk. Dans cette orchestration, l’adaptateur reçoit la réponse en exécutant l’instruction SELECT spécifiée pour la propriété de liaison PollingStatement . Le message de réponse de l’instruction SELECT est enregistré dans un emplacement FILE. Une orchestration classique pour interroger la base de données Oracle contient les éléments suivants :
Recevoir et envoyer des formes pour recevoir des messages d’Oracle et les envoyer à un port FILE, respectivement.
Port de réception unidirectionnel pour recevoir des messages de la base de données Oracle.
Important
Pour les scénarios d’interrogation entrant, vous devez toujours configurer un port de réception unidirectionnel. Les ports de réception bidirectionnels ne sont pas supportés pour les opérations entrantes.
Port d’envoi unidirectionnel pour envoyer des réponses d’interrogation à partir d’une base de données Oracle.
Un exemple d’orchestration ressemble à ce qui suit.
Ajout de formes de message
Veillez à spécifier les propriétés suivantes pour chacune des formes de message. Les noms répertoriés dans la colonne Shape sont les noms des formes de message telles qu'elles apparaissent dans l'orchestration mentionnée précédemment.
Forme | Type de forme | Propriétés |
---|---|---|
RecevoirMessage | Recevoir | - Définir Name sur ReceiveMessage - Définir Activer sur True |
SaveMessage | Envoyer | - Définir Name sur SaveMessage |
Ajout de ports
Veillez à spécifier les propriétés suivantes pour chacun des ports logiques. Les noms répertoriés dans la colonne Port sont les noms des ports, comme indiqué dans l’orchestration.
Port | Propriétés |
---|---|
OracleReceivePort | - Définir l’identificateur sur OracleReceivePort - Définir Type sur OracleReceivePortType - Définir le modèle de communication sur unidirectionnel - Définir la direction de communication sur recevoir |
SaveMessagePort | - Définir Identificateur à SaveMessagePort - Définir Type sur SaveMessagePortType - Définir le modèle de communication sur unidirectionnel - Définir le sens de communication sur Envoyer |
Spécifier des messages pour les formes d’action et se connecter aux ports
Le tableau suivant spécifie les propriétés et leurs valeurs que vous devez définir pour spécifier des messages pour les formes d’action et lier les messages aux ports. Les noms répertoriés dans la colonne Shape sont les noms des formes de message comme indiqué dans l’orchestration mentionnée précédemment.
Forme | Propriétés |
---|---|
RecevoirMessage | - Définir Message sur Recevoir - Définir l’opération sur OracleReceivePort.Polling.Request |
SaveMessage | - Définir Message sur Recevoir - Définir l’opération sur SaveMessagePort.Polling.Request |
Une fois que vous avez spécifié ces propriétés, les formes de message et les ports sont connectés et votre orchestration est terminée.
Vous devez maintenant générer la solution BizTalk et la déployer sur un serveur BizTalk. Pour plus d’informations, consultez Génération et exécution d’orchestrations.
Configuration de l’application BizTalk
Une fois que vous avez déployé le projet BizTalk, l’orchestration que vous avez créée précédemment est répertoriée sous le volet Orchestrations dans la console Administration de BizTalk Server. Vous devez utiliser la console Administration de BizTalk Server pour configurer l’application. Pour obtenir une procédure, consultez Procédure pas à pas : déploiement d’une application BizTalk de base.
La configuration d’une application implique :
Sélection d’un hôte pour l’application.
Associez les ports que vous avez créés dans votre orchestration aux ports physiques dans la console d'administration de BizTalk Server. Pour cette orchestration, vous devez :
Définissez un emplacement sur le disque dur et un port FILE correspondant où l’orchestration BizTalk supprime les messages d’Oracle. Ces messages seront une réponse à la déclaration de sondage que vous spécifiez pour le port de réception.
Définissez un port de réception à sens unique physique WCF-Custom ou WCF-OracleDB. Ce port interroge la base de données Oracle. Pour plus d’informations sur la création de ports de réception, consultez Configurer manuellement une liaison de port physique sur l’adaptateur Oracle Database. Veillez à spécifier les propriétés de liaison suivantes pour le port de réception.
Propriété de liaison Valeur InboundOperationType Définissez cette option sur Sondage. PolledDataAvailableStatement Pour cet exemple, définissez cette propriété de liaison sur :
SELECT COUNT (*) FROM ACCOUNTACTIVITY
Cela garantit que l’adaptateur exécute l’instruction d’interrogation uniquement lorsque la table ACCOUNTACTIVITY contient des enregistrements.PollingStatement Pour cette propriété de liaison, spécifiez une instruction SELECT pour récupérer tous les enregistrements de la table ACCOUNTACTIVITY. Pour cet exemple, définissez cette propriété de liaison sur :
SELECT * FROM ACCOUNTACTIVITY FOR UPDATE
Déclaration post-sondage Spécifiez l’instruction post-sondage pour déplacer toutes les données de la table ACCOUNTACTIVITY vers une autre table. Pour cet exemple, définissez cette propriété de liaison sur :
BEGIN ACCOUNT_PKG.PROCESS_ACTIVITY(); END;
Pour plus d’informations sur les différentes propriétés de liaison, consultez En savoir plus sur les propriétés de liaison d’adaptateur Oracle Database.
Remarque
Nous vous recommandons de configurer le niveau d’isolation des transactions et le délai d’expiration des transactions lors de l’exécution d’opérations entrantes à l’aide de l’adaptateur Oracle Database. Vous pouvez le faire en ajoutant le comportement du service lors de la configuration du port de réception. Pour obtenir des instructions sur l’ajout du comportement du service, consultez Configurer le niveau d’isolation des transactions et le délai d’expiration des transactions.
Démarrage de l’application
Vous devez démarrer l’application BizTalk pour interroger la base de données Oracle. Pour obtenir des instructions sur le démarrage d’une application BizTalk, consultez Guide pratique pour démarrer une orchestration.
À ce stade, assurez-vous que :
Le WCF-Custom ou WCF-OracleDB port de réception unidirectionnel, qui interroge Oracle à l’aide de l’instruction SELECT spécifiée pour la propriété de liaison PollingStatement , est en cours d’exécution.
Le port d’envoi FILE, qui reçoit des messages de la base de données Oracle, est en cours d’exécution.
L’orchestration de BizTalk pour l’opération est en cours.
Exécution de l’opération
Après avoir exécuté l’application, l’ensemble d’actions suivant a lieu, dans la même séquence :
L’adaptateur exécute PolledDataAvailableStatement qui retourne une valeur positive indiquant que l’adaptateur doit exécuter l’instruction spécifiée pour la propriété de liaison PollingStatement .
L’adaptateur exécute l’instruction SELECT pour la propriété de liaison PollingStatement et retourne toutes les lignes de la table ACCOUNTACTIVITY. La réponse de la base de données Oracle ressemble à ce qui suit :
<?xml version="1.0" encoding="utf-8" ?> <POLLINGSTMT xmlns="http://Microsoft.LobServices.OracleDB/2007/03/POLLINGSTMT"> <POLLINGSTMTRECORD> <POLLINGSTMTRECORD> <TID>1</TID> <ACCOUNT>100001</ACCOUNT> <AMOUNT>500</AMOUNT> <DESCRIPTION /> <TRANSDATE>2008-08-03T20:10:28</TRANSDATE> <PROCESSED>n</PROCESSED> <POLLINGSTMTRECORD> <POLLINGSTMTRECORD> ...... ...... </POLLINGSTMTRECORD> ...... ...... </POLLINGSTMTRECORD> </POLLINGSTMT>
L’adaptateur exécute l’instruction post-sondage, qui déplace toutes les données de la table ACCOUNTACTIVITY vers une autre table.
Après l’intervalle d’interrogation, l’adaptateur exécute à nouveau PolledDataAvailableStatement. Étant donné que la table ACCOUNTACTIVITY n’a pas d’enregistrements maintenant, PolledDataAvailableStatement ne retourne pas de valeur positive et, par conséquent, l’adaptateur n’exécute pas l’instruction spécifiée pour la propriété de liaison PollingStatement . Par conséquent, le client d’adaptateur ne reçoit aucun message d’interrogation.
Le client de l’adaptateur n’obtient pas plus de messages d’interrogation tant que certains enregistrements ne sont pas explicitement insérés dans la table ACCOUNTACTIVITY. Pour insérer d’autres enregistrements, vous pouvez exécuter le script more_activity_data.sql fourni avec les exemples. Une fois que vous avez exécuté ce script, la prochaine fois que PolledDataAvailableStatement est exécuté, il retourne une valeur positive. Par conséquent, l’adaptateur exécute à nouveau l’instruction d’interrogation et les clients de l’adaptateur reçoivent à nouveau un message d’interrogation.
Remarque
L’adaptateur Oracle Database continue d’interroger jusqu’à ce que vous désactiviez explicitement le port de réception à partir de la console Administration de BizTalk Server.
Exceptions possibles
Pour plus d’informations sur les exceptions que vous pouvez rencontrer lors de l’exécution d’une requête d’interrogation sur la base de données Oracle à l’aide de BizTalk Server, consultez Exceptions et gestion des erreurs avec l’adaptateur Oracle Database.
Meilleures pratiques
Une fois que vous avez déployé et configuré le projet BizTalk, vous pouvez exporter les paramètres de configuration vers un fichier XML appelé fichier de liaisons. Une fois que vous avez généré un fichier de liaisons, vous pouvez importer les paramètres de configuration à partir du fichier afin que vous n’ayez pas besoin de créer les ports d’envoi et de recevoir des ports pour la même orchestration. Pour plus d’informations sur les fichiers de liaison, consultez Réutiliser les liaisons d’adaptateur de base de données Oracle.
Voir aussi
Interroger une base de données Oracle à l’aide de BizTalk Server