Partager via


Classe d'événements Broker:Conversation

SQL Server génère un événement Broker:Conversation pour indiquer la progression d'une conversation Service Broker.

Colonnes de données de la classe d'événements Broker:Conversation

Colonne de données

Type

Description

Numéro de colonne

Filtrable

ApplicationName

nvarchar

Nom de l'application cliente qui a créé la connexion à une instance de SQL Server. Cette colonne contient des valeurs transmises par l'application à la place du nom affiché du programme.

10

Oui

ClientProcessID

int

ID affecté par l'ordinateur hôte au processus dans lequel s'exécute l'application cliente. Cette colonne de données est remplie si l'ID du processus client est fourni par le client.

9

Oui

DatabaseID

int

ID de la base de données spécifiée par l'instruction USE database. Si aucune instruction USE databasen'a été spécifiée, ID de la base de données par défaut. Le SQL Server Profiler affiche le nom de la base de données si la colonne de données Nom du serveur est capturée dans la trace et que le serveur est disponible. Déterminez la valeur pour une base de données à l'aide de la fonction DB_ID.

3

Oui

EventClass

int

Type de classe d'événements capturée. La valeur est toujours 124 pour Broker:Conversation.

27

Non

EventSequence

int

Numéro de séquence de cet événement.

51

Non

EventSubClass

nvarchar

Type de sous-classe d'événements. Cela fournit plus d'informations sur chaque classe d'événements.

21

Oui

GUID

uniqueidentifier

ID de conversation du dialogue. Cet identificateur est transmis en tant que partie intégrante du message et est partagé par les deux intervenants de la conversation.

54

Non

HostName

nvarchar

Nom de l'ordinateur sur lequel le client est exécuté. Cette colonne de données est remplie si le nom d'hôte est fourni par le client. Pour déterminer le nom d'hôte, utilisez la fonction HOST_NAME.

8

Oui

IsSystem

int

Indique si l'événement s'est produit sur un processus système ou sur un processus utilisateur.

0 = utilisateur

1 = système

60

Non

LoginSid

image

Numéro d'identification de sécurité (SID) de l'utilisateur connecté. Chaque connexion possède un SID unique au niveau du serveur.

41

Oui

MethodName

nvarchar

Groupe de conversations auquel la conversation appartient.

47

Non

NTDomainName

nvarchar

Domaine Windows auquel appartient l'utilisateur.

7

Oui

NTUserName

nvarchar

Nom de l'utilisateur propriétaire de la connexion ayant généré l'événement.

6

Oui

ObjectName

nvarchar

Descripteur de conversation du dialogue.

34

Non

Priority

int

Niveau de priorité de la conversation.

5

Oui

RoleName

nvarchar

Rôle du descripteur de conversation. Il peut prendre la valeur initiator ou la valeur target.

38

Non

ServerName

nvarchar

Nom de l'instance SQL Server tracée.

26

Non

Severity

int

Gravité de l'erreur SQL Server éventuellement indiquée par cet événement.

29

Non

SPID

int

ID de processus serveur qui est affecté par SQL Server au processus associé au client.

12

Oui

StartTime

datetime

Heure de début de l'événement, si disponible.

14

Oui

TextData

ntext

État actuel de la conversation. Un des types suivants :

  • SO. Démarrée en sortie. SQL Server a traité une instruction BEGIN CONVERSATION pour cette conversation, mais aucun message n'a été envoyé.

  • SI. Démarré en entrée. Une autre instance du moteur de base de données a démarré une nouvelle conversation avec l'instance actuelle, mais l'instance actuelle n'a pas fini de recevoir le premier message. SQL Server peut créer la conversation dans cet état si le premier message est fragmenté ou si SQL Server reçoit les messages dans le désordre. Toutefois, SQL Server peut créer la conversation dans l'état CO si la première transmission reçue pour cette conversation contient la totalité du premier message.

  • CO. Conversation en cours. La conversation est établie et ses deux parties peuvent envoyer des messages. L'essentiel de la communication pour un service classique a lieu lorsque la conversation se trouve dans cet état.

  • DI. Déconnecté en entrée. La partie distante de la conversation a émis une instruction END CONVERSATION. La conversation demeure dans cet état jusqu'à ce que la partie locale de la conversation émette une instruction END CONVERSATION. Une application peut encore recevoir des messages pour la conversation. Dans la mesure où la partie distante de la conversation a terminé celle-ci, une application ne peut pas envoyer de messages sur cette conversation. Lorsqu'une application émet une instruction END CONVERSATION, la conversation passe à l'état CD (fermée).

  • DO. Déconnecté en sortie. La partie locale de la conversation a émis une instruction END CONVERSATION. La conversation reste dans cet état jusqu'à ce que le côté distant accuse réception de la commande END CONVERSATION. Une application ne peut pas envoyer ou recevoir des messages pour la conversation. Lorsque la partie distante de la conversation accuse réception de l'instruction END CONVERSATION, la conversation passe en état CD (fermée).

  • ER. Erreur. Une erreur s'est produite sur ce point de terminaison. Les colonnes Error, Severity et State contiennent des informations sur l'erreur spécifique qui s'est produite.

  • CD. Fermé. Le point de terminaison de la conversation n'est plus en cours d'utilisation.

