Recevoir des notifications de modification Oracle Database de manière incrémentielle à l’aide de BizTalk Server
Important
Par souci de concision, cette rubrique décrit uniquement comment recevoir des notifications de manière incrémentielle. Dans les scénarios métier, l’orchestration doit idéalement inclure la logique pour extraire le type de message de notification reçu, puis effectuer les opérations suivantes. En d’autres termes, l’orchestration décrite dans cette rubrique doit être basée sur l’orchestration décrite dans Traiter les messages de notification pour effectuer des tâches spécifiques dans Oracle Database à l’aide de BizTalk Server.
Cette rubrique montre comment configurer l’adaptateur Oracle Database pour recevoir des messages de notification de requête incrémentielle à partir d’Oracle. Pour illustrer les notifications incrémentielles, nous considérons une table, ACCOUNTACTIVITY, avec une colonne « Traité ». Lorsqu’un nouvel enregistrement est inséré dans cette table, la valeur de la colonne « Traité » est définie sur « n ». Vous pouvez configurer l’adaptateur pour recevoir des notifications incrémentielles en procédant comme suit :
Inscrivez-vous aux notifications à l’aide d’une instruction SELECT qui récupère tous les enregistrements dont la colonne « Processed » est « n ». Pour ce faire, spécifiez l’instruction SELECT pour la propriété de liaison NotificationStatement .
Pour les lignes qui ont été signalées pour, mettez à jour la colonne « Traité » sur « y ».
Cette rubrique montre comment créer une orchestration BizTalk et configurer une application BizTalk pour y parvenir.
Configuration des notifications avec les propriétés de liaison de l’adaptateur de base de données Oracle
Le tableau suivant récapitule les propriétés de liaison de l’adaptateur Oracle Database que vous utilisez pour configurer la réception de notifications à partir de la base de données Oracle. Vous devez spécifier ces propriétés de liaison lors de la configuration du port de réception dans la console Administration BizTalk Server.
Notes
Vous pouvez choisir de spécifier ces propriétés de liaison lors de la génération du schéma pour l’opération notification , même si ce n’est pas obligatoire. Dans ce cas, le fichier de liaison de port généré par le complément Consume Adapter Service dans le cadre de la génération de métadonnées contient également les valeurs que vous spécifiez pour les propriétés de liaison. Vous pouvez importer ultérieurement ce fichier de liaison dans la console d’administration BizTalk Server pour créer le port de réception WCF personnalisé ou WCF-OracleDB avec les propriétés de liaison déjà définies. Pour plus d’informations sur la création d’un port de réception à l’aide du fichier de liaison, consultez Configurer une liaison de port physique à l’aide d’un fichier de liaison de port à Oracle Database.
Binding, propriété | Description |
---|---|
InboundOperationType | Spécifie l’opération entrante que vous souhaitez effectuer. Pour recevoir des messages de notification, définissez-le sur Notification. |
NotificationPort | Spécifie le numéro de port que ODP.NET devez ouvrir pour écouter la notification de modification de base de données à partir d’une base de données Oracle. |
NotificationStatement | Spécifie l’instruction SELECT utilisée pour l’inscription aux notifications de requête. L’adaptateur reçoit un message de notification uniquement lorsque le jeu de résultats de l’instruction SELECT spécifiée change. |
NotifyOnListenerStart | Spécifie si l’adaptateur envoie une notification aux clients de l’adaptateur lorsque l’écouteur est démarré. |
Pour obtenir une description plus complète de ces propriétés, consultez Utilisation de l’adaptateur BizTalk pour les propriétés de liaison de base de données Oracle. Pour obtenir une description complète de l’utilisation de l’adaptateur Oracle Database pour recevoir des notifications de la base de données Oracle, lisez plus loin.
Comment cette rubrique illustre la réception de messages de notification
Dans cette rubrique, pour montrer comment l’adaptateur Oracle Database prend en charge la réception de messages de notification de modification de base de données incrémentielle à partir de la base de données Oracle, nous allons configurer l’adaptateur pour recevoir des notifications pour les modifications apportées à la table ACCOUNTACTIVTY. Supposons que la table ACCOUNTACTIVITY comporte les colonnes « TID », « Account » et « Processed ». Chaque fois qu’un nouvel enregistrement est ajouté, la valeur de la colonne « Traité » est définie sur « n ». Par conséquent, pour obtenir des notifications incrémentielles, vous devez effectuer les tâches suivantes dans le cadre de l’orchestration BizTalk :
Recevez une notification pour tous les enregistrements où « Traité » est « n ». Pour ce faire, spécifiez une instruction SELECT comme instruction de notification.
Une fois la notification reçue pour un certain enregistrement, définissez « Traité » sur « y ». Pour ce faire, exécutez une procédure stockée, PROCESS_RECORDS, qui met à jour la colonne « Traité ».
Pour illustrer la réception de notifications incrémentielles, nous procédons comme suit :
Générez le schéma pour la notification (opération entrante) et PROCESS_RECORDS (opération sortante) sur la table ACCOUNTACTIVITY.
Créez une orchestration avec les éléments suivants :
Emplacement de réception pour recevoir des messages de notification. Vous pouvez configurer pour la notification en spécifiant l’instruction SELECT comme suit :
SELECT TID,ACCOUNT,PROCESSED FROM SCOTT.ACCOUNTACTIVITY WHERE PROCESSED = ‘n’
Notes
Vous devez spécifier le nom de la table ainsi que le nom du schéma. Par exemple :
SCOTT.ACCOUNTACTIVITY
.Port d’envoi pour mettre à jour les lignes pour lesquelles une notification a déjà été envoyée. Vous allez exécuter la procédure stockée PROCESS_RECORDS sur ce port pour définir la valeur de la colonne « Traité » sur « y » pour les enregistrements pour lesquels une notification est reçue.
Notez que cette opération doit être exécutée après la réception des messages de notification afin que les lignes traitées soient mises à jour. Pour supprimer la surcharge liée à l’attente d’obtenir la réponse de notification, puis à la suppression manuelle d’un message de demande pour exécuter la procédure de PROCESS_RECORDS, vous allez générer le message de demande pour PROCESS_RECORDS procédure au sein de l’orchestration elle-même. Vous pouvez le faire à l’aide de la forme Construire un message au sein d’une orchestration.
Comment recevoir des messages de notification à partir de la base de données Oracle
L’exécution d’une opération sur la base de données Oracle à l’aide de l’adaptateur Oracle Database avec BizTalk Server implique les tâches procédurales décrites dans Blocs de construction pour développer des applications BizTalk avec Oracle Database. Pour configurer l’adaptateur pour recevoir des messages de notification, ces tâches sont les suivantes :
Créez un projet BizTalk, puis générez le schéma pour la procédure Notification (opération entrante) et PROCESS_RECORDS (opération sortante) sur la table ACCOUNTACTIVITY. Si vous le souhaitez, vous pouvez spécifier des valeurs pour les propriétés de liaison InboundOperationType, NotificationPort et NotificationStatement .
Créez un message dans le projet BizTalk pour recevoir une notification à partir de la base de données Oracle.
Créez des messages dans le projet BizTalk pour exécuter la procédure stockée PROCESS_RECORDS et recevoir des messages de réponse.
Créez une orchestration qui effectue les opérations suivantes :
Reçoit un message de notification de la base de données Oracle.
Crée un message pour exécuter la procédure PROCESS_RECORDS.
Envoie ce message à la base de données Oracle pour sélectionner et mettre à jour les enregistrements et recevoir une réponse.
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.
Notes
Pour les opérations entrantes, comme la réception de messages de notification, vous devez uniquement configurer un port de réception unidirectionnel WCF-Custom ou WCF-OracleDB. Les ports de réception bidirectionnel ne sont pas pris en charge 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 de notification et PROCESS_RECORDS procédure. Pour plus d’informations sur la façon de générer le schéma, consultez Récupérer des métadonnées pour les opérations Oracle dans Visual Studio . Effectuez les tâches suivantes lors de la génération du schéma. Ignorez la première étape si vous ne souhaitez pas spécifier les propriétés de liaison au moment de la conception.
Spécifiez une valeur pour les propriétés de liaison InboundOperationType, NotificationPort et NotificationStatement lors de la génération du schéma. Pour plus d’informations sur cette propriété de liaison, consultez Utilisation de l’adaptateur BizTalk pour les propriétés de liaison de base de données Oracle. Pour obtenir des instructions sur la façon de spécifier des propriétés de liaison, consultez Spécification de propriétés de liaison.
Sélectionnez le type de contrat service (opérations entrantes).
Générez le schéma pour l’opération notification .
Sélectionnez le type de contrat client (opérations sortantes).
Générez le schéma pour la procédure PROCESS_RECORDS . Cette procédure est disponible sous le package ACCOUNT_PKG .
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 trois messages : un pour recevoir des notifications de la base de données Oracle, un pour exécuter la procédure PROCESS_RECORDS et un pour recevoir la réponse pour la procédure.
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 le 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 d’orchestration du projet BizTalk, s’il n’est pas déjà ouvert. Cliquez sur Affichage, pointez sur Autres fenêtres, puis cliquez sur Vue d’orchestration.
Dans la vue 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 :
Propriété Pour Identificateur Tapez NotifyReceive
.Type de message Dans la liste déroulante, développez Schémas, puis sélectionnez OracleNotifyIncremental.OracleDBBinding.Notification, où OracleNotifyIncremental est le nom de votre projet BizTalk. OracleDBBinding est le schéma généré pour l’opération notification . Répétez l’étape 3 pour créer deux nouveaux messages. Dans le volet Propriétés du nouveau message, procédez comme suit :
Définissez Identificateur sur Définissez Type de message sur Procédure OracleNotifyIncremental.OracleDBBinding1.PROCESS_RECORDS, où OracleDBBinding1 est le schéma généré pour la procédure PROCESS_RECORDS . ProcedureResponse OracleNotifyIncremental.OracleDBBinding1.PROCESS_RECORDSResponse
Configuration de l’orchestration
Vous devez créer une orchestration BizTalk pour utiliser BizTalk Server pour recevoir des messages de notification à partir de la base de données Oracle, puis mettre à jour les lignes pour lesquelles la notification a été reçue. Dans cette orchestration, l’adaptateur reçoit le message de notification basé sur l’instruction SELECT spécifiée pour la propriété de liaison NotificationStatement . Le message de notification est reçu à un emplacement FILE. Une fois la réponse reçue, l’orchestration construit un message pour appeler la procédure PROCESS_RECORDS, qui met à jour les lignes pour lesquelles la notification est reçue. La réponse à ce message est également reçue au même emplacement FILE.
Par conséquent, votre orchestration doit contenir les éléments suivants :
Un port de réception unidirectionnel WCF-Custom ou WCF-OracleDB pour recevoir des messages de notification.
Une WCF-Custom bidirectionnel ou un port d’envoi WCF-OracleDB pour envoyer des messages pour exécuter la procédure de PROCESS_RECORDS.
Forme Construire un message pour construire des messages, pour exécuter PROCESS_RECORDS procédure, dans l’orchestration.
Un port d’envoi FILE pour enregistrer le message de notification et la réponse pour la procédure PROCESS_RECORDS.
Recevoir et envoyer des formes.
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 Forme sont les noms des formes de message affichées dans l’orchestration qui vient d’être mentionnée.
Forme | Type de forme | Propriétés |
---|---|---|
ReceiveNotification | Recevoir | - Définissez Nom sur ReceiveNotification - Définissez Activer sur True |
SaveNotification | Envoyer | - Définissez Nom sur SaveNotification |
SendProcMessage | Envoyer | - Définissez Nom sur SendProcMessage |
ReceiveProcResponse | Recevoir | - Définissez Nom sur ReceiveProcResponse |
SaveProcResponse | Envoyer | - Définissez Nom sur SaveProcResponse |
Ajout d’une forme de message de construction
Vous pouvez utiliser la forme Construire un message pour générer un message de requête dans l’orchestration afin d’exécuter la procédure PROCESS_RECORDS. Pour ce faire, vous devez ajouter une forme De message de construction et une forme d’affectation de message à votre orchestration. Pour cet exemple, la forme Affectation de message appelle du code qui génère un message envoyé à la base de données Oracle pour exécuter la procédure. La forme Affectation de message définit également l’action du message à envoyer à la base de données Oracle.
Pour la forme de message de construction, définissez la propriété Message Construit surProcédure.
Le code permettant de générer la réponse peut faire partie de la même solution Visual Studio que votre projet BizTalk. Un exemple de code pour générer un message de réponse ressemble à ceci.
namespace SampleMessageCreator
{
public class SampleMessageCreator
{
private static XmlDocument Message;
private static string XmlFileLocation;
private static string ResponseDoc;
public static XmlDocument XMLMessageCreator()
{
XmlFileLocation = "C:\\TestLocation\\MessageIn";
try
{
ResponseDoc = (Directory.GetFiles(XmlFileLocation, "*.xml", SearchOption.TopDirectoryOnly))[0];
}
catch (Exception ex)
{
Console.WriteLine("Trying to get XML from: " + XmlFileLocation);
Console.WriteLine("EXCEPTION: " + ex.ToString());
throw ex;
}
//Create Message From XML
Message = new XmlDocument();
Message.PreserveWhitespace = true;
Message.Load(ResponseDoc);
return Message;
}
}
}
Pour que l’extrait de code ci-dessus puisse générer un message de demande, vous devez disposer d’un message de requête XML (pour la procédure PROCESS_RECORDS) à l’emplacement spécifié pour la XmlFileLocation
variable.
Notes
Une fois le projet généré, MessageCreator.dll est créé dans le répertoire du projet. Vous devez ajouter cette DLL au global assembly cache (GAC). Vous devez également ajouter le MessageCreator.dll en tant que référence dans le projet BizTalk.
Ajoutez l’expression suivante pour appeler ce code à partir de la forme Affectation de message et pour définir l’action pour le message. Pour ajouter une expression, double-cliquez sur la forme Affectation de message pour ouvrir l’éditeur d’expressions.
Procedure = SampleMessageCreator.SampleMessageCreator.XMLMessageCreator();
Procedure(WCF.Action) = "http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG/PROCESS_RECORDS";
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 affichés dans l’orchestration.
Port | Propriétés |
---|---|
OracleNotifyPort | - Définissez Identificateur sur OracleNotifyPort - Définissez Type sur OracleNotifyPortType - Définir le modèle de communication sur Unidirectionnel - Définir le sens de communication sur réception |
SaveMessagePort | - Définissez Identificateur sur SaveMessagePort - Définissez Type sur SaveMessagePortType - Définir le modèle de communication sur Unidirectionnel - Définir le sens de communication sur Envoyer - Créer une opération Notifier. Cette opération est utilisée pour les messages de notification. - Créer une procédure d’opération. Cette opération est utilisée pour sélectionner des messages de réponse. |
OracleOutboundPort | - Définir l’identificateur sur OracleOutboundPort - Définissez Type sur OracleOutboundPortType - Définir le modèle de communication sur Requête-réponse - Définir le sens de communication sur Send-Receive |
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 les messages pour les formes d’action et lier les messages aux ports. Les noms répertoriés dans la colonne Forme sont les noms des formes de message, comme indiqué dans l’orchestration mentionnée précédemment.
Forme | Propriétés |
---|---|
ReceiveNotification | - Définir Message sur NotifyReceive - Définissez Opération sur OracleNotifyPort.Notify.Request |
SaveNotification | - Définir Message sur NotifyReceive - Définissez Opération sur SaveMessagePort.Notify.Request |
SendProcMessage | - Définir message sur Procédure - Définissez Opération sur OracleOutboundPort.Procedure.Request |
ReceiveProcResponse | - Définissez Message sur ProcedureResponse - Définissez Opération sur OracleOutboundPort.Procedure.Response |
SaveProcResponse | - Définissez Message sur ProedureResponse - Définissez Opération sur SaveMessagePort.Procedure.Request |
Une fois que vous avez spécifié ces propriétés, les formes et les ports de message sont connectés et votre orchestration est terminée.
Vous devez maintenant générer la solution BizTalk et la déployer sur un BizTalk Server. 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 BizTalk Server. Vous devez utiliser la console Administration BizTalk Server pour configurer l’application. Pour obtenir une procédure pas à pas, 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.
Mappage des ports que vous avez créés dans votre orchestration aux ports physiques dans la console Administration BizTalk Server. Pour cette orchestration, vous devez :
Définissez un WCF-Custom physique ou WCF-OracleDB port de réception unidirectionnel. Ce port écoute les notifications provenant de 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 à l’adaptateur de base de données Oracle. Veillez à spécifier les propriétés de liaison suivantes pour le port de réception.
Important
Vous n’avez pas besoin d’effectuer cette étape si vous avez spécifié les propriétés de liaison au moment du design. Dans ce cas, vous pouvez créer un port de réception, avec les propriétés de liaison requises définies, en important le fichier de liaison créé par le complément Consume Adapter Service. Pour plus d’informations, consultez Configurer une liaison de port physique à l’aide d’un fichier de liaison de port à Oracle Database.
Binding, propriété Valeur InboundOperationType Définissez cette valeur sur Notification. NotificationPort Spécifie le numéro de port que ODP.NET devez ouvrir pour écouter la notification de modification de base de données à partir d’une base de données Oracle. Définissez-le sur le même numéro de port que vous devez avoir ajouté à la liste des exceptions du Pare-feu Windows. Pour obtenir des instructions sur l’ajout de ports à la liste d’exceptions du Pare-feu Windows, consultez https://go.microsoft.com/fwlink/?LinkID=196959.
Important: Si vous définissez cette valeur sur la valeur par défaut de -1, vous devez désactiver complètement le Pare-feu Windows pour recevoir des messages de notification.NotificationStatement Définissez cette valeur sur :
SELECT TID,ACCOUNT,PROCESSED FROM SCOTT.ACCOUNTACTIVITY WHERE PROCESSED = ‘n’
Note: Vous devez spécifier le nom de la table ainsi que le nom du schéma. Par exemple :SCOTT.ACCOUNTACTIVITY
.NotifyOnListenerStart Définissez cette valeur sur True. Pour plus d’informations sur les différentes propriétés de liaison, consultez Utilisation de l’adaptateur BizTalk pour les propriétés de liaison de base de données Oracle.
Notes
Nous vous recommandons de configurer le niveau d’isolation des transactions et le délai d’expiration de la transaction lors de l’exécution d’opérations entrantes à l’aide de l’adaptateur Oracle Database. Pour ce faire, ajoutez le comportement du service lors de la configuration du port de réception WCF-Custom ou WCF-OracleDB. Pour obtenir des instructions sur l’ajout du comportement du service, consultez Configurer le niveau d’isolation des transactions et Délai d’expiration des transactions.
Définissez un WCF-Custom physique ou WCF-OracleDB un port d’envoi pour envoyer des messages à la base de données Oracle pour exécuter la procédure de PROCESS_REOCRDS. Vous devez également spécifier l’action dans le port d’envoi.
Définissez un emplacement sur le disque dur et un port de fichier correspondant où l’orchestration BizTalk supprime les messages de la base de données Oracle. Il s’agit des messages de notification reçus de la base de données Oracle et des messages pour la procédure PROCESS_RECORDS que vous exécutez via le port d’envoi WCF-Custom ou WCF-OracleDB.
Démarrage de l’application
Vous devez démarrer l’application BizTalk pour recevoir des messages de notification de la base de données Oracle et exécuter la procédure de PROCESS_RECORDS. 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 reçoit les messages de notification de la base de données Oracle en cours d’exécution.
Le port d’envoi WCF-Custom ou WCF-OracleDB pour exécuter la procédure PROCESS_RECORDS est en cours d’exécution.
Le port d’envoi FILE, qui reçoit les messages de la base de données Oracle, est en cours d’exécution.
L’orchestration BizTalk pour l’opération est en cours d’exécution.
Exécution de l’opération
Supposons que la table ACCOUNTACTIVITY contient déjà des enregistrements. Vérifiez également que le message XML pour exécuter PROCESS_RECORDS procédure est disponible dans C :\TestLocation\MessageIn. Le fichier XML doit ressembler à ce qui suit :
<PROCESS_RECORDS xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG"/>
Une fois l’orchestration BizTalk démarrée, l’ensemble d’actions suivant se produit, dans la même séquence :
L’adaptateur reçoit un message de notification semblable à ce qui suit :
\<?xml version="1.0" encoding="utf-8" ?\> <Notification xmlns="http://Microsoft.LobServices.OracleDB/2007/03/Notification/"> <Info>ListenerStarted</Info> <Source>OracleDBBinding</Source> <Type>Startup</Type> </Notification>
Ce message avertit que le port de réception pour la réception des messages de notification est démarré. Notez que la valeur de l’élément
<Info>
est « ListnerStarted ».L’adaptateur exécute la procédure PROCESS_RECORDS. La réponse suivante de la base de données Oracle concerne la procédure.
<?xml version="1.0" encoding="utf-8" ?> <PROCESS_RECORDSResponse xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG"> <TABLE_DATA> <xs:schema id="NewDataSet" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element msdata:IsDataSet="true" name="NewDataSet"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="NewTable"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" name="TID" type="xs:decimal" /> <xs:element minOccurs="0" name="ACCOUNT" type="xs:decimal" /> <xs:element minOccurs="0" name="PROCESSED" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> <diffgr:diffgram xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"> <NewDataSet xmlns=""> <NewTable> <TID>1</TID> <ACCOUNT>100001</ACCOUNT> <PROCESSED>n</PROCESSED> </NewTable> <NewTable> ...... ...... </NewTable> ...... ...... </NewDataSet> </diffgr:diffgram> </TABLE_DATA> </PROCESS_RECORDSResponse>
Il s’agit de la réponse pour l’instruction SELECT exécutée dans le cadre de la procédure PROCESS_RECORDS.
La procédure PROCESS_RECORDS met également à jour les lignes pour définir PROCESSED sur « y ». Par conséquent, l’adaptateur reçoit une autre notification pour l’opération De mise à jour.
<?xml version="1.0" encoding="utf-8" ?> <Notification xmlns="http://Microsoft.LobServices.OracleDB/2007/03/Notification/"> <Details> <NotificationDetails> <ResourceName>SCOTT.ACCOUNTACTIVITY</ResourceName> <Info>32</Info> <QueryId>0</QueryId> </NotificationDetails> </Details> <Info>Update</Info> <ResourceNames> <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">SCOTT.ACCOUNTACTIVITY</string> </ResourceNames> <Source>Data</Source> <Type>Change</Type> </Notification>
Notez que l’élément
Info
contient « Update ».Après la deuxième notification, l’adaptateur exécute à nouveau la procédure PROCESS_RECORDS. Toutefois, étant donné qu’il n’existe aucun enregistrement où la colonne PROCESSED est définie sur 'n', la procédure retourne une réponse vide ressemblant à ce qui suit.
<?xml version="1.0" encoding="utf-8" ?> <PROCESS_RECORDSResponse xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG"> <TABLE_DATA> <xs:schema id="NewDataSet" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element msdata:IsDataSet="true" name="NewDataSet"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="NewTable"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" name="TID" type="xs:decimal" /> <xs:element minOccurs="0" name="ACCOUNT" type="xs:decimal" /> <xs:element minOccurs="0" name="PROCESSED" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> <diffgr:diffgram xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"> <NewDataSet xmlns="" /> </diffgr:diffgram> </TABLE_DATA> </PROCESS_RECORDSResponse>
Bonnes 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 liaison. Une fois que vous avez généré un fichier de liaison, vous pouvez importer les paramètres de configuration à partir du fichier, de sorte que vous n’avez pas besoin de créer les ports d’envoi et de réception 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
Réception de notifications de modification de base de données Oracle à l’aide de BizTalk Server