Freigeben über


Warteschlangen

Fügt einer Warteschlange gespeicherte Nachrichten hinzu. Wenn Service Broker eine Nachricht für einen Dienst empfängt, fügt Service Broker die Nachricht in die Warteschlange für diesen Dienst ein. Zum Senden von Nachrichten an den Dienst empfängt eine Anwendung Nachrichten aus der Warteschlange. Service Broker verwaltet Warteschlangen und stellt eine Warteschlange tabellenähnlich dar.

Jeder Dienst ist einer Warteschlange zugeordnet. Wenn eine Nachricht für einen Dienst eintrifft, ordnet Service Broker die Nachricht in der dem betreffenden Dienst zugeordneten Warteschlange an.

Jede Nachricht stellt eine Zeile in der Warteschlange dar. Die Zeile enthält den Inhalt der Nachricht sowie Informationen zum Nachrichtentyp, zum Zieldienst der Nachricht, zum Vertrag, dem die Nachricht entspricht, zur für die Nachricht ausgeführten Gültigkeitsprüfung, zur Konversation, der die Nachricht angehört, und interne Informationen zur Warteschlange. Eine Anwendung verwendet die Informationen in der Nachrichtenzeile, um jede Nachricht eindeutig zu identifizieren und die Nachricht entsprechend zu verarbeiten.

Anwendungen erhalten Nachrichten von der Warteschlange für den Dienst. Für jede Konversation geben Warteschlangen Nachrichten in der Reihenfolge zurück, in der sie vom Absender gesendet wurden. Alle bei einem einzelnen Empfangsvorgang empfangenen Nachrichten sind Teil von Konversationen, die zu einer Konversationsgruppe gehören. Eine Warteschlange enthält effektiv Gruppen zusammengehöriger Nachrichten, d. h. eine Gruppe für jede Konversationsgruppe. Die Warteschlange gibt jedes Mal eine Gruppe zusammengehöriger Nachrichten zurück, wenn die Anwendung einen Empfangsvorgang für die Warteschlange ausführt. Die Anwendung kann Nachrichten für eine bestimmte Konversation oder eine bestimmte Konversationsgruppe empfangen. Warteschlangen geben keine Nachrichten in strikter FIFO-Reihenfolge (First In First Out) zurück. Stattdessen geben Warteschlangen Nachrichten für jede Konversation in der Reihenfolge zurück, in der die Nachrichten gesendet wurden. Deshalb muss eine Anwendung keinen Code einschließen, um die Originalreihenfolge der Nachrichten wiederherzustellen.

Eine Warteschlange kann einer gespeicherten Prozedur zugeordnet sein. In diesem Fall aktiviert SQL Server die gespeicherte Prozedur, wenn Nachrichten in der Warteschlange verarbeitet werden müssen. SQL Server kann mehrere Instanzen der gespeicherten Prozedur (bis zu einem konfigurierten Maximalwert) starten. Weitere Informationen finden Sie unter Aktivierung von Service Broker.