Die MessageBox-Datenbank

Das Herzstück der Veröffentlichungs- und Abonnement-Engine in Microsoft BizTalk Server ist die MessageBox-Datenbank. Die MessageBox besteht aus zwei Komponenten: einer oder mehreren Microsoft SQL Server-Datenbanken und dem Messaging-Agent. Die SQL Server-Datenbank bietet einen Persistenzspeicher für viele Elemente, darunter Nachrichten, Nachrichtenteile, Nachrichteneigenschaften, Abonnements, Orchestrierungsstufen, Überwachungsdaten und Hostwarteschlangen für das Routing. Die BizTalk Server-Gruppe kann eine oder mehrere MessageBox-Datenbanken enthalten, in der Nachrichten veröffentlicht werden, die von den entsprechenden Abonnenten abgerufen werden.

Die Datenbank stellt einen Teil der Logik für das Weiterleiten von Nachrichten und Ausführen von Abonnements zur Verfügung. Der Nachrichtenagent ist dabei die Komponente, die die Datenbankkomponente einschließt und abstrahiert. Er ist die von BizTalk Server verwendete Schnittstelle zum Interagieren mit der MessageBox. Der Nachrichtenagent ist eine COM-Komponente (Component Object Model), die Schnittstellen für die Veröffentlichung von Nachrichten, zum Abonnieren von Nachrichten, Abrufen von Nachrichten usw. bietet. Diese Schnittstelle ist der einzige Mechanismus, der von anderen BizTalk Server-Komponenten (z. B. Adapterframework und Orchestrierungen) zur Interaktion mit der MessageBox verwendet wird.

Die MessageBox und die Nachricht

Ein Abonnement für die MessageBox-Datenbank ist ein Satz festgelegter Informationen und Dienstinformationen. Die festgelegten (oder Prädikats-) Informationen stellen die Kriterien dar, die eine Nachricht erfüllen muss. Die Dienstinformationen geben an, was mit der Nachricht, die die Kriterien erfüllt, geschehen soll. Alle diese Informationen werden in einer Reihe von Tabellen gespeichert, die die Messaging- und Orchestrierungs-Engine aufrufen.

Wenn BizTalk Server eine Nachricht empfängt, wird die Nachricht in einer Pipeline verarbeitet und in der MessageBox-Datenbank abgelegt. Die eingehende Nachricht hat einen Kontext. Der Nachrichtenkontext besteht aus einer Reihe an Eigenschaften, die der Nachricht zugeordnet sind. Es gibt drei Arten von Nachrichtenkontexteigenschaften:

  • Einfache geschriebene Eigenschaften

  • Höher gestufte Eigenschaften

  • Prädikateigenschaften

    Die Prädikat- und höher gestuften Nachrichteneigenschaften geben den Geschäftsprozess an, der diese Nachricht abonniert. Außerdem geben sie an, ob der Geschäftsprozess die erforderlichen Berechtigungen zum Empfangen dieser Nachricht hat.

    Wenn ein Geschäftsprozess diese Nachricht abonniert, sendet die MessageBox-Datenbank die Nachricht an den Geschäftsprozess. Wenn ein Geschäftsprozess die Nachricht empfängt, wird die Nachricht auf einer verfügbaren Hostinstanz verarbeitet. Wenn der Geschäftsprozess eine Pipeline oder einen Sendeport abonniert, sendet er nach der Nachrichtenverarbeitung eine Antwortnachricht an die MessageBox-Datenbank.

    Für jeden BizTalk-Host unterhält die zugehörige MessageBox eine Warteschlange vom Typ "Verarbeiten" und eine Warteschlange vom Typ "Angehalten". Außerdem enthält jede MessageBox-Datenbank eine Reihe von Tabellen für den statischen, den dynamischen und den Instanzstatus. Informationen zu BizTalk-Hosts finden Sie unter Entitäten.

Wichtig

Wenn ein Host nicht mehr verfügbar ist (wenn beispielsweise die MessageBox-Datenbank, die Nachrichten von diesem Host empfängt, nicht mehr verfügbar ist) werden alle anderen MessageBox-Datenbanken unverfügbar.

Die erste MessageBox-Datenbank erstellen Sie beim Ausführen des Konfigurations-Assistenten. Die MessageBox-Datenbank, die konfiguriert ist, wird zur MessageBox-Masterdatenbank. Die MessageBox-Masterdatenbank wertet Abonnements aus und leitet sie an alle anderen MessageBox-Datenbanken in der BizTalk Server-Umgebung weiter. Informationen zum Verbessern der Leistung für die master MessageBox-Datenbank finden Sie unter Verwalten von MessageBox-Datenbanken.

Wichtig

Sie müssen die SQL Server-Clusterdienste einsetzen, um für die MessageBox-Datenbanken Failover-Schutz zu bieten.

Angehaltene Nachrichten in der MessageBox-Datenbank

BizTalk Server speichert mit angehaltenen Pipelines verknüpfte Nachrichten in der MessageBox-Datenbank. Wenn in der Pipeline ein Fehler auftritt, hält BizTalk Server die Instanz einer Nachricht an. Es gibt zwei Arten von angehaltenen Dienstinstanzen:

  • Angehaltene Instanzen, die fortgesetzt werden können.

  • Angehaltene Instanzen, die nicht fortgesetzt werden können (z. B. wenn eine Instanz beschädigt ist).

    Je nach der Ursache des Anhaltens können Sie die von BizTalk Server angehaltenen Dienste fortsetzen. Wenn beispielsweise eine Orchestrierung auf eine Form vom Typ Anhalten trifft oder wenn ein Transport eine Nachricht nicht zustellen konnte, entfernt BizTalk Server angehaltene Instanzen, die aus der MessageBox-Datenbank nicht fortgesetzt werden können, nicht automatisch. Sie können eine Dienstinstanz auf einem Datenträger speichern, bevor Sie sie aus der Warteschlange "Angehalten" entfernen.

    Informationen zum Sichern von MessageBox-Datenbanken finden Sie unter Sichern und Wiederherstellen BizTalk Server Datenbanken.

Weitere Informationen

Die Messaging-Engine