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 anziché con il 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 oppure ID del database predefinito se non è stata eseguita l'istruzione USE databaseper una determinata istanza. 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, che offre informazioni aggiuntive su ogni classe di evento.

21

GUID

uniqueidentifier

ID di conversazione del dialogo. 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

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 possibili valori sono i seguenti:

  • SO. Avviata in uscita (Started outbound). SQL Server ha elaborato un'istruzione BEGIN CONVERSATION per la conversazione, ma non sono ancora stati inviati messaggi.
  • SI. Avviata in ingresso (Started inbound). Un'altra istanza ha avviato una nuova conversazione con SQL Server, ma SQL Server non ha ancora completato la ricezione del primo messaggio. SQL Server può creare una conversazione con questo stato se il primo messaggio è frammentato oppure se SQL Server riceve messaggi non in ordine. SQL Server può tuttavia creare la conversazione nello stato CO se la prima trasmissione ricevuta per la conversazione contiene l'intero primo messaggio.
  • 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 hanno 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 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 CD.
  • ER. Errore. In questo endpoint si è verificato un errore. Le colonne Error, Severity e State contengono informazioni sullo specifico errore 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 di sottoclasse per 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.

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 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, quando è possibile Service Broker include gli acknowledgement dei messaggi 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 riceve un errore definito dall'utente dall'altro lato della conversazione. Si noti che l'evento non viene generato quando SQL Server riceve un messaggio 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 un dialogo. Si noti che Service Broker crea un endpoint ogni volta che viene stabilito un nuovo dialogo, indipendentemente dal fatto che il database corrente sia initiator o destinazione della conversazione.

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.

Vedere anche

Altre risorse

Introduzione a Service Broker
Architettura delle conversazioni

Guida in linea e informazioni

Assistenza su SQL Server 2005