Analyse BAM de bout en bout (exemple BizTalk Server)
L'exemple de bout en bout décrit la corrélation des événements issus de plusieurs composants (dans ce cas, trois orchestrations et un pipeline) à l'aide de l'analyse BAM.
L'analyse BAM reconstitue l'activité d'entreprise qui couvre le composant de pipeline et les orchestrations. Au niveau le plus bas, cela fonctionne en appelant EventStream.EnableContinuation à partir de chaque composant d’implémentation qui attend plus d’événements pour l’activité. L’appel à EnableContinuation est explicite, tandis que les appels dans Orchestration1 et Orchestration2 sont effectués en ajoutant un dossier Continuation au profil de suivi dans une planification et un dossier ContinuationID à la planification qui le suit.
Le schéma ci-dessous illustre le flux de travail utilisé dans l'exemple.
Fonctions de l'exemple
L'exemple de bout en bout présente l'utilisation de l'analyse BAM pour rassembler des informations à partir d'un pipeline et de plusieurs orchestrations, et mettre à jour une activité spécifique.
Conception et finalité de cet exemple
L'exemple d'analyse BAM de bout en bout a été conçu pour illustrer les activités suivantes :
utilisation de l'analyse BAM au sein d'un pipeline ;
utilisation de l'Éditeur de modèle de suivi pour mapper les éléments d'activité vers des formes dans une orchestration et les éléments d'un message ;
utilisation des continuations pour conserver une activité active lorsque plusieurs éléments d'une solution contribuent à l'activité.
L'exemple fonctionne comme suit :
Un message d’entrée est récupéré à partir du <dossier Samples Path>\BamEndToEnd\Input.
Le composant de pipeline affecte un DocumentID unique au message, et utilise l'API BAM pour commencer une nouvelle activité BAM. Le DocumentID est joint en tant qu'élément distinct du message d'entrée afin qu'il devienne accessible aux orchestrations.
Le service Orchestration1 est activé à la réception du message d'entrée.
Orchestration1 modifie le message d'entrée et le transfère en tant que paramètre à Orchestration2.
Orchestration2 modifie le message d'entrée et l'envoie vers la base de données MessageBox, qui active Orchestration3.
Orchestration3 modifie le message et l’écrit dans le dossier <Samples Path>\BamEndToEnd\Output.
Chaque orchestration met à jour les éléments d'activité dans l'activité BAM.
Accès à l'exemple
Vous trouverez cet exemple dans <Samples Path>\BAM\BamEndToEnd.
Le tableau suivant présente les fichiers de cet exemple et décrit leur fonction.
Fichier(s) | Description |
---|---|
BamEndToEnd.sln | Exemple de solution d'analyse BAM de bout en bout |
BamEndToEnd.xls | Feuille de style de définition BAM. |
BamEndToEnd.xml | XML de définition BAM. |
BAMEndToEndBinding.xml | Liaison BAM. |
Cleanup.bat | Fichiers de commandes pour annuler le déploiement de l'exemple. |
InputMessage.xml | Message d'entrée. |
Setup.bat | Fichier de commandes pour compiler et déployer l'exemple. |
\Components\AssemblyInfo.cs | Code du composant du pipeline. |
\Components\BAMMessagePartPLComponent.cs | Code du composant du pipeline. |
\Components\Components.csproj | Projet du composant du pipeline. |
\Messages\InputMessage01.xml ... \Messages\InputMessage10.xml |
Messages d'entrée de l'exemple. |
\Services\BAMInbound.btp | Fichier de pipeline entrant. |
\Services\BAMPartSchema.xsd | Schéma de la partie du message BAM. |
\Services\Orchestration1.odx | Orchestration : |
\Services\Orchestration2.odx | Orchestration : |
\Services\Orchestration3.odx | Orchestration : |
\Services\PropertySchema.xsd | Schéma de propriété. |
\Services\Schema1.xsd | Schéma du message. |
\Services\Schema2.xsd | Schéma du message. |
Services\Schema3.xsd | Schéma du message. |
\Services\Services.btproj | Projet de fichier BizTalk Visual Studio. |
\Services\Transform_1.btm | Fichier de mappage. |
\Services\Transform_2.btm | Fichier de mappage. |
\Services\Transform_3.btm | Fichier de mappage. |
Guide pratique pour utiliser cet exemple
Les procédures suivantes permettent de créer et d'exécuter l'exemple d'analyse BAM de bout en bout :
Générer et initialiser cet exemple
Ouvrez une invite de commandes en tant qu’administrateur, puis exécutez <Samples Path>\BAM\BAMEndToEnd\Setup.bat. Setup.bat crée et initialise l'infrastructure BAM pour cet exemple. Maintenez l'invite de commandes ouverte.
Créez un modèle de suivi pour mapper Orchestration1, Orchestration2 et Orchestration3 vers l'activité BAM. (Étant donné que la création du profil de suivi est un processus complexe, les instructions détaillées se trouvent dans une procédure distincte appelée Pour créer un profil de suivi. Cette procédure apparaît plus loin dans ce document.)
Déployez le modèle de suivi BamEndToEnd.btt que vous venez de créer au cours de l'étape précédente. Dans l’invite de commandes, accédez au< répertoire Samples Path>\BAM\BamEndToEnd. Pour déployer le profil de suivi, tapez la ligne suivante, puis appuyez sur Entrée :
“<BizTalkInstallationPath>\Tracking\bttdeploy” BamEndToEnd.btt
Guide pratique pour déployer des profils de suivi avec l’utilitaire de gestion des profils de suivi fournit plus d’informations.
Important
Vous pouvez ignorer le message indiquant que ContinuationID Orch1_ ne possède pas de continuation correspondante. Ce message est attendu, car la continuation nommée Orch1_ est définie dans le composant de pipeline, mais pas dans le modèle de suivi.
Exécuter cet exemple
Copiez le fichier <Samples Path>\BamEndToEnd\InputMessage.xml dans le dossier <Samples Path>\BamEndToEnd\Input. Après quelques secondes, le message disparaît du dossier Input et un message de sortie s’affiche dans le <dossier Samples Path>\BamEndToEnd\Output.
Afficher les données BAM
Ouvrez SQL Server Management Studio.
Dans SQL Server Management Studio, développez le serveur, bases de données, BAMPrimaryImport, puis Tables.
Cliquez avec le bouton droit sur dbo.bam_EndToEndActivity_Completed, puis cliquez sur Ouvrir la table. Si vous utilisez SQL Server, cliquez sur Sélectionner les 1000 premières lignes.
Le contenu de la table bam_EndToEndActivity_Completed s'affiche dans le volet droit. Chaque ligne de la table représente une activité EndToEndActivity terminée.
Réexécutez cet exemple
Ouvrez une invite de commandes en tant qu’administrateur, puis accédez au< répertoire Samples Path>\BAM\BamEndToEnd. Tapez la ligne suivante :
“C:\Program Files\Microsoft BizTalk Server <version>\Tracking\bttdeploy” BamEndToEnd.btt /remove
Notes
Si vous n’avez pas installé BizTalk Server sur le lecteur C, remplacez « C » par la lettre de lecteur dans laquelle vous avez installé BizTalk Server.
Exécuter <le chemin d’accès> des exemples\BAM\BAMEndToEnd\Cleanup.bat. Cleanup.bat supprime l'infrastructure BAM pour cet exemple.
Effectuez les étapes décrites dans Pour générer et initialiser cet exemple de section de cette rubrique.
Créer un profil de suivi
Cliquez sur Démarrer, pointez sur Tous les programmes, puis sur Microsoft BizTalk Server 20xx. Cliquez avec le bouton droit sur Éditeur de profil de suivi, puis Exécutez en tant qu’administrateur.
Dans le volet gauche de la fenêtre Éditeur de profil de suivi , cliquez sur Cliquez ici pour importer une définition d’activité BAM.
Dans la section Nom de la définition d’activité BAM de la boîte de dialogue Importer une définition d’activité BAM , sélectionnez EndToEndActivity, puis cliquez sur OK.
Dans le volet droit de la fenêtre Éditeur de profil de suivi , cliquez sur Cliquez ici pour sélectionner une source d’événement.
Dans la section Nom de l’assembly de la boîte de dialogue Sélectionner un assembly parent de source d’événement, sélectionnez Microsoft.Samples.BizTalk.BamEndToEnd.Services, puis cliquez sur Suivant.
Dans la section Nom de l’orchestration de la boîte de dialogue Sélectionner une orchestration , sélectionnez BamEndToEnd.Services.Orchestration1, puis cliquez sur OK.
Dans le volet gauche de la fenêtre Éditeur de profil de suivi , cliquez avec le bouton droit sur EndToEndActivity, puis cliquez sur Nouvel ID de continuation. Nommez le nouvel ID de continuation Orch1_. Répétez cette étape pour créer deux ID de continuation supplémentaires nommés Orch2_ et Orch3_.
Cliquez avec le bouton droit sur EndToEndActivity, puis cliquez sur Nouvelle continuation. Nommez la nouvelle Orch2_ de continuation. Répétez cette étape pour créer une autre continuation nommée Orch3_.
Cliquez avec le bouton droit sur la forme Receive1 , puis cliquez sur Schémas de propriété de contexte.
Faites défiler jusqu’à la fin de la liste Nom de la propriété de contexte , puis double-cliquez sur BAMEndToEnd.Services.PropertySchema.DocumentID.
Développez <Schéma>, puis faites glisser DocumentID dans le volet droit pour Orch1_ dans le volet gauche.
Cliquez deux fois sur l’icône de dossier avec la flèche () pour afficher l’orchestration.
Faites glisser la forme Receive1 dans le volet droit vers SBegin1 dans le volet gauche.
Faites glisser la forme StartOrchestration_1 dans le volet droit vers SEnd1 dans le volet gauche.
Cliquez avec le bouton droit sur la forme StartOrchestration_1 , puis cliquez sur Schémas de charge utile du message.
Double-cliquez sur la ligne qui contient la valeur « Message_2 » dans la colonne Message et la valeur « MessageBody » dans la colonne Part .
Développez Schéma2, puis faites glisser Données2 dans le volet droit vers Data1 dans le volet gauche.
Cliquez sur Sélectionner une source d’événement, puis sur Sélectionner une propriété de contexte.
Faites défiler jusqu’à la fin de la liste Nom de la propriété de contexte , puis double-cliquez sur BAMEndToEnd.Services.PropertySchema.DocumentID.
Développez <Schéma>, puis faites glisser DocumentID vers le Orch2_ continuation dans le volet gauche.
Notes
Ne confondez pas la continuation Orch2_ et le continuationID Orch2_. L’icône qui représente un ID de continuation contient une clé (), tandis que l’icône qui représente une continuation ne contient pas de clé ( de continuation).
Cliquez sur Sélectionner une source d’événement, puis sur Sélectionner une planification d’orchestration.
Dans la section Nom de l’assembly de la boîte de dialogue Sélectionner un assembly parent de source d’événement, sélectionnez Microsoft.Samples.BizTalk.BamEndToEnd.Services, puis cliquez sur Suivant.
Dans la section Nom de l’orchestration de la boîte de dialogue Sélectionner une orchestration , sélectionnez BamEndToEnd.Services.Orchestration2, puis cliquez sur OK.
Cliquez avec le bouton droit sur la forme ConstructMessage_1 , puis cliquez sur Schémas de charge utile du message.
Double-cliquez sur la ligne qui contient la valeur « Message_3 » dans la colonne Message et la valeur « BAMPart » dans la colonne Part .
Développez BAMPart, puis faites glisser DocumentID dans le volet droit vers l’ID de continuation Orch2_ dans le volet gauche.
Notes
Ne confondez pas la continuation Orch2_ et le continuationID Orch2_. L’icône qui représente un ID de continuation contient une clé (), tandis que l’icône qui représente une continuation ne contient pas de clé ( de continuation).
Cliquez deux fois sur l’icône de dossier avec la flèche () deux fois pour afficher l’orchestration.
Faites glisser la forme ConstructMessage_1 dans le volet droit vers SBegin2 dans le volet gauche.
Faites glisser la forme Send_1 dans le volet droit vers SEnd2 dans le volet gauche.
Cliquez avec le bouton droit sur la forme Send_1 , puis cliquez sur Schémas de charge utile du message.
Double-cliquez sur la ligne qui contient la valeur « Message_3 » dans la colonne Message et la valeur « MessageBody » dans la colonne Part .
Développez Schéma3, puis faites glisser Données3 dans le volet droit vers Data2 dans le volet gauche.
Dans la liste déroulante située au-dessus du volet droit, sélectionnez Schémas de charge utile du message.
Double-cliquez sur la ligne qui contient la valeur « Message_3 » dans la colonne Message et la valeur « BAMPart » dans la colonne Part .
Développez BAMPart, puis faites glisser DocumentID dans le volet droit vers le Orch3_ continuation dans le volet gauche.
Notes
Ne confondez pas la continuation Orch3_ et le continuationID Orch3_. L’icône qui représente un ID de continuation contient une clé (), tandis que l’icône qui représente une continuation ne contient pas de clé ( de continuation).
Cliquez sur Sélectionner une source d’événement, puis sur Sélectionner une planification d’orchestration.
Dans la section Nom de l’assembly de la boîte de dialogue Sélectionner un assembly parent de source d’événement, sélectionnez Microsoft.Samples.BizTalk.BamEndToEnd.Services, puis cliquez sur Suivant.
Dans la section Nom de l’orchestration de la boîte de dialogue Sélectionner une orchestration , sélectionnez BamEndToEnd.Services.Orchestration3, puis cliquez sur OK.
Cliquez avec le bouton droit sur la forme Receive1 , puis cliquez sur Schémas de charge utile du message.
Double-cliquez sur la ligne qui contient la valeur « Message_3 » dans la colonne Message et la valeur « BAMPart » dans la colonne Part .
Développez BAMPart, puis faites glisser DocumentID dans le volet droit vers l’ID de continuation Orch3_ dans le volet gauche.
Notes
Ne confondez pas la continuation Orch3_ et le continuationID Orch3_. L’icône qui représente un ID de continuation contient une clé (), tandis que l’icône qui représente une continuation ne contient pas de clé ( de continuation).
Cliquez deux fois sur l’icône de dossier avec la flèche () pour afficher l’orchestration.
Faites glisser la forme Receive1 dans le volet droit vers SBegin3 dans le volet gauche.
Faites glisser la forme Send_1 dans le volet droit vers SEnd3 dans le volet gauche.
Cliquez avec le bouton droit sur la forme Send_1 , puis cliquez sur Schéma de charge utile du message.
Développez Schéma3, puis faites glisser Data3 dans le volet droit vers Data3 dans le volet gauche.
Cliquez avec le bouton droit sur DocumentID sous le Orch2_ continuation, puis cliquez sur Définir les mappages de ports.
Notes
Ne confondez pas la continuation Orch2_ et le continuationID Orch2_. L’icône qui représente un ID de continuation contient une clé (), tandis que l’icône qui représente une continuation ne contient pas de clé ( de continuation).
Dans la section Sélectionner des ports de la boîte de dialogue Sélectionner des ports , cliquez sur BamEndToEnd_ReceivePort, sur le signe supérieur à (>), puis sur OK.
Enregistrez le profil de suivi dans< Samples Path>\BAM\BamEndToEnd\BamEndToEnd.btt.
Détails importants
Les modèles de suivi ne sont pas pris en charge pour les pipelines. Toutefois, l’appel à BeginActivity dans le composant de pipeline est identique à l’utilisation d’ActivityID dans une orchestration. L’appel à EnableContinuation est identique à l’utilisation d’une continuation dans une orchestration.