Exécuter des opérations sur des tables et des vues avec des types de données volumineux à l’aide de l’adaptateur SQL
L’adaptateur SQL permet aux clients d’adaptateur de lire et de mettre à jour des données dans des colonnes de types de données volumineux, c’est-à-dire varchar(max), nvarchar(max) ou varbinary(max). Pour lire les données de ces colonnes, les clients d’adaptateur peuvent utiliser l’opération Sélectionner. Pour insérer ou mettre à jour des données dans ces colonnes, l’adaptateur expose une opération Set<column_name> , où <column_name> est le nom de la colonne de type varchar(max), nvarchar(max) ou varbinary(max).
En outre, dans SQL Server 2008, la colonne varbinay(max) peut stocker des données non structurées telles que des documents texte et des images. Ces données non structurées sont appelées données FILESTREAM. Les données FILESTREAM peuvent être stockées sous forme de fichiers sur le système de fichiers. L’adaptateur SQL permet au client d’entrer des données FILESTREAM dans des colonnes de type varbinary(max). Pour plus d’informations sur le stockage FILESTREAM, consultez Vue d’ensemble de FILESTREAM.
Cette rubrique fournit des informations sur certaines tâches que vous devez effectuer sur l’ordinateur exécutant SQL Server et sur l’ordinateur exécutant le client de l’adaptateur pour pouvoir insérer ou mettre à jour des données FILESTREAM. Cette rubrique fournit également des instructions sur l’exécution d’opérations Set<column_name> pour insérer des données FILESTREAM.
Notes
Si vous effectuez une opération sur des tables qui ont des colonnes de types définis par l’utilisateur, veillez à vous reporter à Opérations sur les tables et les vues avec des types User-Defined à l’aide de l’adaptateur SQL avant de commencer à développer votre application.
Prérequis
Vous devez effectuer les tâches suivantes sur l’ordinateur exécutant SQL Server et sur l’ordinateur exécutant le client de l’adaptateur.
Sur l’ordinateur exécutant SQL Server
Vous devez activer FILESTREAM sur le SQL Server instance. Pour plus d’informations, consultez https://go.microsoft.com/fwlink/?LinkId=122486.
Vous devez créer une base de données compatible FILESTREAM. Pour plus d’informations, consultez https://go.microsoft.com/fwlink/?LinkId=122487.
Vous devez disposer d’une table pour stocker les données FILESTREAM. Pour plus d’informations, consultez https://go.microsoft.com/fwlink/?LinkId=122488.
Vous devez configurer MSDTC sur l’ordinateur hébergeant la base de données SQL Server. Pour obtenir des instructions sur la configuration de MSDTC, consultez Configurer MSDTC sur SQL Server et le client d’adaptateur.
Sur l’ordinateur exécutant le client de l’adaptateur
Le KIT DE développement logiciel (SDK) SQL Client Connectivity doit être installé. Vous pouvez installer le Kit de développement logiciel (SDK) SQL Client Connectivity en exécutant le programme d’installation de SQL Server 2008 et en sélectionnant KIT DE DÉVELOPPEMENT LOGICIEL (SDK) de connectivité client SQL dans la page Sélection des fonctionnalités de l’Assistant. L’adaptateur utilise le sqlncli10.dll, installé avec le KIT DE développement logiciel (SDK) de connectivité du client SQL, pour effectuer des opérations FILESTREAM.
Vous devez configurer MSDTC sur l’ordinateur exécutant le client de l’adaptateur. Pour obtenir des instructions sur la configuration de MSDTC, consultez Configurer MSDTC sur SQL Server et le client d’adaptateur.
Une fois ces tâches terminées, vous êtes tous prêts à insérer ou à mettre à jour des données FILESTREAM dans SQL Server tables de base de données 2008.
Comment cette rubrique illustre les opérations sur les types de données volumineux
Pour montrer comment effectuer des opérations Set<column_name> sur des tables avec des types de données volumineux, prenez une table, Records, qui contient des colonnes ID et Document. La colonne Id est de type uniqueidentifier et accepte un GUID. La colonne Document est de type VARBINARY(MAX). Supposons que la colonne Id possède déjà un GUID « ».438B7B4C-5491-409F-BCC1-78817C399EC3
Pour mettre à jour la colonne Document, l’adaptateur expose l’opération SetDocument.
Notes
Pour SQL Server 2008, pour illustrer les opérations FILESTREAM, supposons que la colonne Document peut stocker des données FILESTREAM.
Comment effectuer des opérations sur une base de données SQL Server
L’exécution d’une opération sur une base de données SQL Server à l’aide de l’adaptateur SQL avec BizTalk Server implique des tâches procédurales décrites dans Blocs de construction pour développer des applications BizTalk avec l’adaptateur SQL. Pour effectuer des opérations sur des tables avec des types de données volumineux, ces tâches sont les suivantes :
Créez un projet BizTalk et générez le schéma pour l’opération Définir<column_name> . Pour cette rubrique, générez le schéma pour l’opération SetDocument pour la table Records .
Créez des messages dans le projet BizTalk pour l’envoi et la réception de messages à partir de la base de données SQL Server.
Créez une orchestration pour appeler l’opération SetDocument sur la table Records.
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, FILESTREAMOperation, basé sur cette rubrique, est fourni avec le pack d’adaptateurs BizTalk. Pour plus d’informations, consultez Exemples pour l’adaptateur SQL.
Génération du schéma
Pour montrer comment mettre à jour des valeurs dans des colonnes de types de données volumineux, générez un schéma pour l’opération SetDocument de la table Records. Vous devez créer un projet BizTalk et utiliser le complément Consume Adapter Service pour générer le schéma. Pour plus d’informations sur la génération du schéma, consultez Récupération de métadonnées pour les opérations SQL Server dans Visual Studio à l’aide de l’adaptateur SQL.
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 maintenant créer des messages pour l’orchestration et les lier aux schémas que vous avez générés à l’étape précédente.
Pour créer des messages et créer un lien vers le schéma
Ajoutez une orchestration au projet BizTalk. À partir 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.
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.
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 du Message_1, procédez comme suit :
Propriété Pour Identificateur Saisissez Request
Type de message Dans la liste déroulante, développez Schémas, puis sélectionnez SetOperation.TableOperation_dbo_Records.SetDocument, où SetOperation est le nom de votre projet BizTalk. TableOperation_dbo_Records est le schéma généré pour l’opération SetDocument sur la table Records. Répétez l’étape 2 pour créer un message. Dans le volet Propriétés du nouveau message, procédez comme suit :
Propriété Pour Identificateur Saisissez Response
Type de message Dans la liste déroulante, développez Schémas, puis sélectionnez SetOperation.TableOperation_dbo_Records.SetDocumentResponse.
Configuration de l’orchestration
Vous devez créer une orchestration BizTalk pour utiliser BizTalk Server pour effectuer une opération sur SQL Server. Dans cette orchestration, vous supprimez un message de demande à un emplacement de réception défini. L’adaptateur SQL consomme ce message et le transmet à SQL Server. La réponse de SQL Server est enregistrée à un autre emplacement. Vous devez inclure des formes Envoyer et Recevoir pour envoyer des messages à SQL Server et recevoir des réponses, respectivement. Un exemple d’orchestration pour l’opération SetDocument 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 |
---|---|
MessageIn | - Définissez Identificateur sur MessageIn - Définissez Type sur MessageInType - 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 |
ResponseOut | - Définissez Identificateur sur ResponseOut - Définissez Type sur ResponseOutType - 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ération sur MessageIn.FileStream.Request |
SendMessage | - Définir message sur Requête - Définissez Opération sur LOBPort.FileStream.Request |
ReceiveResponse | - Définir message sur Réponse - Définissez Opération sur LOBPort.FileStream.Response |
SendResponse | - Définir message sur Réponse - Définissez Opération sur ResponseOut.FileStream.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 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 de la console d’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 SQL Server.
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 SQL Server.
Définissez un port d’envoi WCF-Custom physique ou WCF-SQL pour envoyer des messages à la base de données SQL Server. Vous devez également spécifier l’action dans le port d’envoi. Pour plus d’informations sur la création de ports, consultez Configurer manuellement une liaison de port physique à l’adaptateur SQL.
Important
L’opération permettant d’entrer des données FILESTREAM doit être effectuée dans une transaction. Par conséquent, assurez-vous que la propriété de liaison UseAmbientTransaction a la valeur True sur le port d’envoi WCF-Custom ou WCF-SQL. Pour plus d’informations sur la propriété de liaison, consultez En savoir plus sur l’adaptateur BizTalk pour SQL Server propriétés de liaison de l’adaptateur.
Important
Pour effectuer une opération d’insertion de données FILESTREAM, vous devez toujours utiliser l’authentification Windows pour vous connecter à SQL Server sur le port d’envoi WCF-Custom ou WCF-SQL. Par conséquent, sous l’onglet Informations d’identification de la boîte de dialogue Propriétés du port, sélectionnez l’option Ne pas utiliser l’authentification unique, puis laissez le nom d’utilisateur et le mot de passe vides.
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 pour utiliser l’adaptateur SQL.
Démarrage de l’application
Vous devez démarrer l’application BizTalk pour effectuer l’opération SetDocument sur la table 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 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 d’envoi WCF-Custom ou WCF-SQL pour envoyer des messages à la base de données SQL Server 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 l’opération SetDocument que vous avez générée précédemment. Par exemple, le message de demande de mise à jour de la colonne Document est :
<SetDocument xmlns="http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/Records">
<Filter>WHERE Id='438B7B4C-5491-409F-BCC1-78817C399EC3'</Filter>
<Data>UwBlAHQAdgBfAHYAYQByAGIAaQBuAGEAcgB5AE0AQQBYAA==</Data>
</SetDocument>
Important
L’élément Filter
doit contenir la clause WHERE en fonction de laquelle l’adaptateur met à jour les enregistrements. L’élément Data
doit contenir une valeur encodée en base64 que vous souhaitez insérer dans la colonne Document.
Ce message de demande met à jour la colonne Document avec la valeur spécifiée. L’orchestration consomme le message et l’envoie à la base de données SQL Server. La réponse de la base de données SQL Server 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 SQL Server pour le message de demande précédent est :
<?xml version="1.0" encoding="utf-8" ?>
<SetDocumentResponse xmlns="http://schemas.microsoft.com/Sql/2008/05/TableOp/dbo/Records" />
L’adaptateur envoie une réponse vide pour l’opération Définir<column_name> .
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 des éléments tels que les ports d’envoi et les ports de réception pour la même orchestration. Pour plus d’informations sur les fichiers de liaison, consultez Réutiliser les liaisons d’adaptateur.