Condividi tramite


Classe di evento Broker:Conversation

SQL Server genera un evento Broker:Conversation per indicare lo stato di una conversazione di Service Broker.

Colonne di dati della classe di evento Broker:Conversation

Colonna di dati

Tipo

Descrizione

Numero colonna

Filtrabile

ApplicationName

nvarchar

Nome dell'applicazione client in cui è stata creata la connessione a un'istanza di SQL Server. Questa colonna viene popolata con i valori passati dall'applicazione al posto del nome visualizzato del programma.

10

ClientProcessID

int

ID assegnato dal computer host al processo in cui è in esecuzione l'applicazione client. Questa colonna di dati viene popolata se il client fornisce l'ID del processo client.

9

DatabaseID

int

ID del database specificato dall'istruzione USE database, se non è stata eseguita l'istruzione USE database, l'ID del database predefinito. In SQL Server Profiler viene visualizzato il nome del database se l'acquisizione per la traccia include la colonna di dati Server Name e il server è disponibile. È possibile determinare il valore per un database utilizzando la funzione DB_ID.

3

EventClass

int

Tipo di classe di evento acquisita. Per Broker:Conversation corrisponde sempre a 124.

27

No

EventSequence

int

Numero di sequenza dell'evento.

51

No

EventSubClass

nvarchar

Tipo di sottoclasse di evento. Fornisce ulteriori informazioni su ogni classe di evento.

21

GUID

uniqueidentifier

ID della conversazione della finestra. Questo identificatore viene trasmesso come parte del messaggio e viene condiviso da entrambi i lati della conversazione.

54

No

HostName

nvarchar

Nome del computer in cui è in esecuzione il client. Questa colonna di dati viene popolata se il client fornisce il nome host. Per determinare il nome host, utilizzare la funzione HOST_NAME.

8

IsSystem

int

Indica se l'evento è stato generato in un processo di sistema o in un processo utente.

0 = utente

1 = sistema

60

No

LoginSid

image

ID di protezione (SID) dell'utente connesso. Il SID è univoco per ogni account di accesso nel server.

41

MethodName

nvarchar

Gruppo di conversazioni al quale la conversazione appartiene.

47

No

NTDomainName

nvarchar

Dominio di Windows a cui appartiene l'utente.

7

NTUserName

nvarchar

Nome dell'utente proprietario della connessione che ha generato questo evento.

6

ObjectName

nvarchar

Handle di conversazione del dialogo.

34

No

Priorità

int

Livello di priorità della conversazione

5

RoleName

nvarchar

Ruolo dell'handle di conversazione. Può essere initiator o target.

38

No

ServerName

nvarchar

Nome dell'istanza di SQL Server tracciata.

26

No

Severity

int

Gravità dell'errore di SQL Server, se l'evento indica un errore.

29

No

SPID

int

ID del processo server assegnato da SQL Server al processo associato al client.

12

StartTime

datetime

Ora di inizio dell'evento, se disponibile.

14

TextData

ntext

Stato corrente della conversazione. I valori validi sono:

  • SO. Avviata in uscita (Started outbound). SQL Server ha elaborato un'istruzione BEGIN CONVERSATION per la conversazione, ma non sono stati inviati messaggi.

  • SI. Avviata in ingresso (Started inbound). Un'altra istanza del Motore di database ha avviato una nuova conversazione con l'istanza corrente, che tuttavia non ha completato la ricezione del primo messaggio. SQL Server potrebbe creare una conversazione in questo stato se il primo messaggio fosse frammentato oppure se SQL Server ricevesse messaggi non ordinati. SQL Server potrebbe tuttavia creare la conversazione nello stato CO se la prima trasmissione ricevuta per la conversazione contesse il primo messaggio per intero.

  • CO. In corso (Conversing). La conversazione è stata stabilita ed entrambi i lati della conversazione possono inviare messaggi. La maggior parte delle comunicazioni di un servizio tipico ha luogo quando la conversazione è in questo stato.

  • DI. Disconnessa in ingresso (Disconnected inbound). Il lato remoto della conversazione ha eseguito un'istruzione END CONVERSATION. La conversazione rimane in questo stato finché il lato locale della conversazione non esegue un'istruzione END CONVERSATION. Un'applicazione può ancora ricevere messaggi per la conversazione. Poiché sul lato remoto la conversazione è terminata, non può invece inviare messaggi nella conversazione. Quando un'applicazione esegue un'istruzione END CONVERSATION, la conversazione passa allo stato CLOSED (CD).

  • DO. Disconnessa in uscita (Disconnected outbound). Il lato locale della conversazione ha eseguito un'istruzione END CONVERSATION. La conversazione rimane in questo stato finché il lato remoto della conversazione non invia un acknowledgment per END CONVERSATION. Un'applicazione non può inviare o ricevere messaggi per la conversazione. Quando il lato remoto della conversazione invia un acknowledgement per END CONVERSATION, la conversazione passa allo stato CLOSED (CD).

  • ER. Errore. In questo endpoint si è verificato un errore. Le colonne Error, Severity e State contengono informazioni sull'errore specifico verificatosi.

  • CD. Chiusa. L'endpoint di conversazione non è più in uso.