1

Oui

Transaction ID

bigint

ID affecté à la transaction par le système.

4

Non

Le tableau ci-dessous répertorie les valeurs des sous-classes pour cette classe d'événements.

ID

Sous-classe

Description

1

SEND Message

SQL Server génère un événement SEND Message lorsque le moteur de base de données exécute une instruction SEND.

2

END CONVERSATION

SQL Server génère un événement END CONVERSATION lorsque le moteur de base de données exécute une instruction END CONVERSATION qui ne comporte pas la clause WITH ERROR.

3

END CONVERSATION WITH ERROR

SQL Server génère un événement END CONVERSATION WITH ERROR lorsque le moteur de base de données exécute une instruction END CONVERSATION qui comporte la clause WITH ERROR.

4

Broker Initiated Error

SQL Server génère un événement Broker Initiated Error chaque fois que Service Broker crée un message d'erreur. Par exemple, lorsque Service Broker ne parvient pas à acheminer un message pour un dialogue, il crée un message d'erreur pour celui-ci et génère cet événement. SQL Server ne génère pas cet événement lorsqu'une application termine une conversation par une erreur.

5

Terminate Dialog

Service Broker a mis fin au dialogue. Service Broker agit ainsi en réponse à des conditions qui empêchent la poursuite du dialogue mais qui ne correspondent ni à des erreurs ni à la fin normale d'une conversation. Par exemple, la suppression d'un service amène Service Broker à mettre fin à tous les dialogues associés à ce service.

6

Received Sequenced Message

SQL Server génère une classe d'événements Received Sequenced Message lorsqu'il reçoit un message qui contient un numéro de séquence de message. Tous les types de messages définis par l'utilisateur sont des messages séquencés. Service Broker génère un message non séquencé dans deux cas :

  • Les messages d'erreur générés par Service Broker ne sont pas séquencés.

  • Les accusés de réception des messages peuvent être non séquencés. Par souci d'efficacité, Service Broker inclut tout accusé de réception disponible d'un message dans le cadre d'un message séquencé. Toutefois, si une application n'envoie pas un message séquencé au point de terminaison distant pendant un certain temps, Service Broker crée un message non séquencé pour l'accusé de réception du message.

7

Received END CONVERSATION

SQL Server génère un événement Received END CONVERSATION lorsqu'il reçoit un message End Dialog de l'autre partie de la conversation.

8

Received END CONVERSATION WITH ERROR

SQL Server génère un événement Received END CONVERSATION WITH ERROR lorsque SQL Server reçoit une erreur définie par l'utilisateur provenant de l'autre côté de la conversation. SQL Server ne génère pas cet événement lorsque SQL Server reçoit une erreur définie par le Broker.

9

Received Broker Error Message

SQL Server génère un événement Received Broker Error Message lorsque Service Broker reçoit un message d'erreur défini par le Broker provenant de l'autre côté de la conversation. SQL Server ne génère pas cet événement lorsque Service Broker reçoit un message d'erreur généré par une application.

Par exemple, si la base de données actuelle contient un itinéraire par défaut vers une base de données de transfert, Service Broker achemine un message avec un nom de service inconnu vers la base de données de transfert. Si celle-ci ne peut pas acheminer le message, le Broker qu'elle contient crée un message d'erreur et le renvoie à la base de données active. Lorsque la base de données active reçoit l'erreur générée par le Broker en provenance de la base de données de transfert, elle génère un événement Received Broker Error Message.

10

Received END CONVERSATION Ack

SQL Server génère une classe d'événements Received END CONVERSATION Ack lorsque l'autre partie d'une conversation accuse réception d'un message End Dialog ou Error envoyé par cette partie de la conversation.

11

BEGIN DIALOG

SQL Server génère un événement BEGIN DIALOG lorsque le moteur de base de données exécute une commande BEGIN DIALOG.

12

Dialog Created

SQL Server génère un événement Dialog Created lorsque Service Broker crée un point de terminaison pour un dialogue. Service Broker crée un point de terminaison toutes les fois qu'un nouveau dialogue est établi, que la base de données actuelle soit l'initiateur ou la cible du dialogue.

13

END CONVERSATION WITH CLEANUP

SQL Server génère un événement END CONVERSATION WITH CLEANUP lorsque le moteur de base de données exécute une instruction END CONVERSATION qui comporte la clause WITH CLEANUP.

Voir aussi

Concepts

SQL Server Service Broker