Broker:Conversation (Ereignisklasse)

SQL Server generiert ein Broker:Conversation-Ereignis, um den Fortschritt einer Service Broker-Konversation anzugeben.

Datenspalten der Broker:Conversation-Ereignisklasse

Datenspalte Typ Beschreibung Spaltennummer Filterbar

ApplicationName

nvarchar

Der Name der Clientanwendung, die die Verbindung mit einer Instanz von SQL Server hergestellt hat. Diese Spalte wird mit den Werten aufgefüllt, die von der Anwendung übergeben werden, und nicht mit dem angezeigten Namen des Programms.

10

Ja

ClientProcessID

int

Die ID, die der Hostcomputer dem Prozess zuweist, in dem die Clientanwendung ausgeführt wird. Diese Datenspalte wird aufgefüllt, wenn die Clientprozess-ID durch den Client bereitgestellt wird.

9

Ja

DatabaseID

int

Die ID der Datenbank, die durch die USE database-Anweisung angegeben ist, bzw. die ID der Standarddatenbank, wenn für eine bestimmte Instanz keine USE database-Anweisung ausgegeben wurde. SQL Server Profiler zeigt den Namen der Datenbank an, wenn die ServerName-Datenspalte in der Ablaufverfolgung aufgezeichnet wird und der Server verfügbar ist. Der Wert für eine Datenbank kann mithilfe der DB_ID-Funktion ermittelt werden.

3

Ja

EventClass

int

Der Typ der aufgezeichneten Ereignisklasse. Immer 124 für Broker:Conversation.

27

Nein

EventSequence

int

Die Sequenznummer für dieses Ereignis.

51

Nein

EventSubClass

nvarchar

Der Typ der Ereignisunterklasse, der weitere Informationen zu jeder Ereignisklasse liefert.

21

Ja

GUID

uniqueidentifier

Der Konversationsbezeichner des Dialogs. Dieser Bezeichner wird als Teil der Nachricht übertragen und von beiden Seiten der Konversation gemeinsam verwendet.

54

Nein

HostName

nvarchar

Der Name des Computers, auf dem der Client ausgeführt wird. Diese Datenspalte wird aufgefüllt, wenn der Hostname durch den Client bereitgestellt wird. Der Hostname kann mithilfe der HOST_NAME-Funktion ermittelt werden.

8

Ja

IsSystem

int

Zeigt an, ob das Ereignis in einem Systemprozess oder einem Benutzerprozess aufgetreten ist.

0 = Benutzer

1 = System

60

Nein

LoginSid

image

Die Sicherheits-ID des angemeldeten Benutzers. Die SID ist für jede Anmeldung am Server eindeutig.

41

Ja

MethodName

nvarchar

Die Konversationsgruppe, zu der die Konversation gehört.

47

Nein

NTDomainName

nvarchar

Die Windows-Domäne, der der Benutzer angehört.

7

Ja

NTUserName

nvarchar

Der Name des Benutzers, der Eigentümer der Verbindung ist, von der dieses Ereignis generiert wurde.

6

Ja

ObjectName

nvarchar

Das Konversationshandle des Dialogs.

34

Nein

RoleName

nvarchar

Die Rolle des Konversationshandles. Dies ist entweder initiator oder target.

38

Nein

ServerName

nvarchar

Der Name der Instanz von SQL Server, für die eine Ablaufverfolgung ausgeführt wird.

26

Nein

Schweregrad

int

Der SQL Server-Fehlerschweregrad, wenn dieses Ereignis einen Fehler meldet.

29

Nein

SPID

int

Die Serverprozess-ID, die von SQL Server dem Prozess zugewiesen wurde, der diesem Client zugeordnet ist

12

Ja

StartTime

datetime

Der Zeitpunkt, zu dem das Ereignis begonnen hat, falls verfügbar.

14

Ja

TextData

ntext