1

TransactionID

bigint

ID della transazione assegnato dal sistema.

4

No

Nella tabella seguente sono elencati i valori delle sottoclassi di questa classe di evento.

ID

Sottoclasse

Descrizione

1

SEND Message

SQL Server genera un evento SEND Message quando Motore di database esegue un'istruzione SEND.

2

END CONVERSATION

SQL Server genera un evento END CONVERSATION quando Motore di database esegue un'istruzione END CONVERSATION che non include la clausola WITH ERROR.

3

END CONVERSATION WITH ERROR

SQL Server genera un evento END CONVERSATION WITH ERROR quando Motore di database esegue un'istruzione END CONVERSATION che include la clausola WITH ERROR.

4

Broker Initiated Error

SQL Server genera un evento Broker Initiated Error ogni volta che Service Broker crea un messaggio di errore. Ad esempio, quando Service Broker non è in grado di eseguire correttamente il routing di un messaggio per un dialogo, crea un messaggio di errore per il dialogo e genera questo evento. SQL Server non genera l'evento quando un'applicazione termina una conversazione con un errore.

5

Terminate Dialog

Service Broker ha terminato il dialogo. Service Broker termina i dialoghi quando si verificano condizioni che ne impediscono la continuazione diverse da errori o dalla normale fine di una conversazione. Ad esempio, l'eliminazione di un servizio provoca la terminazione di tutti i dialoghi del servizio da parte di Service Broker.

6

Received Sequenced Message

SQL Server genera una classe di evento Received Sequenced Message quando riceve un messaggio contenente un numero di sequenza messaggio. Tutti i tipi di messaggio definiti dall'utente sono messaggi in sequenza. Service Broker genera un messaggio non in sequenza in due casi:

  • I messaggi di errore generati da Service Broker non sono in sequenza.

  • È possibile che gli acknowledgement dei messaggi siano non in sequenza. Per motivi di efficienza, Service Broker include qualsiasi acknowledgement disponibile come parte di un messaggio in sequenza. Se tuttavia un'applicazione non invia un messaggio in sequenza all'endpoint remoto entro un determinato periodo di tempo, Service Broker crea un messaggio non in sequenza per l'acknowledgement del messaggio.

7

Received END CONVERSATION

SQL Server genera un evento Received END CONVERSATION quando riceve un messaggio di fine dialogo dall'altro lato della conversazione.

8

Received END CONVERSATION WITH ERROR

SQL Server genera un evento Received END CONVERSATION WITH ERROR quando SQL Server riceve un errore definito dall'utente dall'altro lato della conversazione. SQL Server non genera questo evento quando SQL Server riceve un errore definito da Service Broker.

9

Received Broker Error Message

SQL Server genera un evento Received Broker Error Message quando Service Broker riceve dall'altro lato della conversazione un messaggio di errore definito da Service Broker. SQL Server non genera l'evento quando Service Broker riceve un messaggio generato da un'applicazione.

Ad esempio, se il database corrente contiene una route predefinita per un database di inoltro, Service Broker esegue il routing di un messaggio con un nome di servizio sconosciuto al database di inoltro. Se il database di inoltro non è in grado di eseguire il routing del messaggio, l'istanza di Service Broker di quel database crea un messaggio di errore e lo restituisce al database corrente. Quando il database corrente riceve il messaggio generato da Service Broker dal database di inoltro, genera un evento Received Broker Error Message.

10

Received END CONVERSATION Ack

SQL Server genera una classe di evento Received END CONVERSATION Ack quando l'altro lato della conversazione invia un acknowledgment per un messaggio di fine dialogo o di errore inviato dal lato locale della conversazione.

11

BEGIN DIALOG

SQL Server genera un evento BEGIN DIALOG quando il Motore di database esegue un'istruzione BEGIN DIALOG.

12

Dialog Created

SQL Server genera un evento Dialog Created quando Service Broker crea un endpoint per una finestra di dialogo. Service Broker crea un endpoint ogni qualvolta una nuova finestra di dialogo viene stabilita, indipendentemente dal fatto che il database corrente sia l'initiator o la destinazione della finestra di dialogo.

13

END CONVERSATION WITH CLEANUP

SQL Server genera un evento END CONVERSATION WITH CLEANUP quando Motore di database esegue un'istruzione END CONVERSATION che include la clausola WITH CLEANUP.