Exécuter des opérations sur des tables avec des types de données BFILE dans Oracle Database à l’aide de BizTalk Server
L’adaptateur Oracle Database prend en charge le type de données BFILE dans les tables et les procédures stockées. Cette section fournit des informations sur la façon d’effectuer des opérations sur des tables qui ont une colonne de type de données BFILE. Pour plus d’informations sur la façon dont l’adaptateur Oracle Database prend en charge BFILE, consultez Operations on Tables With BFILE Data Types in Oracle Database.
Configuration de votre serveur de base de données Oracle pour les opérations sur BFILE
Cette section montre comment appeler une procédure qui insère un enregistrement dans le SCOTT. Table CUSTOMERDOC. Cette table contient une colonne de type de données BFILE et est créée en exécutant les scripts SQL fournis avec les exemples BizTalk Adapter Pack. Pour en savoir plus sur les exemples et les scripts SQL, consultez Exemples pour l’adaptateur Oracle Database.
Après avoir exécuté le script pour créer la table CUSTOMERDOC, vous devez effectuer certaines actions sur l’ordinateur exécutant la base de données Oracle pour activer les opérations sur les types de données BFILE. Les tâches que vous devez effectuer sur la base de données Oracle sont les suivantes :
Créez un répertoire C :\MYDIR sur l’ordinateur exécutant la base de données Oracle.
Créez un répertoire logique dans la base de données Oracle. Cela nécessite généralement un utilisateur disposant de privilèges SYSDBA. Par exemple :
CREATE OR REPLACE DIRECTORY MYDIR AS 'C:\MYDIR';
Ajoutez des privilèges à l’utilisateur pour accéder au répertoire logique dans Oracle. Par exemple :
GRANT READ, WRITE ON DIRECTORY MYDIR to SCOTT;
Copiez les fichiers à accéder à l’emplacement du répertoire physique, sur l’ordinateur exécutant la base de données Oracle, associé au répertoire logique dans Oracle. Vous avez créé ce répertoire à l’étape 1.
Sur la base de l’exemple ci-dessus, copiez un fichier customer_profile.txt dans le répertoire C :\MYDIR. Ce fichier est désormais disponible pour les opérations BFILE. Pour plus d’informations sur l’exécution d’opérations, consultez Exécution d’opérations sur des tables avec des données de types d’objets volumineux à l’aide de BizTalk Server dans Oracle Database.
Important
L’opération ReadLOB est prise en charge sur les tables avec le type de données BFILE. L’opération UpdateLOB n’est PAS prise en charge. Toutefois, les utilisateurs peuvent également utiliser l’opération UPDATE.
Comment effectuer des opérations à l’aide de types de données BFILE
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 des tâches procédurales décrites dans Blocs de construction pour développer des applications BizTalk avec Oracle Database. Pour appeler une procédure qui insère un enregistrement dans le SCOTT. Table CUSTOMERDOC, ces tâches sont les suivantes :
Créez un projet BizTalk et générez le schéma pour la procédure stockée CREATE_CUSTOMERDOC.
Créez des messages dans le projet BizTalk pour l’envoi et la réception de messages à partir de la base de données Oracle.
Créez une orchestration pour appeler l’opération sur la table ou la vue de base de données Oracle.
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.
Démarrez l’application BizTalk.
Cette rubrique fournit des instructions pour effectuer ces tâches.
Exemple basé sur cette rubrique
Un exemple, Operate_BFILE, basé sur cette rubrique est également fourni avec le pack d’adaptateurs BizTalk. Pour plus d’informations, consultez Exemples pour l’adaptateur Oracle Database.
Génération d’un schéma
Dans cette rubrique, pour montrer comment effectuer des opérations sur une table avec des colonnes BFILE, nous allons appeler la procédure CREATE_CUSTOMERDOC. Cette procédure est créée sous le schéma SCOTT\Package\ACCOUNT_PKG en exécutant les scripts SQL fournis avec les exemples. Cette procédure prend le type d’enregistrement BFILE et ajoute un enregistrement dans la table CUSTOMERDOC. Pour plus d’informations sur les scripts SQL, consultez Exemples de schémas.
Pour plus d’informations sur la façon de générer un schéma, consultez Récupérer des métadonnées pour les opérations Oracle dans Visual Studio .
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. Vous devez lier le schéma que vous avez généré à la première étape aux messages de la fenêtre Vue d’orchestration du projet BizTalk.
Pour cette rubrique, vous devez créer deux messages : l’un pour envoyer une demande à la base de données Oracle et l’autre pour recevoir une réponse.
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
Si la fenêtre Vue Orchestration du projet BizTalk n’est pas déjà ouverte, ouvrez-la. Pour ce faire, cliquez sur Affichage, pointez sur Autres fenêtres, puis cliquez sur Vue d’orchestration.
En mode 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 Demande. Type de message Dans la liste déroulante, développez Schémas, puis sélectionnez BFILE_Operations.OracleDBBindingSchema.CREATE_CUSTOMERDOC, où BFILE_Operations est le nom de votre projet BizTalk. OracleDBBindingSchema est le schéma généré pour la procédure CREATE_CUSTOMERDOC. Répétez l’étape 2 pour créer un nouveau message. Dans le volet Propriétés du nouveau message, procédez comme suit :
Propriété Pour Identificateur Type Réponse. Type de message Dans la liste déroulante, développez Schémas, puis sélectionnez BFILE_Operations.OracleDBBindingSchema.CREATE_CUSTOMERDOCResponse.
Configuration de l’orchestration
Vous devez créer une orchestration BizTalk pour utiliser BizTalk Server pour exécuter une procédure. Dans cette orchestration, vous supprimez un message de demande à un emplacement de réception défini. L’adaptateur Oracle Database consomme ce message et le transmet à la base de données Oracle via ODP. La réponse de la base de données Oracle est enregistrée dans un autre emplacement. Une orchestration classique pour effectuer des opérations sur des colonnes BFILE dans une table de base de données Oracle contient :
Envoyer et recevoir des formes pour envoyer des messages à la base de données Oracle et recevoir des réponses.
Port de réception unidirectionnel pour recevoir les messages de demande à envoyer à la base de données Oracle.
Port d’envoi bidirectionnel pour envoyer des messages de demande à la base de données Oracle et recevoir des réponses.
Port d’envoi unidirectionnel pour envoyer les réponses de la base de données Oracle à un dossier.
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 |
---|---|---|
ReceiveMessage | Recevoir | - Définissez Nom sur ReceiveMessage - Définissez Activer sur True |
SendMessage | Envoyer | - Définissez Nom sur SendMessage |
ReceiveResponse | Recevoir | - Définissez Nom sur ReceiveResponse - Définissez Activer sur False |
SendResponse | Envoyer | - Définissez Nom sur SendResponse |
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 |
---|---|
FileIn | - Définissez Identificateur sur FileIn - Définissez Type sur FileInType - Définir le modèle de communication sur Unidirectionnel - Définir le sens de communication sur réception |
LOBPort | - Définissez Identificateur sur LOBPort - Définissez Type sur LOBPortType - Définir le modèle de communication sur Requête-réponse - Définir le sens de communication sur Send-Receive |
SaveResponse | - Définir l’identificateur sur SaveResponse - Définissez Type sur SaveResponseType - 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 les 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 |
---|---|
ReceiveMessage | - Définir message sur Requête - Définissez Opérationsur FileIn.Create_BFILE. Demande |
SendMessage | - Définir message sur Requête - Définissez Opérationsur LOBPort.Create_BFILE. Demande |
ReceiveResponse | - Définir message sur Réponse - Définissez Opérationsur LOBPort.Create_BFILE. Réponse |
SendResponse | - Définir message sur Réponse - Définissez Opérationsur SaveResponse.Create_BFILE. Demande |
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 emplacement sur le disque dur et un port de fichier correspondant où vous allez supprimer un message de demande. L’orchestration BizTalk consomme le message de requête et l’envoie à la base de données Oracle.
Définissez un emplacement sur le disque dur et un port de fichier correspondant où l’orchestration BizTalk supprime le message de réponse contenant la réponse de la base de données Oracle.
Définissez un WCF-Custom physique ou WCF-OracleDB envoyer un port pour envoyer des messages à la base de données Oracle. Vous devez également spécifier l’action dans le port d’envoi. Pour plus d’informations sur la création de ports WCF-Custom ou de WCF-OracleDB, consultez Configurer manuellement la liaison de port physique à l’adaptateur de base de données Oracle.
Notes
La génération du schéma à l’aide du complément De projet BizTalk du service Consume Adapter crée également un fichier de liaison qui contient des informations sur les ports et les actions à définir pour ces ports. Vous pouvez importer ce fichier de liaison à partir de la console d’administration BizTalk Server pour créer des ports d’envoi (pour les appels sortants) ou de réception (pour les appels entrants). Pour plus d’informations, consultez Configurer une liaison de port physique à l’aide d’un fichier de liaison de port à Oracle Database.
Démarrage de l’application
Vous devez démarrer l’application BizTalk pour appeler la procédure qui crée un enregistrement dans la table CUSTOMERDOC. 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 port de réception FILE pour recevoir les messages de demande pour l’orchestration est en cours d’exécution.
Le port d’envoi FILE pour recevoir les messages de réponse de l’orchestration est en cours d’exécution.
Le port WCF-Custom ou WCF-OracleDB envoyer des messages à 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
Après avoir exécuté l’application, vous devez supprimer un message de demande à l’emplacement de réception FILE. Le schéma du message de demande doit être conforme au schéma de la procédure que vous avez générée précédemment. Consultez Schémas de message pour les fonctions et procédures pour plus d’informations sur le schéma de message de requête pour la procédure d’appel à l’aide de l’adaptateur Oracle Database.
Par exemple, le message de demande d’appel de la procédure CREATE_CUSTOMERDOC est :
<CREATE_CUSTOMERDOC xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG">
<CNAME>John Smith</CNAME>
<CDOC>MYDIR/John_Smith_profile.txt</CDOC>
</CREATE_CUSTOMERDOC>
Notes
Le fichier texte, John_Smith_profile.txt doit être présent dans l’emplacement du répertoire physique associé au répertoire logique dans Oracle. Pour cet exemple, le fichier texte doit être présent dans C :\MYDIR
L’orchestration consomme le message et l’envoie à la base de données Oracle. La réponse de la base de données Oracle est enregistrée à l’autre emplacement FILE défini dans le cadre de l’orchestration. Par exemple, la réponse de la base de données Oracle pour le message de demande ci-dessus est :
<?xml version="1.0" encoding="utf-8"?>
<CREATE_CUSTOMERDOCResponse xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Package/ACCOUNT_PKG"></CREATE_CUSTOMERDOCResponse>
Notes
Vous pouvez créer une orchestration similaire pour lire les données des tables qui ont des champs de type BFILE. Le script SQL fourni avec le pack d’adaptateurs BizTalk crée un ACCOUNT_PKG qui contient une procédure GET_CUSTOMERDOC. Vous pouvez utiliser cette procédure pour récupérer des données BFILE à partir de SCOTT. Table CUSTOMERDOC.
Un exemple, Operate_BFILE, est également inclus avec les exemples pour BizTalk Adapter Pack. Cet exemple montre comment insérer des enregistrements dans scott. Table CUSTOMERDOC utilisant la procédure stockée CREATE_CUSTOMERDOC (comme décrit dans cette rubrique).) L’exemple montre également comment lire les données BFILE à partir du SCOTT. Table CUSTOMERDOC utilisant GET_CUSTOMERDOC procédure stockée.
Exceptions possibles
Pour plus d’informations sur les exceptions que vous pouvez rencontrer lors de l’exécution d’une opération DML à l’aide de BizTalk Server, consultez Exceptions et gestion des erreurs.
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 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 de ne pas avoir à créer les ports d’envoi, les ports de réception, etc. 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
Blocs de construction pour développer des applications BizTalk avec Oracle Database