Класс событий Broker:Conversation

SQL Server формирует событие Broker:Conversation, чтобы сообщать о ходе диалога компонента Service Broker.

Столбцы данных класса событий Broker:Conversation

Столбец данных

Тип

Описание

Номер столбца

Фильтруемый

ApplicationName

nvarchar

Имя клиентского приложения, установившего соединение с экземпляром SQL Server. Этот столбец заполняется значениями, передаваемыми приложением, а не отображаемым именем программы.

10

Да

ClientProcessID

int

Идентификатор, присвоенный сервером процессу, в котором работает клиентское приложение. Этот столбец данных заполняется в том случае, если клиент предоставляет идентификатор клиентского процесса.

9

Да

DatabaseID

int

Идентификатор базы данных, указанный в инструкции USE database. Идентификатор базы данных, указанный в том случае, если инструкция USE databaseне выполнялась. Приложение Приложение SQL Server Profiler отображает имя базы данных, если столбец Server Name захвачен при трассировке и сервер доступен. Определите значение для базы данных, используя функцию DB_ID.

3

Да

EventClass

int

Тип зафиксированного класса событий. Всегда 124 для класса событий Broker:Conversation.

27

Нет

EventSequence

int

Порядковый номер для этого события.

51

Нет

EventSubClass

nvarchar

Тип подкласса события. Предоставляет дополнительные сведения о каждом классе событий.

21

Да

GUID

uniqueidentifier

Идентификатор диалога. Этот идентификатор передается как часть сообщения и является общим для обоих участников диалога.

54

Нет

HostName

nvarchar

Имя компьютера, на котором выполняется клиентская программа. Заполнение этого столбца данных производится в случае, если клиент предоставляет имя узла. Чтобы определить имя узла, используйте функцию HOST_NAME.

8

Да

IsSystem

int

Указывает, произошло событие в системном или в пользовательском процессе.

0 = пользовательский процесс

1 = системный процесс

60

Нет

LoginSid

image

Идентификатор безопасности вошедшего в систему пользователя. Значение идентификатора безопасности уникально для каждого имени входа на сервере.

41

Да

MethodName

nvarchar

Группа сообщений, которой принадлежит диалог.

47

Нет

NTDomainName

nvarchar

Домен Windows, к которому принадлежит пользователь.

7

Да

NTUserName

nvarchar

Имя пользователя, которому принадлежит соединение, создавшее это событие.

6

Да

ObjectName

nvarchar

Дескриптор диалога.

34

Нет

Priority

int

Уровень приоритета диалога

5

Да

RoleName

nvarchar

Роль дескриптора диалога. Это либо initiator, либо target.

38

Нет

ServerName

nvarchar

Имя отслеживаемого экземпляра SQL Server.

26

Нет

Severity

int

Уровень серьезности ошибки SQL Server, если это событие сообщает об ошибке.

29

Нет

SPID

int

Идентификатор серверного процесса, который SQL Server присвоил процессу, связанному с клиентом.

12

Да

StartTime

datetime

Время начала события, если оно доступно.

14

Да

TextData

ntext

Текущее состояние диалога. Одно из следующих:

  • SO. Запущен на отправку. SQL Server обработал инструкцию BEGIN CONVERSATION для этого диалога, но не было отправлено ни одного сообщения.

  • SI. Запущен на прием. Другой экземпляр компонента Компонент Database Engine начал новый диалог с текущим экземпляром, но текущий экземпляр еще не завершил прием первого сообщения. SQL Server может создать диалог в этом состоянии в том случае, если первая передача фрагментирована или SQL Server получает сообщения с нарушением порядка следования. Однако SQL Server может создать диалог сразу в состоянии CO, если первая передача, полученная для диалога, содержит первое сообщение целиком.

  • CO. Ведение диалога. Диалог установлен, и обе стороны диалога могут посылать сообщения. Для обычной службы основная часть обмена данными происходит, когда диалог находится в этом состоянии.

  • DI. Отключен на прием. Удаленной стороной диалога была выполнена инструкция END CONVERSATION. Диалог остается в этом состоянии до тех пор, пока локальная сторона диалога не выполнит инструкцию END CONVERSATION. Приложение может продолжать получать сообщения для диалога. Поскольку удаленная сторона диалога закончила диалог, приложение не может отправлять сообщения в этом диалоге. Когда приложение выполняет инструкцию END CONVERSATION, диалог переходит в закрытое (CD) состояние.

  • DO. Отключен на отправку. Локальной стороной диалога была выполнена инструкция END CONVERSATION. Состояние диалога остается неизменным до тех пор, пока удаленная часть диалога не подтвердит сообщение END CONVERSATION. Приложение не может отправлять и получать сообщения для диалога. Когда удаленная сторона диалога подтверждает END CONVERSATION, диалог переходит в закрытое (CD) состояние.

  • ER. Ошибка. В данной конечной точке произошла ошибка. Столбцы Error, Severity и State содержат подробные данные о возникшей ошибке.

  • CD. Закрыт. Конечная точка диалога больше не используется.

