Поделиться через


Класс событий 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

Нет

RoleName

nvarchar

Роль дескриптора диалога. Значением может быть либо создатель, либо получатель.

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. Запущен на прием. Другой экземпляр начал новый диалог с SQL Server, но SQL Server пока неполностью принял первое сообщение. 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. Ошибка. В данной конечной точке произошла ошибка. Столбцы «Ошибка», «Серьезность» и «Состояние» содержат подробные данные о возникшей ошибке.
  • CD. Закрыт. Конечная точка диалога больше не используется.

1

Да

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

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, когда 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.

См. также

Другие ресурсы

Знакомство с компонентом Service Broker
Архитектура диалога

Справка и поддержка

Получение помощи по SQL Server 2005