Persistenz und Beständigkeit der Engine
In diesem Abschnitt wird beschrieben, wie BizTalk Server lose verknüpfte Geschäftsprozesse zuverlässig integriert, indem es den Prozessstatus über SQL Server persistent auf Festplatte speichert. Durch persistentes Speichern des Status zu geeigneten Zeitpunkten und Nutzung von Transaktionen garantiert das System, dass selbst bei einem Hardware- oder Softwareausfall kein Prozessstatus verloren geht. Dies wird als Systembeständigkeit bezeichnet.
Verwaltung lose verknüpfter Geschäftsprozesse
Die Integration vorhandener Systeme zum Ausführen eines einzelnen logischen Geschäftsprozesses erfordert die Verwaltung des Prozessstatus außerhalb der bestehenden Systeme. Ganz gleich, ob der Geschäftsprozess eine lange Laufzeit hat oder kurzlebig ist - der Prozessstatus muss unabhängig verwaltet werden, um das unkontrollierte Anwachsen benutzerdefinierter Kommunikationswege zu verhindern, die das enge Verknüpfen von Systemen mit sich bringt.
Wenn es sich um einen unternehmenswichtigen Geschäftsprozess handelt, muss der Status einer ausgeführten Geschäftsprozessinstanz selbstverständlich zuverlässig sein. Um sicherzustellen, dass Geschäftsprozesse zuverlässig und beständig sind, speichert BizTalk den Prozessstatus und die Geschäftsdaten mithilfe von SQL Server-Transaktionen persistent auf der Festplatte in einer Datenbank, die als MessageBox-Datenbank bezeichnet wird. Weitere Informationen zur MessageBox-Datenbank finden Sie unter Die MessageBox-Datenbank.
Jede Nachricht und alle außer den trivialsten Geschäftsprozessinstanzen (z. B. Orchestrierungsinstanzen) in BizTalk Server werden während der Verarbeitung mindestens einmal in der MessageBox-Datenbank gespeichert.
Persistenz und Dauerhaftigkeit
Die Tatsache, dass BizTalk Server alle Botschaften und die meisten Orchestrierungen beibehalten, hat einen direkten Einfluss auf die Nachhaltigkeit, wie unter Was ist nachhaltige Leistung? Wenn Nachrichten in der MessageBox-Datenbank eintreffen, werden sie an wartende Abonnenten (z. B. Orchestrierungen und Sendeports) weitergeleitet und in die Warteschlange eingereiht oder in SQL-Tabellen in Messagebox veröffentlicht, um darauf zu warten, dass Abonnenten sie abholen und verarbeiten. Einige der eingehenden Nachrichten aktivieren neue Abonnenteninstanzen. Andere Nachrichten gehen ein und werden per Korrelation an eine wartende Instanz eines Abonnenten weitergeleitet, der bereits ausgeführt wird (z. B. eine korrelierte Orchestrierung).
Damit die korrelierten Orchestrierungen die Verarbeitung fortsetzen können, dürfen eingehende korrelierte Nachrichten nicht blockiert werden. Um dies zu ermöglichen, versucht BizTalk den kontinuierlichen Empfang von Nachrichten (aktivierenden und korrelierten) selbst bei hoher Last sicherzustellen, sodass Abonnenten, die auf korrelierte Nachrichten warten, diese fertigstellen und Platz zum Ausführen weiterer Prozesse schaffen können. Dies bedeutet, dass es möglich ist, Nachrichten schneller zu empfangen, als sie verarbeitet und aus der MessageBox-Datenbank entfernt werden können, wodurch sich ein Nachrichtenrückstand bildet. Da BizTalk nach dem Prinzip Speichern-und-Weiterleiten arbeitet, stellt das Puffern auf diese Weise kein Problem dar. Es können jedoch Probleme auftreten, wenn die Empfangsrate dauerhaft höher als die Verarbeitungsrate ist. In diesem Fall würde sich ein großer Rückstand ergeben.
Jede Nachricht, die von BizTalk Server empfangen oder in BizTalk Server erstellt wird, ist unveränderlich. Das heißt, dass ihr Inhalt nach dem Empfangen bzw. Erstellen nicht mehr geändert werden kann. Außerdem kann es für empfangene Nachrichten mehrere Abonnenten geben. Jeder Abonnent einer bestimmten Nachricht bezieht sich auf dieselbe eine Kopie dieser Nachricht. Durch diese Herangehensweise wird zwar der erforderliche Speicherplatz minimiert, andererseits muss jedoch für jede Nachricht eine Verweiszählung durchgeführt werden. Alle Nachrichten mit einer Verweisanzahl von 0 müssen in regelmäßigen Abständen entfernt werden.
Wenn der Rückstand in der MessageBox-Datenbank zu groß wird, geraten die Verwaltungsprozesse für die Datenbank (implementiert als ein Gruppe von SQL Jobs für jede MessageBox-Datenbank) in Verzug. Ergibt sich keine Gelegenheit aufzuschließen, kommt es schließlich zu Problemen wie einem Mangel an Speicherplatz. Zum Vermeiden solcher Situationen verfügt BizTalk Server über einen Einschränkungsmechanismus, der die Nachrichtenempfangsrate verlangsamt, wenn der Rückstand in der MessageBox-Datenbank ein bestimmtes, vom Benutzer konfigurierbares Niveau erreicht. Weitere Informationen zur Drosselung finden Sie unter Optimieren der Ressourcennutzung durch Hostdrosselung.
In Anbetracht aller Aktivitäten und Prozesse, die zur Systemnachhaltigkeit beitragen, besteht die wichtigste Maßnahme langfristig darin, zu verhindern, dass der Rückstand unbegrenzt anwächst. Mit anderen Worten, langfristig muss ein Ausgleich zwischen den maximalen und minimalen Durchsatzwerten geschaffen werden, sodass die MessageBox-Datenbank in der Lage ist, einen konstanten und überschaubaren durchschnittlichen Rückstand aufrecht zu erhalten. Das primäre Maß für den Backlog ist die Tiefe der Spooltabelle, die als BizTalk Server Leistungsindikator namens BizTalk:Message Box:General Counters:Spool Size verfügbar gemacht wird. Weitere Informationen zu diesem Leistungsindikator finden Sie unter Meldungsfeldleistungsindikatoren.
Weitere Informationen zur Verwendung der Spoolgröße und anderer Leistungsindikatoren zum Bestimmen des maximalen Durchsatzes, den ein System erhalten kann, finden Sie unter Messen des maximalen nachhaltigen Engine-Durchsatzes.
Empfehlungen
BizTalk Server behält alle Nachrichten und die meisten Orchestrierungen bei und kann, wenn nicht überprüft, einen Backlog mit Nachrichten entwickeln, die zu Problemen führen können, z. B. nicht genügend Speicherplatz. Das primäre Maß für den Backlog ist die Tiefe der Spooltabelle des Nachrichtenfelds, die als Leistungsindikator mit dem Namen BizTalk:Message Box:General Counters:Spool Size verfügbar gemacht wird.
Für einen nachhaltigen Durchsatz muss die Spoolgröße langfristig einen stabilen Durchschnitt aufrechterhalten. Das heißt, der Spool darf nicht unkontrolliert und unbegrenzt wachsen. Unter Messung des maximalen nachhaltigen Engine-Durchsatzes wird dieses Verhalten ausführlicher erläutert, und es wird eine Methode zur Bestimmung des maximalen Durchsatzes bereitgestellt, der die Spoolgröße und andere Leistungsindikatoren nutzt.
Weitere Informationen
Messen des maximal tragbaren Engine-Durchsatzes
Was bedeutet nachhaltige Leistung?
Tipps und Tricks zur Leistung
MessageBox-Leistungsindikatoren