1

Да

Transaction ID

bigint

Назначенный системой идентификатор транзакции.

4

Нет

В представленной ниже таблице перечислены значения подклассов для данного класса событий.

Идентификатор

Подкласс

Описание

1

SEND Message

SQL Server формирует событие SEND Message, когда Компонент Database Engine выполняет инструкцию SEND.

2

END CONVERSATION

SQL Server формирует событие END CONVERSATION, когда Компонент Database Engine выполняет инструкцию END CONVERSATION, в которую не входит предложение WITH ERROR.

3

END CONVERSATION WITH ERROR

SQL Server формирует событие END CONVERSATION WITH ERROR, когда Компонент Database Engine выполняет инструкцию END CONVERSATION, в которую входит предложение WITH ERROR.

4

Broker Initiated Error

SQL Server формирует событие Broker Initiated Error всякий раз, когда компонент Компонент Service Broker создает сообщение об ошибке. Например, если компонент Компонент Service Broker не может успешно направить сообщение для диалога, то создает сообщение об ошибке для диалога и формирует это событие. SQL Server не создает это событие, если прикладная программа завершает диалог с ошибкой.

5

Terminate Dialog

Компонент Компонент Service Broker прекратил диалог. Компонент Компонент Service Broker прекращает диалоги в ответ на появление условий, не позволяющих продолжить диалог, но не являющихся ошибками или нормальным завершением диалога. Например, в случае удаления службы компонент Компонент Service Broker прерывает все диалоги для этой службы.

6

Received Sequenced Message

SQL Server создает класс событий Received Sequenced Message, когда SQL Server получает сообщение, содержащее порядковый номер сообщения. Все определяемые пользователем типы сообщений являются последовательными. Компонент Компонент Service Broker формирует сообщение с нарушением порядка следования в двух случаях.

  • Сообщения об ошибках, формируемых компонентом Компонент Service Broker, являются непоследовательными.

  • Подтверждения сообщений могут быть непоследовательными. Чтобы повысить эффективность, компонент Компонент Service Broker включает подтверждения сообщений в состав последовательного сообщения. Однако, если приложение не посылает последовательные сообщения в удаленную конечную точку в течение определенного периода времени, компонент Компонент Service Broker создает непоследовательное сообщение для подтверждения сообщения.

7

Received END CONVERSATION

SQL Server создает событие «Received END CONVERSATION», когда SQL Server получает сообщение «End Dialog» от другой стороны диалога.

8

Received END CONVERSATION WITH ERROR

SQL Server создает событие Received END CONVERSATION WITH ERROR, если SQL Server получает ошибку, определяемую пользователем, от другой стороны диалога. SQL Server не создает это событие, если SQL Server получает сообщение об определяемой посредником ошибке.

9

Received Broker Error Message

Компонент SQL Server создает событие Received Broker Error Message, когда компонент Компонент Service Broker получает сообщение об определяемой посредником ошибке от другой стороны диалога. SQL Server не создает этого события, если компонент Компонент Service Broker получает сообщение об ошибке, формируемое приложением.

Например, если текущая база данных содержит маршрут по умолчанию к базе данных пересылки, компонент Компонент Service Broker направляет сообщение с неизвестным именем службы в базу данных пересылки. Если база данных пересылки не может определить маршрут для сообщения, посредник в этой базе данных создает сообщение об ошибке и возвращает его в текущую базу данных. Если текущая база данных получает формируемое посредником сообщение об ошибке из базы данных пересылки, текущая база данных формирует событие Received Broker Error Message.

10

Received END CONVERSATION Ack

SQL Server формирует класс событий Received END CONVERSATION Ack, когда другая сторона диалога подтверждает сообщение «End Dialog» или «Error», переданное этой стороной диалога.

11

BEGIN DIALOG

SQL Server формирует событие BEGIN DIALOG, когда ядро СУБД выполняет команду BEGIN DIALOG.

12

Dialog Created

SQL Server создает событие Dialog Created, если компонент Компонент Service Broker создает конечную точку для диалога. Компонент Компонент Service Broker создает конечную точку каждый раз при установлении нового диалога, независимо от того, является текущая база данных инициатором или целью диалога.

13

END CONVERSATION WITH CLEANUP

SQL Server формирует событие END CONVERSATION WITH CLEANUP, когда Компонент Database Engine выполняет инструкцию END CONVERSATION, в которую входит предложение WITH CLEANUP.

См. также

Основные понятия

Компонент SQL Server Service Broker