Erstellen von Service Broker-Diensten

Die Definition eines Service Broker-Diensts enthält die Namen der Verträge, für die der Dienst als Ziel fungiert. Ein Zieldienst stellt eine Adresse dar, die Anforderungen für die Tasks akzeptiert, die von den Verträgen identifiziert werden, welche der Dienst angibt. Ein initiierender Dienst stellt eine Rückgabeadresse für eine Konversation mit einem Zieldienst dar.

Ein Dienst stellt einen Geschäftsprozess als Gruppe von unterschiedlichen Tasks dar. Jeder Vertrag innerhalb des Diensts stellt einen bestimmten Task dar. Ein Dienst kann mehrere Verträge angeben, und ein Vertrag kann von mehreren Diensten verwendet werden.

Jeder Dienst verwendet eine Warteschlange, um Nachrichten zu speichern. An den Dienst gesendete Nachrichten werden an die Warteschlange übermittelt. Im Allgemeinen lassen sich Anwendungen am einfachsten implementieren, wenn nur ein Dienst eine bestimmte Warteschlange verwendet. Aus Gründen der Flexibilität lässt Service Broker es jedoch zu, dass mehrere Dienste dieselbe Warteschlange angeben. In diesem Fall behandelt die Anwendung entweder sämtliche Nachrichten desselben Typs auf die gleiche Weise, oder sie überprüft den Nachrichtentypnamen und den Dienstnamen, um zu bestimmen, wie die Nachricht zu verarbeiten ist. Diese Strategie kann zweckmäßig sein, wenn eine Anwendung mehrere Versionen desselben Diensts unterstützt.

Das Netzwerkformat für eine Nachricht enthält den Namen des Diensts. Deshalb werden Dienstnamen oft so ausgewählt, dass Sortierungsprobleme und Namenskonflikte vermieden werden. Weitere Informationen zur Benennung finden Sie unter Benennen von Service Broker-Objekten.

So erstellen Sie einen Dienst:

  1. Erstellen Sie Nachrichtentypen, die die Daten definieren, welche hin- und hergesendet werden können.

  2. Erstellen Sie einen Vertrag, der die Nachrichtentypen identifiziert, die verwendet werden können, und der angibt, welcher Endpunkt sie zur Ausführung eines bestimmten Tasks senden kann.

  3. Erstellen Sie eine Anwendung, die zur Ausführung des jeweiligen Tasks nach Bedarf Nachrichten empfängt, verarbeitet und sendet.

  4. Erstellen Sie eine Warteschlange, in der die eingehenden Nachrichten für den Dienst gespeichert werden. Sie können die Warteschlange einer gespeicherten Aktivierungsprozedur zuordnen, damit der Broker die gespeicherte Prozedur automatisch aktiviert, um Nachrichten direkt bei ihrem Eingang zu verarbeiten.

  5. Erstellen Sie einen Dienst, und ordnen Sie ihn der Warteschlange zu, die die Nachrichten für den Dienst empfängt. Der Dienst macht die Verträge verfügbar, mit denen die Tasks definiert werden, welche der Dienst für andere Dienste ausführt. Dieser Dienst muss keine Verträge für Tasks angeben, die er von anderen Diensten anfordert.

Die genauen Schritte bei der Erstellung eines Diensts können je nach den spezifischen Anforderungen des Diensts etwas abweichen. Wenn Sie beispielsweise einen Dienst zur Behandlung von Ereignisbenachrichtigungen erstellen, wurden der Nachrichtentyp und der Vertrag bereits von SQL Server definiert und müssen daher nicht mehr erstellt werden.