Agrégation (exemple BizTalk Server)

La fonction de cet exemple est de générer une fonctionnalité d'agrégation de messages à l'aide des orchestrations et des pipelines. Plus précisément, l'orchestration que nous allons générer :

  1. Reçoit un ensemble de messages corrélé. Les messages sont corrélés en fonction de l'URI du partenaire de destination qui est extrait du contenu d'un message.

  2. Regroupe les messages reçus au sein d'un seul lot d'échange via l'exécution d'un pipeline d'envoi XML.

  3. Génère un message d'échange XML toutes les minutes ou dès qu'elle dispose d'un nombre de messages suffisant à agréger.

Accès à l'exemple

<Chemin d’accès> des exemples\Pipelines\Aggregator

Le tableau suivant répertorie les fichiers de cet exemple.

Fichier(s) Description
Aggregator.sln Fichier de solution Visual Studio pour l'exemple.
AggretatorBinding.xml Fichier de liaison pour l'exemple.
Cleanup.bat Utilisé pour annuler le déploiement des assemblys et les supprimer du Global Assembly Cache (GAC). Supprime les ports d'envoi et de réception. Supprime les répertoires virtuels Microsoft Internet Information Services (IIS) le cas échéant.
Setup.bat Utilisé pour générer et initialiser cet exemple.
Dans le dossier Aggregate :

Aggregate.btproj
Projet BizTalk pour l'agrégation d'orchestration.
Dans le dossier Aggregator :

Aggregate.odx
Orchestration qui collecte et regroupe les messages corrélés, puis qui exécute le pipeline d'envoi afin de les assembler en un seul échange.
Dans le dossier Aggregate :

SuspendMessage.odx
Orchestration permettant d'interrompre les messages qui ne peuvent pas être traités au sein de l'agrégation d'orchestration.
Dans le dossier PipelinesAndSchemas :

FFReceivePipeline.btp
Pipeline de réception avec Désassembleur de fichier plat.
Dans le dossier PipelinesAndSchemas :

Instance1.txt, Instance2.txt, Instance3.txt, Instance4.txt
Instances de document pour l'exemple. Instance1.txt et Instance2.txt doivent être ajoutés à un échange pour le partenaire http://www.contoso.comde destination , tandis que Instance3.txt et Instance4.txt doivent être ajoutés à un échange pour le partenaire de http://www.northwind.comdestination .
Dans le dossier PipelinesAndSchemas :

Invoice.xsd, InvoiceEnvelope.xsd
Schémas du document et de l'enveloppe pour l'échange de sortie.
Dans le dossier PipelinesAndSchemas :

PipelinesAndSchemas.btproj
Projet BizTalk pour les schémas et les pipelines.
Dans le dossier PipelinesAndSchemas :

PropertySchema.xsd
Schéma de propriété pour l'exemple.
Dans le dossier PipelinesAndSchemas :

XMLAggregatingPipeline.btp
Pipeline d'envoi exécuté à partir de l'orchestration afin d'assembler les messages collectés en un échange XML.

Création et initialisation de l'exemple

La procédure suivante permet de créer et d'initialiser l'exemple Aggregator.

Pour créer et initialiser l'exemple Aggregator

  1. Dans une fenêtre de commande, accédez au dossier suivant :

    <Chemin d’accès> des exemples\Pipelines\Aggregator

  2. Exécutez le fichier Setup.bat, qui effectue les actions suivantes :

    • Création des dossiers d'entrée (In) et de sortie (Out) associés à cet exemple dans le dossier :

      <Chemin d’accès> des exemples\Pipelines\Aggregator

    • Compilation des projets Visual Studio pour cet exemple.

    • Création d'une application appelée « Aggregator Sample » et déploiement des assemblys de l'exemple au sein de celle-ci.

    • Création et liaison de l'emplacement de réception de BizTalk Server, ainsi que des ports d'envoi et de réception.

    • Inscription et démarrage de l'orchestration, activation de l'emplacement de réception et démarrage du port d'envoi.

      Si vous choisissez d’ouvrir et de générer les projets dans cet exemple sans exécuter le fichier Setup.bat, vous devez d’abord créer une paire de clés de nom fort à l’aide de l’utilitaire nom fort .NET Framework (sn.exe). Utilisez cette paire de clés pour signer les assemblys obtenus.

  3. Avant de tenter d'exécuter cet exemple, vous devez vérifier que BizTalk Server n'a pas signalé d'erreur durant le processus de création et d'initialisation.

    Pour annuler les modifications effectuées par Setup.bat, exécutez Cleanup.bat. Vous devez exécuter Cleanup.bat avant d'exécuter Cleanup.bat une seconde fois.

Exécution de l'exemple

La procédure suivante permet d'exécuter l'exemple Aggregator.

Pour exécuter l'exemple Aggregator

  1. Ouvrez les fichiers Instance1.txt et Instance2.txt, situés dans le dossier PipelinesAndSchemas, afin d'examiner leur contenu.

    Notez que dans les deux fichiers, l’élément DestinationPartnerURI contient la valeur http://www.contoso.com. Cette valeur sera utilisée pour mettre en corrélation ces deux messages afin qu’ils puissent être ajoutés à un échange.

    De même, Instance3.txt et les fichiers Instance4.txt ont l’élément DestinationPatnerURI défini sur http://www.northwind.com.

    Ces deux messages seront ajoutés ensemble dans un autre échange.

  2. Collez des copies des fichiers texte Instance1.txt, Instance2.txt, Instance3.txt et Instance4.txt dans le dossier In.

  3. L'agrégation d'orchestrations génère des échanges de sortie après avoir collecté 10 messages ou après un délai d'expiration d'1 minute. Les fichiers risquent donc d'apparaître dans le dossier Out après un certain délai.

    Pour éviter ce délai, vous pouvez coller les quatre fichiers d'entrée quatre fois supplémentaires, ce qui aura pour effet de déclencher la génération des échanges par les orchestrations d'agrégation.

  4. Observez les fichiers XML créés dans le dossier Out. Il doit y avoir deux fichiers : un par URI de partenaire de destination.

    Ouvrez l'un des fichiers et examinez son contenu. Le fichier doit contenir un échange XML comportant une enveloppe et deux documents XML.

    Notes

    Dans un scénario de convoi, l'implémentation de l'exemple risque de générer des messages « Envoyé, non utilisé » ou « Terminé avec des messages non utilisés » en cas de charge élevée. Cela risque de se produire chaque fois qu'un message est acheminé vers un processus d'entreprise en phase finale ou que des messages inattendus arrivent dans un processus d'entreprise.

Voir aussi

Pipelines (dossier d’exemples BizTalk Server)