Der aktuelle Status der Konversation. Folgende Angaben sind möglich:

  • SO. Started Outbound (Ausgehend gestartet). SQL Server verarbeitete eine BEGIN CONVERSATION-Anweisung für diese Konversation, es wurden jedoch noch keine Nachrichten gesendet.
  • SI. Started Inbound (Eingehend gestartet). Eine andere Instanz hat eine neue Konversation mit SQL Server gestartet, SQL Server hat jedoch die erste Meldung noch nicht vollständig empfangen. SQL Server kann die Konversation in diesem Status starten, wenn die erste Meldung fragmentiert ist oder SQL Server Nachrichten in falscher Reihenfolge empfängt. SQL Server kann jedoch die Konversation im CO-Status erstellen, wenn die erste für die Konversation empfangene Übertragung die gesamte erste Nachricht enthält.
  • CO. Conversing (Konversation begonnen). Die Konversation ist eingerichtet, und beide Seiten der Konversation können Meldungen senden. Der Großteil der Kommunikation für einen typischen Dienst findet statt, wenn sich die Konversation in diesem Status befindet.
  • DI. Disconnected Inbound (Eingehend getrennt). Die Remoteseite der Konversation hat eine END CONVERSATION-Anweisung ausgegeben. Die Konversation verbleibt in diesem Status, bis die lokale Seite der Konversation eine END CONVERSATION-Anweisung ausgibt. Eine Anwendung kann weiter Nachrichten für die Konversation empfangen. Da die Remoteseite der Konversation die Konversation beendet hat, kann eine Anwendung in dieser Konversation keine Nachrichten mehr senden. Wenn eine Anwendung eine END CONVERSATION-Anweisung ausgibt, geht die Konversation in den CD-Status über.
  • DO. Disconnected Outbound (Ausgehend getrennt). Die lokale Seite der Konversation hat eine END CONVERSATION-Anweisung ausgegeben. Die Konversation verbleibt in diesem Status, bis die Remoteseite der Konversation die END CONVERSATION-Anweisung bestätigt. Eine Anwendung kann keine Nachrichten für die Konversation senden oder empfangen. Wenn die Remoteseite der Konversation die END CONVERSATION-Anweisung bestätigt, geht die Konversation in den CD-Status über.
  • ER. Error (Fehler). An diesem Endpunkt ist ein Fehler aufgetreten. Die Error-, Severity- und State-Spalten enthalten Informationen zum aufgetretenen Fehler.
  • CD. Closed (Geschlossen). Der Konversationsendpunkt wird nicht mehr verwendet.

1

Ja

TransactionID

bigint

Die vom System zugewiesene ID der Transaktion.

4

Nein

In der folgenden Tabelle sind die Unterklassenwerte für diese Ereignisklasse aufgeführt.

ID Subclass Beschreibung

1

SEND Message

SQL Server generiert ein SEND Message-Ereignis, wenn Datenbankmodul eine SEND-Anweisung ausführt.

2

END CONVERSATION

SQL Server generiert ein END CONVERSATION-Ereignis, wenn Datenbankmodul eine END CONVERSATION-Anweisung ausführt, die keine WITH ERROR-Klausel enthält.

3

END CONVERSATION WITH ERROR

SQL Server generiert ein END CONVERSATION WITH ERROR-Ereignis, wenn Datenbankmodul eine END CONVERSATION-Anweisung ausführt, die eine WITH ERROR-Klausel enthält.

4

Broker Initiated Error

SQL Server generiert jedes Mal ein Broker Initiated Error-Ereignis, wenn Service Broker eine Fehlermeldung erstellt. Wenn Service Broker z. B. eine Nachricht für einen Dialog nicht erfolgreich weiterleiten kann, erstellt der Broker eine Fehlermeldung für den Dialog und generiert dieses Ereignis. SQL Server generiert dieses Ereignis nicht, wenn ein Anwendungsprogramm eine Konversation mit einem Fehler beendet.

5

Terminate Dialog

Service Broker hat den Dialog beendet. Service Broker beendet Dialoge als Reaktion auf Bedingungen, die zwar die Fortsetzung des Dialogs verhindern, die aber keinen Fehler oder das normale Ende einer Konversation darstellen. So führt z. B. das Löschen eines Dienstes dazu, dass Service Broker alle Dialoge für diesen Dienst beendet.

