Partager via


Persistance et durabilité du moteur

Cette section explique comment BizTalk Server intègre de manière fiable des processus d'entreprise faiblement couplés en stockant l'état de ces processus sur un disque via SQL Server. En assurant la persistance de l'état des processus aux moments opportuns et en exploitant les transactions, le système garantit qu'aucun état de processus n'est perdu, même en cas de panne matérielle ou logicielle. C'est ce que l'on appelle la durabilité du système.

Gestion des processus d'entreprise faiblement couplés

Intégrer des systèmes existants pour exécuter un seul processus d'entreprise logique nécessite de gérer l'état du processus en dehors de ces systèmes. Quelle que soit la durée de vie du processus, l'état de ce processus doit être géré de façon indépendante pour éviter l'explosion des chemins de communication personnalisés que génère un couplage étroit des systèmes.

De toute évidence, l'état d'un processus d'entreprise en cours d'exécution doit être fiable si le processus remplit une mission stratégique. Afin de garantir la fiabilité et la durabilité des processus d'entreprise, BizTalk se sert des transactions SQL Server pour stocker sur disque l'état de ces processus et les données, dans la base de données MessageBox. Pour plus d’informations sur la base de données MessageBox, consultez Base de données MessageBox.

Chaque message et toutes les instances de processus métier sauf les plus triviales (par exemple, les instances d’orchestration) dans BizTalk Server sont conservées dans la base de données MessageBox au moins une fois pendant le traitement.

Persistance et viabilité

Le fait que BizTalk Server conserve tous les messages et la plupart des orchestrations a un impact direct sur la durabilité, comme indiqué dans Qu’est-ce que les performances durables ? Lorsque les messages arrivent dans la base de données MessageBox, ils sont routés vers les abonnés en attente (par exemple, les orchestrations et les ports d’envoi) et sont mis en file d’attente, ou publiés, dans les tables MESSAGEbox SQL pour attendre que les abonnés les récupèrent et les traitent. Certains des messages entrants activent de nouvelles instances d'abonnés. D'autres sont acheminés, par corrélation, vers une instance en attente d'un abonné qui s'exécute déjà, telle une orchestration corrélée.

Pour que les orchestrations corrélées continuent le traitement, les messages corrélés entrants doivent rester non bloqués. BizTalk s'efforce donc de continuer à recevoir les messages (tant ceux qui activent des instances d'abonnés que les messages corrélés), même si la charge système est importante, de sorte que les abonnés en attente de messages corrélés puissent terminer leurs tâches et faire de la place pour l'exécution de processus supplémentaires. Cela signifie que les messages peuvent être reçus plus vite qu'il n'est possible de les traiter et de les supprimer de la base de données MessageBox, où ceux qui ne sont pas encore traités s'accumulent. BizTalk étant une technologie de stockage et de transfert, il est naturel qu'elle fournisse ce type de mise en mémoire tampon ; toutefois, cela peut engendrer des problèmes si le taux de réception est systématiquement plus élevé que le taux de traitement, auquel cas le nombre de messages non traités devient considérable.

Le contenu de chaque message reçu ou créé dans BizTalk Server ne peut plus être modifié. En outre, les messages reçus peuvent avoir plusieurs abonnés. Chaque abonné à un message particulier référence la même copie unique du message. Si cette approche minimise l'espace de stockage requis, un compteur de référence doit être associé à chaque message et une maintenance doit être effectuée régulièrement pour supprimer les messages dont le compteur de référence indique la valeur 0.

Si un certain cumul de messages non traités est autorisé dans la base de données MessageBox, les processus de maintenance de cette base (implémentés sous la forme d'un ensemble de travaux SQL) prendront du retard et si aucune possibilité de rattraper ce retard n'est prévue, cela posera des problèmes à terme comme un manque d'espace disque. Pour éviter cela, BizTalk Server propose un mécanisme de limitation qui réduit le taux de réception des messages quand, dans la base de données MessageBox, le nombre de messages non traités atteint un certain niveau (configurable par l'utilisateur). Pour plus d’informations sur la limitation, consultez Optimisation de l’utilisation des ressources via la limitation de l’hôte.

Étant donné la diversité des activités et des processus qui contribuent à la viabilité, la principale mesure pour garantir la viabilité dans la durée est d'interdire l'accumulation indéfinie des messages non traités. En d'autres termes, dans la durée, il faut parvenir à un équilibre entre les niveaux de débit de pointe minimal et maximal afin que la base de données MessageBox puisse conserver un volume moyen de messages non traités constant et gérable. La principale mesure du backlog est la profondeur de la table spool, qui est exposée sous la forme d’un compteur de performances BizTalk Server appelé BizTalk :Message Box :General Counters :Spool Size. Pour plus d’informations sur ce compteur de performances, consultez Compteurs de performances de la boîte de messages.

Pour plus d’informations sur l’utilisation de la taille du pool et d’autres compteurs pour déterminer le débit maximal qu’un système peut supporter, consultez Mesure du débit maximal durable du moteur.

Recommandations

BizTalk Server conserve tous les messages et la plupart des orchestrations et peut, non vérifié, développer un backlog de messages qui peut entraîner des problèmes tels qu’un manque d’espace disque. La principale mesure du backlog est la profondeur de la table spool messagebox, qui est exposée sous la forme d’un compteur de performances appelé BizTalk :Message Box :General Counters :Spool Size.

Pour que le débit reste admissible, la taille de mise en file d'attente doit se maintenir à une valeur moyenne stable. En effet, cette taille ne peut pas augmenter indéfiniment sans contrôle. Dans Mesure du débit maximal durable du moteur, ce comportement est décrit plus en détail et une méthode de détermination du débit maximal qu’un système peut supporter est fournie, qui tire parti de la taille du pool et d’autres indicateurs de performances.

Voir aussi

Mesure du débit maximal acceptable du moteur
Comment garantir des performances durables ?
Conseils et astuces en matière de performances
Compteurs de performances de MessageBox