Erstellen von Dienstbrokeranwendungen

Gilt für:SQL ServerAzure SQL Managed Instance

Dieser Abschnitt enthält eine allgemeine Übersicht über die Struktur einer Service Broker-Anwendung. Zudem werden einige der gängigsten Strategien zum Starten einer Anwendung erläutert, die Service Broker verwendet, und die grundlegenden Schritte zum Empfangen und Verarbeiten von Nachrichten beschrieben.

Die Anwendung für einen initiierenden Dienst verwendet die BEGIN DIALOG Anweisung, um Informationen zu den Diensten an jedem Endpunkt und dem Dienstvertrag anzugeben, den die Anwendung für die Kommunikation verwendet. Die Anwendung verwendet die SEND Anweisung, um die erste Nachricht der Unterhaltung an den Zieldienst zu senden. Die Anwendung muss darauf vorbereitet sein, Nachrichten vom Service Broker zu empfangen und zu verarbeiten, auch wenn der Vertrag dem Zieldienst nicht erlaubt, Nachrichten zurückzugeben. Die initiierende Anwendung wird oft in Form von zwei separaten Komponenten implementiert. Eine Komponente beginnt die Konversation, die andere Komponente verarbeitet Nachrichten, die in der Warteschlange eingehen.

Die Anwendung für einen Zieldienst empfängt Nachrichten vom initiierenden Dienst und verarbeitet diese. Die Anwendung muss außerdem auf den Empfang und die Verarbeitung von Nachrichten von Service Broker vorbereitet sein.

Je nach den Anforderungen des Diensts kann der Teil der Anwendung, der die Warteschlange verarbeitet, auf mehrere unterschiedliche Arten gestartet werden. Weitere Informationen zum Starten einer Anwendung, die Service Broker verwendet, finden Sie unter Auswählen einer Startstrategie.

Die Anwendung startet jedoch, die Anwendung beginnt eine Transaktion und verwendet die RECEIVE Anweisung, um eine Nachricht zu dequeue. Sie extrahiert die Daten aus den Nachrichten und führt die gesamte erforderliche Verarbeitung aus. Bei Bedarf verwendet die Anwendung die SEND Anweisung, um Nachrichten an die andere Seite der Unterhaltung zu senden. Anschließend führt sie einen Commit für die Transaktion aus. Aus Effizienzgründen verarbeitet die Anwendung möglicherweise mehrere Nachrichten innerhalb derselben Transaktion. Dienste, die den Zustand beibehalten, verwenden häufig die GET CONVERSATION GROUP Anweisung, um eine Unterhaltungsgruppe zu sperren, den Status für die Unterhaltungsgruppe abzurufen und dann mehrere Nachrichten für die Unterhaltungsgruppe zu verarbeiten.

Die Unterhaltung wird fortgesetzt und SEND verwendet und RECEIVE Anweisungen zum Übertragen von Nachrichten zwischen den Endpunkten. Bei Bedarf kann BEGIN DIALOG jeder Teilnehmer der Unterhaltung eine Unterhaltung mit einem anderen Dienst starten, um zusätzliche Informationen zu erhalten. Beispielsweise kann eine Anwendung, die eine Ereignisbenachrichtigung verarbeitet, eine andere Unterhaltung mit einem Dienst initiieren, der Personalinformationen bereitstellt, um aktuelle Kontaktinformationen abzurufen, bevor sie eine Benachrichtigung senden.

Wenn die Unterhaltung ihren Zweck erreicht hat, verwendet die Anwendung am entsprechenden Endpunkt eine END CONVERSATION Anweisung, um die Unterhaltung zu beenden. Der andere Teilnehmer empfängt auch die END CONVERSATION Nachricht und gibt eine END CONVERSATION Nachricht auf seiner Seite aus. Sobald beide Teilnehmer Nachrichten ausgegeben END CONVERSATION haben, endet die Unterhaltung.

Wenn ein Fehler auftritt, kann ein Teilnehmer der Unterhaltung einen Fehler angeben, indem er die Unterhaltung mit der WITH ERROR Klausel beendet. Die Verwendung der WITH ERROR Klausel beendet die Unterhaltung und sendet eine Service Broker-Fehlermeldung an den anderen Teilnehmer der Unterhaltung.

Wenn Service Broker einen Fehler erkennt oder die Lebensdauer der Konversation abläuft, beendet Service Broker die Konversation und gibt eine Fehlermeldung an die aktiven Teilnehmer zurück. Wenn der Dienstbroker keine Unterhaltung herstellen kann, ist der einzige aktive Teilnehmer die initiierende Anwendung, und der Fehler wird an den initiierenden Dienst übermittelt. Hat bereits ein Teilnehmer die Konversation beendet, wird die Fehlermeldung dem anderen Teilnehmer übermittelt. Andernfalls wird der Fehler an beide Teilnehmer der Konversation übermittelt.

In diesem Abschnitt

Artikel Description
Auswählen einer Startstrategie Hier werden einige der gängigsten Strategien zum Starten einer Anwendung erläutert, die Service Broker verwendet.
Gliederung der Service Broker-Anwendung Beschreibt die grundlegenden Schritte zum Empfangen und Verarbeiten von Nachrichten