Tools zur Problembehandlung (Service Broker)

Service Broker stellt mehrere Tools bereit, um Konfigurations- und Konversationsprobleme zu diagnostizieren.

Service Broker ist eine Komponente von Database Engine (Datenbankmodul). Daher können viele der Database Engine (Datenbankmodul)-Tools auch zum Diagnostizieren von Service Broker-Problemen verwendet werden. Weitere Informationen finden Sie unter Tools zur Problembehandlung (Datenbankmodul).

Dienstprogramm 'ssbdiagnose'

Das Dienstprogramm ssbdiagnose analysiert die Konfiguration von Service Broker-Diensten und überprüft aktive Konversationen auf Fehler. Verwenden Sie ssbdiagnose, um folgende Ausgaben auszuführen:

  • Bestätigen, dass in einer neu konfigurierten Service Broker-Anwendung keine Konfigurationsfehler vorhanden sind.

  • Bestätigen, dass keine Konfigurationsfehler vorhanden sind, nachdem Sie die Konfiguration einer vorhandenen Service Broker-Anwendung geändert haben.

  • Bestätigen, dass keine Konfigurationsfehler vorhanden sind, nachdem eine Service Broker-Datenbank getrennt und dann an eine neue Instanz von Database Engine (Datenbankmodul) angefügt wurde.

  • Bestimmen, welche Fehler verhindern, dass Nachrichten erfolgreich zwischen Diensten übermittelt werden.

Weitere Informationen zum Verwenden des Dienstprogramms finden Sie unter Dienstprogramm 'ssbdiagnose'.

Service Broker-Übertragungswarteschlange

Service Broker-Nachrichten, die nicht erfolgreich in die empfangende Warteschlange übertragen werden können, werden in der Service Broker-Übertragungswarteschlange der sendenden Datenbank gespeichert. Sie können in der sys.transmission_queue-Systemsicht in jeder Datenbank die in der Warteschlange vorhandenen Nachrichten anzeigen. Für Nachrichten, die sich aufgrund eines Übertragungsfehlers in der Warteschlange befinden, enthält die transmission_status-Spalte die Fehlernachricht.

Nicht alle Nachrichten in der Übertragungswarteschlange sind auf Fehler zurückzuführen:

  • Einige Nachrichten in der Warteschlange werden möglicherweise gerade gesendet. Dies kann z. B. der Fall sein, wenn darauf gewartet wird, dass ein getrennter Empfänger wieder verbunden oder eine Netzwerkübertragung bestätigt wird.

  • Wenn für die Warteschlange RETENTION auf ON festgelegt wurde, werden erfolgreiche übertragene Nachrichten in der Übertragungswarteschlange behalten, bis die Konversation beendet ist.

Die is_conversation_error-Spalte gibt an, ob die Nachricht einen Fehler entdeckt hat.

Weitere Informationen zu sys.transmission_queue finden Sie unter sys.transmission_queue (Transact-SQL).

Service Broker-SQL-Ablaufverfolgungsereignisse

Service Broker stellt mehrere SQL-Ablaufverfolgungsereignisse bereit, die Sie zum Diagnostizieren von Problemen verwenden können. Sie können SQL Server Profiler oder gespeicherte Systemprozeduren verwenden, um eine SQL-Ablaufverfolgung zu konfigurieren, die Service Broker-Ereignisse und -Fehler überwacht, wenn sie auftreten. Auf diese Weise können Sie die Service Broker-Ereignisse erkennen, die vom System generiert werden, und Sie können feststellen, ob diese Fehler erkennen.

Weitere Informationen zum Verwenden der SQL-Ablaufverfolgung finden Sie unter Überwachen von Ereignissen.

Weitere Informationen zu Service Broker-Ablaufverfolgungsereignissen finden Sie unter Broker (Ereigniskategorie).

Service Broker-Leistungsobjekte

Service Broker stellt etliche Leistungsobjekte bereit, die Sie im Systemmonitor zum Verfolgen der Leistung von Service Broker-Vorgängen verwenden können.

Weitere Informationen finden Sie unter Überwachen der Ressourcenverwendung (Systemmonitor).

Weitere Informationen zu den Service Broker-Leistungsobjekten finden Sie unter folgenden Themen:

Service Broker-Fehler

Service Broker verwendet die gleichen Mechanismen wie Database Engine (Datenbankmodul), um Fehler an Anwendungen oder Tools zurückzugeben. Weitere Informationen finden Sie unter Grundlegendes zu Datenbankmodulfehlern.

Informationen zu Service Broker-Fehlern finden Sie unter Fehler- und Ereignisreferenz (Service Broker).

Service Broker-Fehler, die beim Ausführen einer Transact-SQL-Anweisung generiert werden, werden an die aufrufende Anwendung zurückgegeben. Wenn Sie z. B. ein Skript im Management StudioTransact-SQL-Abfrage-Editor ausführen, werden alle Fehler von Service BrokerTransact-SQL-Anweisungen im Meldungsfenster zurückgegeben.

Viele Service Broker-Vorgänge sind asynchron und treten auf, wenn keine Anwendung mit der Instanz von Database Engine (Datenbankmodul) verbunden ist. Diese Fehler werden normalerweise im Fehlerprotokoll und im Windows-Anwendungsprotokoll zurückgegeben, die der Instanz von Database Engine (Datenbankmodul) zugeordnet sind. Weitere Informationen finden Sie unter Überwachen der Fehlerprotokolle.

Service Broker-Systemsichten

Service Broker stellt mehrere Systemsichten zum Analysieren vorhandener Service Broker-Konfigurationen oder zum Überwachen des Status von Service Broker-Komponenten bereit.

Service Broker-Katalogsichten

Die Service Broker-Katalogsichten geben Daten für die aktuelle Konfiguration von Service Broker-Katalogobjekten zurück, z. B. Warteschlangen und Verträge.

Eine Liste der Service Broker-Katalogsichten finden Sie unter Service Broker-Katalogsichten (Transact-SQL).

Dynamische Verwaltungssichten in Service Broker

Die dynamischen Verwaltungssichten in Service Broker geben Daten für den aktuellen Status von Service Broker-Komponenten zurück, z. B. Aktivierungstasks und Service Broker-Verbindungen.

Eine Liste der dynamischen Verwaltungssichten in Service Broker finden Sie unter Dynamische Verwaltungssichten in Verbindung mit Service Broker (Transact-SQL).