Montée en charge des bases de données BizTalk Server

Pour assurer la haute disponibilité des bases de données BizTalk Server, configurez deux ordinateurs qui exécutent SQL Server dans un cluster Windows. Ces ordinateurs peuvent s’exécuter dans une configuration active/active, active/passive ou active/active/passive (nécessite trois ordinateurs) pour la redondance et peuvent stocker des données sur un lecteur partagé (tel qu’un disque RAID 1+0 SCSI) ou un réseau de zone de stockage (SAN).

Si, pour quelque raison que ce soit, le service de SQL Server est indisponible, le cluster de la base de données transfère les ressources de l'ordinateur actif vers l'ordinateur passif. Lors de ce processus de basculement, les instances du service BizTalk Server rencontrent des problèmes de connexion aux bases de données et relancent automatiquement ces connexions. L'ordinateur contenant la base de données indemne (ordinateur jusqu'alors passif) commence à traiter les connexions de la base de données après avoir pris en charge les ressources durant le basculement.

Le clustering des bases de données BizTalk Server est abordé dans Clustering the BizTalk Server Databases2. Cette section se concentre sur la mise à l’échelle des bases de données BizTalk Server afin de fournir une haute disponibilité.

Haute disponibilité de la base de données MessageBox BizTalk

Cette section fournit des informations sur la configuration de la base de données BizTalk MessageBox pour la haute disponibilité.

Exécution de plusieurs bases de données MessageBox

Pour améliorer la scalabilité des bases de données BizTalk Server et pour répondre à une utilisation élevée du processeur sur la base de données MessageBox SQL Server ordinateur, vous pouvez configurer BizTalk Server pour stocker des données dans plusieurs bases de données MessageBox. Vous créez la première base de données MessageBox lorsque vous exécutez l'Assistant Configuration. Cette base de données est la base de données principale MessageBox. Il existe une seule base de données principale MessageBox dans votre déploiement BizTalk Server. Elle contient les informations d'abonnement principal et achemine les messages vers la base de données MessageBox appropriée. En règle générale, vous souhaitez dédier l’master base de données MessageBox à effectuer le routage uniquement et laisser les autres bases de données MessageBox effectuer le traitement. Pour qu’une base de données MessageBox effectue uniquement le routage, sélectionnez Désactiver la nouvelle publication de messages à partir des propriétés MessageBox dans la console Administration BizTalk.

Voici un exemple de flux de traitement de base de données MessageBox :

  1. Lorsque la base de données principale MessageBox reçoit un nouveau message d'activation (une nouvelle instance d'un processus d'entreprise ou un message d'abonnement), elle l'envoie à la première base de données MessageBox disponible. Par exemple, lorsque vous disposez d'une base de données principale MessageBox et de deux bases de données secondaires, la base de données principale achemine le premier message d'activation vers la base de données secondaire n° 1, le second vers la base de données n° 2, le troisième vers la base de données n° 1 et ainsi de suite de manière alternée. La base de données principale utilise une logique intégrée pour équilibrer la charge et n'a donc pas besoin d'autre mécanisme d'équilibrage de charge.

  2. Une fois que la base de données principale MessageBox a acheminé le message d'activation vers une base de données secondaire (la première, par exemple), le processus d'entreprise est mis en mémoire et exécuté.

  3. Si le processus métier doit attendre un message et que le temps d’attente est supérieur à plusieurs secondes, le processus métier est conservé dans la base de données MessageBox 1. Le processus métier attend un message de corrélation.

  4. Lorsque le message de corrélation arrive à la base de données MessageBox master, le moteur de message effectue une opération de recherche dans la base de données pour la base de données MessageBox qui contient l’état du message de corrélation (dans cet exemple, MessageBox 1). La base de données MessageBox master remet le message à la base de données MessageBox qui contient le processus métier.

  5. Le processus métier est remis en mémoire pour continuer le traitement jusqu’à ce qu’il se termine ou jusqu’à ce qu’il ait à attendre un autre message de corrélation.

    BizTalk Server stocke l'intégralité des états dans les bases de données MessageBox qui contiennent toutes les informations d'état des différents processus d'entreprise. Pour une fiabilité accrue, vous devez mettre en cluster toutes les bases de données MessageBox, qu'il s'agisse de la base de données principale ou des bases secondaires.

    Pour configurer plusieurs bases de données MessageBox, vous utilisez la console Administration BizTalk Server pour ajouter les ordinateurs qui exécutent SQL Server. D'un point de vue administrateur, vous devez juste ajouter les nouvelles bases de données MessageBox. BizTalk Server gère automatiquement la distribution alternée des messages d'activation et l'envoi des messages de corrélation aux bases de données MessageBox appropriées.

    Si vous configurez plusieurs bases de données MessageBox dans votre environnement, vous devez créer au moins trois bases de données MessageBox pour votre groupe de BizTalk Server et désactiver la publication des messages sur la base de données MessageBox master. Cette recommandation est faite, car l’ajout de bases de données MessageBox supplémentaires entraîne une surcharge de la master base de données MessageBox pour le routage des messages entre les bases de données MessageBox. Si vous configurez seulement deux bases de données MessageBox, la plupart des avantages de la base de données MessageBox supplémentaire sont compensés par la surcharge consommée par la base de données MessageBox master pour le routage des messages.

