Étape 4 : configurer l’environnement BizTalk Server pour le test de charge
Cette rubrique fournit des informations sur la création des BizTalk Server emplacements de réception, ports de réception et ports d’envoi requis pour exécuter l’exemple de code décrit dans les rubriques Étape 1 : Créer un test unitaire pour envoyer des documents à BizTalk Server et Étape 3 : créer un test de charge pour effectuer plusieurs tests unitaires simultanément.
Configurer BizTalk Server Environnement pour les tests de charge
Comme décrit dans la rubrique Étape 3 : Créer un test de charge pour effectuer plusieurs tests unitaires simultanément, le BTS_Messaging_Step de test de charge est configuré pour exécuter les tests unitaires BTSMessaging et BTSMessaging2. À leur tour, ces tests unitaires chargent une copie du message C:\Projects\LoadTest\BTSLoad\TestMessages\TestXmlDocument.xml et l’envoient aux points de terminaison BTSMessagingEP et BTSMessagingEP2 , comme défini dans la section suivante du fichier de configuration d’application (app.config) du projet :
<-- BTSMessagingEP --><endpoint address="net.tcp ://BizTalk Server Computer :8123/btsloadtest » binding="netTcpBinding » bindingConfiguration="netTcpBinding » contract="System.ServiceModel.Channels.IRequestChannel » name="BTSMessagingEP » /><endpoint address="net.tcp ://BizTalk Server Computer:8123/btsloadtest » binding="netTcpBinding » bindingConfiguration="netTcpBinding » contract="System.ServiceModel.Channels.IRequestChannel » name="BTSMessagingEP2 » />
Notes
Comme indiqué précédemment, BizTalk Server Ordinateur est un espace réservé pour les noms d’ordinateurs BizTalk Server réels ou, dans le cas où les ordinateurs BizTalk Server sont configurés en tant que membres d’un cluster d’équilibrage de charge réseau (NLB) ; BizTalk Server Ordinateur est un espace réservé pour le nom ou l’adresse du serveur virtuel NLB correspondant.
Pour les besoins de cet exemple, deux ordinateurs BizTalk Server ont été utilisés et la base de données Message Box BizTalk Server se trouvait sur un ordinateur SQL Server distant.
Créer BizTalk Server hôtes d’envoi et de réception
Suivez les étapes décrites dans la rubrique de documentation BizTalk Server Comment créer un hôte BizTalk Server « Envoyer » pour les gestionnaires de ports d’envoi et d’adaptateur d’envoi. Configurez l’hôte avec les propriétés suivantes :
Propriété | Valeur |
---|---|
Nom | TxHost |
Type | In-Process |
Autoriser le suivi de l'hôte | Vérifiez que cette case est décochée. |
Approuvé(e) par authentification | Vérifiez que cette case est décochée. |
32 bits uniquement | Vérifiez que cette case est décochée. |
Transformer en hôte par défaut dans le groupe | Vérifiez que cette case est décochée. |
Groupe Windows | Groupe Windows utilisé pour contrôler l’accès à cet hôte et aux instances d’hôte associées. Le groupe Fenêtre créé pour l’hôte in-process par défaut est nommé <Nom> de l’ordinateur\Utilisateurs de l’application BizTalk (pour un serveur unique BizTalk Server installation) ou <Nom de> domaine\Utilisateurs de l’application BizTalk (pour une installation BizTalk Server plusieurs serveurs, qui nécessite l’utilisation de groupes de domaines). Remarque :<Le nom> de l’ordinateur et <le nom> de domaine sont des espaces réservés pour le nom d’ordinateur réel ou le nom de domaine utilisé lors de la création du groupe. Si un groupe est créé pour cet hôte, il doit disposer des privilèges décrits dans la rubrique Groupes hôtes. |
Répétez les étapes que vous avez suivies lors de la création de l’hôte « Envoyer » pour créer un hôte « Recevoir ». Configurez l’hôte « Receive » avec les valeurs de propriété suivantes :
Propriété | Valeur |
---|---|
Nom | RxHost |
Type | In-Process |
Autoriser le suivi de l'hôte | Vérifiez que cette case est décochée. |
Approuvé(e) par authentification | Vérifiez que cette case est décochée. |
32 bits uniquement | Vérifiez que cette case est décochée. |
Transformer en hôte par défaut dans le groupe | Vérifiez que cette case est décochée. |
Groupe Windows | Groupe Windows utilisé pour contrôler l’accès à cet hôte et aux instances d’hôte associées. Le groupe Fenêtre créé pour l’hôte in-process par défaut est nommé <Nom> de l’ordinateur\Utilisateurs de l’application BizTalk (pour un serveur unique BizTalk Server installation) ou <Nom de> domaine\Utilisateurs de l’application BizTalk (pour une installation BizTalk Server plusieurs serveurs, qui nécessite l’utilisation de groupes de domaines). Remarque :<Le nom> de l’ordinateur et <le nom> de domaine sont des espaces réservés pour le nom d’ordinateur réel ou le nom de domaine utilisé lors de la création du groupe. Si un groupe est créé pour cet hôte, il doit disposer des privilèges décrits dans la rubrique Groupes hôtes. |
Créer des instances des hôtes d’envoi et de réception BizTalk Server
Suivez les étapes décrites dans la rubrique de documentation BizTalk Server Comment ajouter une instance d’hôte pour créer et démarrer des instances de l’hôte BizTalk Server « Envoyer ». Configurez un instance de l’hôte « Send » pour qu’il s’exécute sur chaque BizTalk Server du groupe BizTalk Server et configurez chaque hôte instance avec les valeurs de propriété suivantes :
Propriété | Valeur |
---|---|
Nom d’hôte | Sélectionnez TxHost dans la liste déroulante en regard de Nom d’hôte. |
Serveur | Sélectionnez le BizTalk Server qui exécutera cette instance hôte dans la liste déroulante en regard de Serveur. |
Ouverture de session | 1. Cliquez sur le bouton Configurer pour afficher la boîte de dialogue Informations d’identification d’ouverture de session. 2. Dans la boîte de dialogue Informations d’identification d’ouverture de session, entrez les valeurs suivantes pour les propriétés spécifiées : Propriété Ouverture de session : nom du compte d’utilisateur membre du groupe Windows associé à cet hôte BizTalk Server. Mot de passe : mot de passe pour le compte d’utilisateur spécifié dans la zone de texte Connexion . 3. Cliquez sur OK pour fermer la boîte de dialogue Informations d’identification de connexion. |
Désactivez la instance de l’hôte à partir du démarrage. | Vérifiez que cette case est décochée. |
Après avoir créé le instance hôte, cliquez avec le bouton droit sur le instance hôte et sélectionnez Démarrer dans le menu contextuel.
Répétez les étapes que vous avez suivies lors de la création des instances d’hôte « Envoyer » pour créer des instances d’hôte « Recevoir ». Configurez une instance de l’hôte « Receive » à exécuter sur chaque BizTalk Server du groupe BizTalk Server et configurez chaque instance hôte avec les valeurs de propriété suivantes :
Propriété | Valeur |
---|---|
Nom de l’hôte | Sélectionnez RxHost dans la liste déroulante en regard de Nom d’hôte. |
Serveur | Sélectionnez le BizTalk Server qui exécutera cette instance hôte dans la liste déroulante en regard de Serveur. |
Connexion | 1. Cliquez sur le bouton Configurer pour afficher la boîte de dialogue Informations d’identification d’ouverture de session. 2. Dans la boîte de dialogue Informations d’identification d’ouverture de session, entrez les valeurs suivantes pour les propriétés spécifiées : Propriété Ouverture de session : nom du compte d’utilisateur membre du groupe Windows associé à cet hôte BizTalk Server. Mot de passe : mot de passe pour le compte d’utilisateur spécifié dans la zone de texte Connexion . 3. Cliquez sur OK pour fermer la boîte de dialogue Informations d’identification de connexion. |
Désactiver le démarrage de l'instance de l'hôte | Vérifiez que cette case est décochée. |
Après avoir créé le instance hôte, cliquez avec le bouton droit sur le instance hôte et sélectionnez Démarrer dans le menu contextuel.
Créer un port de réception BizTalk Server
Suivez les étapes décrites dans la rubrique Comment créer un port de réception dans la documentation BizTalk Server pour créer un port de réception One-Way. Lors de la création du port de réception, laissez toutes les propriétés aux valeurs par défaut, sauf comme indiqué dans le tableau ci-dessous :
Propriété | Valeur |
---|---|
Général\Nom | BTSLoadTestMessaging.OneWay.ReceivePort |
Général\Type de port | One-Way |
Général\Authentification | Aucune authentification |
Général\Activer le routage pour les messages ayant échoué | Vérifiez que cette case est décochée. |
Général\Description | Laisser vide |
Mappages entrants | None |
Suivi | Vérifiez que toutes les cases sont décochées. |
Emplacements de réception | Cliquez sur Nouveau pour afficher la boîte de dialogue Propriétés de l’emplacement de réception qui doit être configurée comme décrit dans la section suivante, Créer un emplacement de réception BizTalk Server. |
Créer un emplacement de réception BizTalk Server
Dans la boîte de dialogue Propriétés de l’emplacement de réception affichée lors de la création du port de réception BizTalk Server, appliquez les valeurs de propriété spécifiées :
Propriété | Valeur |
---|---|
Nom : | BTSLoadTest.Messaging.OneWay.WCF-Customer.ReceiveLocation |
Gestionnaire de réception : | RxHost |
Pipeline de réception : | PassThruReceive |
Description : | Laissez ce champ vide |
Tapez : | Sélectionnez WCF-Custom dans la liste déroulante, puis cliquez sur le bouton Configurer . La boîte de dialogue Propriétés de transport personnalisées WCF s’affiche, comme décrit dans la section suivante, Configurer le WCF-Custom transport de réception. |
Configurer le transport de réception WCF-Custom
Dans la boîte de dialogue Propriétés de transport personnalisées WCF affichée lors de la création de l’emplacement de réception BizTalk Server, laissez toutes les propriétés aux valeurs par défaut, sauf comme indiqué dans le tableau ci-dessous :
Propriété | Valeur |
---|---|
Général\Adresse (URI) | net.tcp ://localhost :8123/btsloadtest |
Liaison\Type de liaison | Nettcpbinding |
Binding\NetTcpBindingElement\listenBacklog | 400 |
Binding\NetTcpBindingElement\maxConnections | 400 |
Binding\Security\NetTcpSecurityElement\mode | None |
Behavior\ServiceBehavior\serviceThrottling\ServiceThrottlingElement Remarque : Pour ajouter le comportement serviceThrottling à la liste des comportements, cliquez avec le bouton droit sur ServiceBehavior, cliquez sur Ajouter une extension, sélectionnez serviceThrottling dans la liste des extensions de comportement, puis cliquez sur OK. | Définissez les propriétés ServiceThrottlingElement sur les valeurs suivantes : - maxConcurrentCalls 400 - maxConcurrentInstances 400 - maxConcurrentSessions 400 |
Behavior\ServiceBehavior\serviceDebug\ServiceDebugElement Remarque : Pour ajouter le comportement serviceDebug à la liste des comportements, cliquez avec le bouton droit sur ServiceBehavior, cliquez sur Ajouter une extension, sélectionnez serviceDebug dans la liste des extensions de comportement, puis cliquez sur OK. | Conservez la liste des propriétés ServiceDebugElement à leurs valeurs par défaut (vides) à l’exception des propriétés suivantes, qui doivent être remplacées par une valeur True : - httpHelpPageEnabled Vrai - httpsHelpPageEnabled Vrai - includeExceptionDetailInFaults Vrai |
Cliquez sur OK pour fermer la boîte de dialogue Propriétés de transport WCF-Custom, puis cliquez à nouveau sur OK pour fermer la boîte de dialogue Propriétés de l’emplacement de réception.
Créer un port d’envoi BizTalk Server
Suivez les étapes de la rubrique Création d’un port d’envoi dans la documentation BizTalk Server pour créer un port d’envoi unidirectionnel statique. Lors de la création du port d’envoi, laissez toutes les propriétés aux valeurs par défaut, sauf comme indiqué dans le tableau ci-dessous :
Propriété | Valeur |
---|---|
Général\Nom | BTSLoadTest.Messaging.Send.WCF-Custom |
Général\Gestionnaire d’envoi | TxHost |
Général\Envoyer le pipeline | PassThruTransmit |
Filtres\Nom | BTS.ReceivePortName |
Filtres\Opérateur | == |
Filtres\Valeur | BTSLoadTest.Messaging.OneWay.ReceivePort |
Filtres\Grouper par | Remarque : si ces propriétés sont configurées avec les valeurs correctes, le filtre doit être affiché comme BTS.ReceivePortName == BTSLoadTest.Messaging.OneWay.ReceivePort indiqué en bas de la page Filtres de la boîte de dialogue Propriétés du port d’envoi. À la suite de l’application de ce filtre, ce port d’envoi s’abonne aux messages reçus par BizTalk Server via le port de réception nommé BTSLoadTest.Messaging.OneWay.ReceivePort. |
Suivi | Vérifiez que toutes les cases sont décochées. |
Général\Type | Sélectionnez WCF-Custom dans la liste déroulante, puis cliquez sur le bouton Configurer . La boîte de dialogue Propriétés de transport personnalisées WCF s’affiche, comme décrit dans la section suivante, Configurer le WCF-Custom envoyer le transport. |
Configurer le transport d’envoi WCF-Custom
Dans la boîte de dialogue Propriétés de transport personnalisées WCF affichée lors de la création du port d’envoi BizTalk Server, conservez toutes les propriétés aux valeurs par défaut, sauf comme indiqué dans le tableau ci-dessous :
Propriété | Valeur |
---|---|
Général\Adresse (URI) | net.tcp ://<Computer Name> :2001/TCP1 Important :<Computer Name> est un espace réservé pour le nom réel de l’ordinateur utilisé pour héberger IndigoService.exe, qui est conçu pour consommer les messages envoyés via WCF. Étant donné que IndigoService.exe nécessite très peu de ressources, il est souvent tout à fait acceptable d’exécuter IndigoService.exe sur l’ordinateur SQL Server utilisé pour les bases de données de groupe BizTalk Server. |
Liaison\Type de liaison | customBinding |
Comme pour la plupart des types de liaison WCF-Custom, le type de liaison customBinding expose plusieurs propriétés, qui doivent être définies sur les valeurs suivantes :
Dans la section Liaison , il existe une propriété CustomBindingElement avec une section Configuration associée. Conservez toutes les valeurs de la section Configuration de la propriété CustomBindingElement à leurs valeurs par défaut.
Ensuite, sous CustomBindingElement , cliquez avec le bouton droit sur textMessageEncoding et sélectionnez Supprimer l’extension (Del). De même, cliquez avec le bouton droit sur httpTransport et sélectionnez Supprimer l’extension (Del).
Cliquez maintenant avec le bouton droit sur CustomBindingElement et sélectionnez Ajouter une extension ins pour afficher la boîte de dialogue Sélectionner une extension d’élément de liaison .
Sélectionnez binaryMessageEncoding , puis cliquez sur OK pour ajouter l’extension d’élément binaryMessageEncoding . Répétez les étapes pour afficher la boîte de dialogue Sélectionner une extension d’élément de liaison et faites défiler la liste des extensions d’élément disponibles jusqu’à ce que l’extension de l’élément tcpTransport s’affiche, sélectionnez tcpTransport , puis cliquez sur OK.
Sous CustomBindingElement , sélectionnez l’élément tcpTransport et, dans la section Configuration de tcpTransport, laissez toutes les propriétés aux valeurs par défaut, sauf comme indiqué dans le tableau suivant :
Propriété Valeur connectionBufferSize 2 097 152 maxBufferSize 2 097 152 maxPendingAccepts 400 maxPendingConnections 400 listenBacklog 400 maxBufferPoolSize 2 097 152 maxReceivedMessageSize 2 097 152 Sous l’élément tcpTransport , sélectionnez l’élément ConnectionPoolSettings et laissez toutes les propriétés aux valeurs par défaut, à l’exception de la propriété maxOutboundConnectionsPerEndpoint , qui doit être remplacée par une valeur de 400.
Cliquez sur OK pour fermer la boîte de dialogue Propriétés de transport WCF-Custom, puis cliquez à nouveau sur OK pour fermer la boîte de dialogue BTSLoadTest.Messaging.Send.WCF-Custom – Send Port Properties.
Configurer un ordinateur pour qu’il consomme les messages envoyés par le port d’envoi BizTalk Server
Comme décrit précédemment, le IndigoService.exe est conçu pour consommer les messages envoyés via WCF. Il comprend les 4 fichiers suivants, qui doivent se trouver sur l’ordinateur que vous souhaitez exécuter IndigoService.exe :
\IndigoService\bin\Release\IndigoService.exe
\IndigoService\bin\Release\IndigoService.exe.config
\IndigoService\bin\Release\Response.xml
\IndigoService\bin\Release\StartIndigoService.bat
Ensuite, démarrez IndigoService.exe en double-cliquant sur StartIndigoService.bat. IndigoService.exe consomme les messages envoyés au point de terminaison spécifié dans le fichier IndigoService.exe.config :
<endpoint address="net.tcp ://localhost :2001/TCP1 » binding="netTcpBinding » bindingConfiguration="Binding1 » name="endpoint1 » contract="IndigoService.IServiceTwoWaysVoidNonTransactional » />
C’est pourquoi l’adresse de port d’envoi est configurée avec une adresse (URI) de net.tcp ://<Nom> de l’ordinateur :2001/TCP1
Étant donné que IndigoService.exe nécessite très peu de ressources, il est souvent parfaitement acceptable d’exécuter des IndigoService.exe sur l’ordinateur SQL Server utilisé pour les bases de données BizTalk Server.
Désactiver le suivi et la limitation pour le groupe BizTalk Server
Pour déterminer le débit maximal absolu durable du système, le suivi et la limitation des messages doivent être désactivés avant de commencer le test de charge. Pour ce faire, utilisez la console d’administration BizTalk Server en procédant comme suit :
Lancez la console Administration BizTalk Server. Cliquez sur Démarrer, pointez sur Tous les programmes, pointez sur BizTalk Server 2010, puis cliquez sur BizTalk Server Administration.
Sous administration BizTalk Server, sélectionnez votre groupe BizTalk s’il est répertorié ou s’il ne l’est pas, cliquez avec le bouton droit sur BizTalk Server Administration, sélectionnez Se connecter au groupe existant, entrez le nom de SQL Server qui héberge la base de données de gestion BizTalk Server du groupe BizTalk en regard de SQL Server nom :, entrez le nom de la base de données de gestion du groupe BizTalk en regard de Nom de la base de données , puis cliquez sur OK.
Cliquez avec le bouton droit sur le nœud Groupe BizTalk et sélectionnez Paramètres pour afficher le tableau de bord paramètres BizTalk.
Cliquez pour sélectionner Hôtes dans le volet gauche du tableau de bord paramètres BizTalk.
Cliquez sur la liste déroulante en regard de Hôte pour sélectionner l’un des hôtes qui seront utilisés pendant les tests de performances.
Conservez les valeurs par défaut des propriétés, sauf comme indiqué dans le tableau suivant :
Propriété Valeur Général\Déplacer les données de suivi vers la base de données DTA Décochez cette case si elle est cochée. Général\32 bits uniquement Décochez cette case si elle est cochée. Général\Intervalles d’interrogation\Messagerie Défini sur la valeur 20000000 Général\Intervalles d’interrogation\Orchestrations Défini sur la valeur 20000000 Limitation basée sur les ressources\Messages in-process Défini sur une valeur de 10000 Limitation basée sur les ressources\Taille de file d’attente de messages interne Défini sur une valeur de 10000 Limitation basée sur les ressources\nombre de messages dans la base de données Définir sur une valeur de 0 Limitation basée sur les ressources\Utilisation de la mémoire\Processus virtuel Définir sur une valeur de 0 Limitation basée sur le taux\Publication\Limitation de remplacement Définir sur Ne pas limiter Limitation basée sur le taux\Delivery\Limitation de remplacement Définir sur Ne pas limiter Répétez le processus décrit à l’étape 6 pour chaque hôte qui sera utilisé au cours des tests de performances.
Cliquez pour sélectionner Instances d’hôte dans le volet gauche du tableau de bord paramètres BizTalk.
Cliquez sur la liste déroulante en regard de Instance d’hôte : pour sélectionner l’une des instances d’hôte qui seront utilisées pour les tests de performances.
Conservez les valeurs de propriété à leur paramètre par défaut, à l’exception de la valeur 100 pour les threads de travail maximum CLR .NET et de la valeur 25 pour les threads de travail minimum CLR .NET.
Répétez le processus décrit à l’étape 10 pour chaque instance hôte qui sera utilisé au cours des tests de performances.
Même si la désactivation du suivi et de la limitation ne représente en aucun cas ce qui doit être fait dans un scénario de production, étant donné que ces opérations sont si coûteuses du point de vue des performances, il est judicieux de les désactiver pour déterminer le débit maximal durable (MST) d’un environnement BizTalk Server. Cela permet aux testeurs de voir clairement l’impact de tout ajustement des performances appliqué à l’environnement. Certes, un argument pourrait être avancé selon lequel le suivi ne doit pas être désactivé et si vous savez dès le début que votre application BizTalk Server exigera un suivi, vous devez activer le suivi. Cela dit, tous les efforts doivent être faits pour désactiver la limitation à des fins de test de performances. La limitation est très utile pour empêcher un BizTalk Server de « basculer » en raison d’une charge excessive dans un environnement de production. Toutefois, vous ne souhaitez pas que la limitation soit activée pendant les tests de performances, car elle est coûteuse du point de vue des performances et parce que si la limitation intervient pendant un test de charge, vous aurez beaucoup de mal à déterminer le niveau de performances que votre application BizTalk Server peut réellement atteindre. Les rubriques suivantes décrivent comment effectuer des tests de charge par étape pour pousser votre environnement de BizTalk Server au-delà de MST, puis effectuer un scale-back vers MST réel avec des tests de charge constants. Si la limitation est activée, il devient presque impossible d’envoyer (push) votre environnement BizTalk au-delà de MST afin que vous puissiez à votre tour découvrir ce qu’est le vrai MST.