6

Received Sequenced Message

SQL Server generiert eine Received Sequenced Message-Ereignisklasse, wenn SQL Server eine Nachricht empfängt, die eine Nachrichtensequenznummer enthält. Alle benutzerdefinierten Nachrichtentypen sind sequenzierte Nachrichten. Service Broker generiert in zwei Fällen eine nicht sequenzierte Meldung:

  • Von Service Broker generierte Fehlermeldungen sind nicht sequenziert.
  • Unter bestimmten Umständen können Nachrichtenbestätigungen nicht sequenziert sein. Aus Effizienzgründen schließt Service Broker die Nachrichtenbestätigungen wenn möglich als Bestandteil einer sequenzierten Meldung ein. Wenn eine Anwendung allerdings innerhalb einer bestimmten Zeitdauer keine sequenzierte Nachricht an den Remoteendpunkt sendet, erstellt Service Broker eine nicht sequenzierte Nachricht für die Nachrichtenbestätigung.

7

Received END CONVERSATION

SQL Server generiert ein Received END CONVERSATION-Ereignis, wenn SQL Server eine End Dialog-Nachricht von der anderen Seite der Konversation empfängt.

8

Received END CONVERSATION WITH ERROR

SQL Server generiert ein Received END CONVERSATION WITH ERROR-Ereignis, wenn SQL Server einen benutzerdefinierten Fehler von der anderen Seite der Konversation empfängt. Beachten Sie, dass SQL Server dieses Ereignis nicht generiert, wenn SQL Server einen vom Broker definierten Fehler empfängt.

9

Received Broker Error Message

SQL Server generiert ein Received Broker Error Message-Ereignis, wenn Service Broker von der anderen Seite der Konversation eine vom Broker definierte Fehlermeldung empfängt. SQL Server generiert dieses Ereignis nicht, wenn Service Broker eine Fehlermeldung empfängt, die von einer Anwendung generiert wurde.

Wenn z. B. die aktuelle Datenbank eine Standartroute zu einer Weiterleitungsdatenbank enthält, leitet Service Broker eine Nachricht mit einem unbekannten Dienstnamen zur Weiterleitungsdatenbank weiter. Wenn diese Datenbank die Nachricht nicht weiterleiten kann, erstellt der Broker in dieser Datenbank eine Fehlermeldung und gibt diese Fehlermeldung an die aktuelle Datenbank zurück. Wenn die aktuelle Datenbank die vom Broker genierierte Fehlermeldung von der Weiterleitungsdatenbank empfängt, generiert die aktuelle Datenbank ein Received Broker Error Message-Ereignis.

10

Received END CONVERSATION Ack

SQL Server generiert ein Received END CONVERSATION Ack-Ereignis, wenn die andere Seite einer Konversation eine von dieser Seite der Konversation gesendete End Dialog-Nachricht oder eine Fehlermeldung empfängt.

11

BEGIN DIALOG

SQL Server generiert ein BEGIN DIALOG-Ereignis, wenn das Datenbankmodul einen BEGIN DIALOG-Befehl ausführt.

12

Dialog Created

SQL Server generiert ein Dialog Created-Ereignis, wenn Service Broker einen Endpunkt für einen Dialog erstellt. Beachten Sie, dass Service Broker jedes Mal einen Endpunkt erstellt, wenn ein neuer Dialog eingerichtet wird, und zwar unabhängig davon, ob die aktuelle Datenbank der Initiator oder das Ziel des Dialogs ist.

13

END CONVERSATION WITH CLEANUP

SQL Server generiert ein END CONVERSATION WITH CLEANUP-Ereignis, wenn Datenbankmodul eine END CONVERSATION-Anweisung ausführt, die eine WITH CLEANUP-Klausel enthält.

Siehe auch

Andere Ressourcen

Einführung in Service Broker
Konversationsarchitektur

Hilfe und Informationen

Informationsquellen für SQL Server 2005