Important

BizTalk Server stocke l'intégralité des états dans les bases de données MessageBox qui contiennent toutes les informations d'état des différents processus d'entreprise. Pour une fiabilité accrue, vous devez mettre en cluster toutes les bases de données MessageBox, qu'il s'agisse de la base de données principale ou des bases secondaires.

Configuration de la haute disponibilité pour plusieurs bases de données MessageBox

Bien que l’ajout de bases de données MessageBox à votre déploiement BizTalk Server améliore la scalabilité, il ne fournit pas de haute disponibilité, car chaque base de données MessageBox est unique et indépendante et constitue potentiellement un point de défaillance unique pour votre environnement BizTalk Server. Afin d'obtenir une redondance renforcée, vous devez configurer un cluster de serveurs pour chaque base de données MessageBox. BizTalk Server répartit les données entre les différentes bases de données MessageBox si bien que ces dernières sont incapables de partager les données et de fournir une redondance sans mise en cluster du serveur.

Configuration de la haute disponibilité pour la base de données des suivis BizTalk

Selon les besoins de votre déploiement, il se peut que vous vouliez améliorer les performances du suivi en isolant la base de données des suivis BizTalk sur un ordinateur SQL Server distinct et en créant un hôte BizTalk séparé, consacré au suivi des hôtes. La figure suivante montre un hôte de suivi dédié avec deux instances d’hôte et des bases de données cluster.

Scale-out des bases de données de suivi

Si votre déploiement implique un débit élevé et un suivi pour des données de message très nombreuses, la surcharge de travail due au suivi est susceptible d'utiliser énormément de ressources sur l'ordinateur SQL Server. Si cette situation se produit et qu’un taux élevé de messages entrants persiste, BizTalk Server atteint un point où il ne peut pas traiter de nouveaux messages, car les ressources nécessaires au suivi des messages sont supérieures aux ressources nécessaires pour exécuter les autres composants BizTalk Server (par exemple, la réception et la persistance des messages dans la base de données MessageBox).

Afin d'améliorer les performances et la sécurité de votre déploiement, il est recommandé de consacrer un hôte ne contenant aucun autre élément (emplacements de réception, orchestrations, pipelines, etc.) au suivi et de désactiver le suivi dans les hôtes de réception, de traitement et d'envoi. Pour rendre l'hôte de suivi hautement disponible, créez plusieurs instances pour cet hôte. Consultez Créer un hôte.

Pour chaque base de données MessageBox, BizTalk Server utilise un seul hôte de suivi instance pour déplacer les messages de la base de données MessageBox vers la base de données BizTalk Tracking (BizTalkDTADb). Lorsque des ordinateurs supplémentaires exécutent des instances de l'hôte des suivis, BizTalk Server met automatiquement à l'échelle la gestion de chaque base de données MessageBox en la transférant à une instance de l'hôte de suivi distincte. Si le nombre de bases de données MessageBox est supérieur au nombre d'instances de l'hôte de suivi, une ou plusieurs instances de l'hôte de suivi fonctionnent pour plusieurs bases de données MessageBox.

Pour disposer de bases de données des suivis BizTalk hautement disponibles, servez-vous du clustering Windows et configurez deux ordinateurs dédiés aux bases de données et fonctionnant sous SQL Server sur un modèle de type actif/passif.

Configuration de la haute disponibilité pour des bases de données BAM

La supervision des activités métier (BAM) offre une visibilité sur les processus métier indépendamment de l’implémentation informatique ou sur une implémentation informatique hétérogène. Les bases de données SQL Server BAM (schémas en étoile BAM, importation principale BAM et archives BAM) et Analyse BAM conservent les données de l'activité de l'entreprise lorsqu'elles sont différentes des données d'analyse opérationnelle. Le diagramme suivant montre l’infrastructure de base de données BAM.

