Zustandsverwaltung

Eine Anwendung, die Statusinformationen verwaltet, speichert diese gewöhnlich in Datenbanktabellen. Da jede Konversationsgruppe über einen eindeutigen Bezeichner verfügt, dient dieser Bezeichner normalerweise als Schlüssel für die Statustabelle. Service Broker stellt auch Nachrichtenbeibehaltung für Anwendungen bereit, die die genauen gesendeten und empfangenen Nachrichten beibehalten müssen.

Für viele Anwendungen sind keine Statusinformationen erforderlich. Im Allgemeinen verwaltet eine Anwendung Statusinformationen, wenn der Task mehrere Nachrichten umfasst und Informationen über den Task vorhanden sind, die in den bestehenden Tabellen für die Datenbank nicht gespeichert werden können.

In einer Anwendung, die Kundeninformationen sucht und zurückgibt, sind beispielsweise keine Statusinformationen erforderlich. Eine solche Anwendung verwendet auch keine Statustabelle. Andererseits erzeugt eine Anwendung, mit der die Auftragserfüllung verwaltet wird, Anforderungen an mehrere andere Dienste. Ein Programm, das Anforderungen an andere Dienste koordiniert, verwendet zur Nachverfolgung der Anforderungen oft eine Statustabelle. Die Anwendung aktualisiert die Datentabellen und löscht die Statustabelle, sobald alle Anforderungen erfolgreich abgeschlossen wurden. Falls eine Anforderung einen Fehler zurückgibt, sendet die Anwendung die Anforderung erneut, oder sie sendet anhand der Statustabelle eine kompensierende Anforderung.

Eine Anwendung verwendet möglicherweise auch zu Überwachungs- oder Protokollierungszwecken eine Statustabelle. Dabei speichert sie die wichtigen Informationen über jede Anforderung in der Statustabelle. In diesem Fall löscht die Anwendung beim Abschluss einer Konversation nicht die Informationen in der Statustabelle.

Bei einigen Anwendungen ist möglicherweise ein genauer Datensatz der im Rahmen der aktiven Konversation gesendeten und empfangenen Nachrichten erforderlich. Für dieses Szenario stellt Service Broker die Nachrichtenbeibehaltung bereit.