Infrastructure de base de données BAM

Afin de vous assurer que votre infrastructure BAM est hautement disponible, procédez comme suit :

  • Mettez en cluster la base de données d'importation principale BAM, ainsi que celle d'analyse BAM. La base de données d'importation principale BAM constitue le cœur du système BAM (Business Activity Monitoring). Il est donc important qu'elle soit hautement disponible par le biais du clustering Windows et que vous respectiez bien les deux recommandations suivantes afin d'éviter qu'elle n'arrive à saturation. La base de données Analyse BAM est une base de données Analysis Services stockant les données et dont les analystes d'entreprise se servent pour créer des agrégations d'activité et des cubes OLAP. Tout temps d'arrêt de cette base de données a donc des conséquences sur la productivité. Bien que vous n’ayez pas à mettre en cluster la base de données d’archivage BAM, nous vous recommandons de surveiller le journal des événements pour les erreurs lors de l’exécution des packages SQL Server Integration Services (SSIS) pour vous assurer que les données ont été transférées correctement et pour surveiller la taille de la base de données afin de pouvoir la remplacer avant qu’elle ne se remplit.

  • Définissez une fenêtre en ligne. Pour permettre de meilleures performances et éviter les temps d’arrêt, BAM partitionne les données de la base de données d’importation principale BAM dans des tables en fonction de l’horodatage lorsque l’activité a été terminée. Le composant BAM réalise cette opération en remplaçant régulièrement la table remplie par une table vide de format identique. Les activités supplémentaires terminées sont ensuite placées dans la nouvelle partition (table) tandis que l'analyse BAM conserve les anciennes partitions pendant la période indiquée dans la fenêtre en ligne. Il faut définir une telle fenêtre afin de vous assurer que le nombre de partitions de la base de données d'importation principale BAM ne devient pas trop important. Pour plus d’informations sur la planification des fenêtres en ligne, consultez Archivage des données de base de données d’importation primaire.

  • Planifiez l’exécution périodique des packages SSIS. La définition d'une fenêtre en ligne garantit que votre base de données d'importation principale BAM n'arrive pas à saturation à cause d'anciennes partitions d'activité. Vous devez également planifier l’exécution périodique des packages SSIS afin de créer une partition pour les données d’activité et de déplacer les données des anciennes partitions de la base de données d’importation principale BAM vers la base de données d’archivage BAM. Pour plus d’informations sur la planification des packages SSIS, consultez Planification SQL Server packages Integration Services.

  • Prenez garde de sélectionner de petits ensembles d'éléments de données (points de contrôle) et évitez d'inclure des éléments de données superflus lors de la définition d'une activité.

  • Assurez-vous de bien comprendre les avantages et les inconvénients des deux types d'agrégation (agrégations planifiées et agrégations RTA) lorsque vous les concevez. Les agrégations RTA sont gérées de façon automatique par les déclencheurs SQL Server et ne rencontrent aucune latence. Elles sont idéales pour certains scénarios stratégiques à faible latence, mais elles entraînent un coût de performances chaque fois que les événements sont écrits dans la base de données d’importation principale BAM. Les agrégations planifiées s’appuient sur des packages SSIS de cubing planifiés pour mettre à jour leurs données d’agrégation. Leur latence est égale ou supérieure à l’intervalle de planification SSIS, mais dans l’ensemble, elles ont un impact plus faible sur les performances sur la base de données d’importation principale BAM.

  • Si vous choisissez des agrégations planifiées, veillez à planifier l’exécution du SSIS cubing plus fréquemment que le SSIS d’archivage. En effet, le SSIS d’archivage ne déplace pas les données d’activité qui ont été traitées pour l’agrégation planifiée vers la base de données d’archivage BAM.

  • Activez le service BAM Event Bus sur plusieurs ordinateurs pour obtenir la fonctionnalité de basculement.

Configuration de la haute disponibilité pour les autres bases de données BizTalk Server

Pour assurer une haute disponibilité pour les autres bases de données BizTalk Server, configurez deux ordinateurs qui exécutent SQL Server dans un cluster Windows. Ces ordinateurs peuvent s’exécuter dans une configuration active/active ou active/passive pour la redondance et peuvent stocker des données sur un lecteur partagé (tel qu’une baie de disques RAID 1+0 SCSI) ou un réseau de zone de stockage (SAN).

Voir aussi

Clustering des bases de données BizTalk Server 2