Broker:Conversation 事件类
SQL Server 生成 Broker:Conversation 事件来报告 Service Broker 会话的进度。
Broker:Conversation 事件类的数据列
数据列 | 类型 | 说明 | 列号 | 可筛选 |
---|---|---|---|---|
ApplicationName |
nvarchar |
与 SQL Server 实例建立连接的客户端应用程序的名称。此列由应用程序传递的值填充,而不是由所显示的程序名填充。 |
10 |
是 |
ClientProcessID |
int |
由主机分配给正在运行客户端应用程序的进程的 ID。如果客户端提供了客户端进程 ID,则填充此数据列。 |
9 |
是 |
DatabaseID |
int |
USE database 语句所指定的数据库的 ID;或者,如果没有为给定的实例发出 USE database语句,则为默认数据库的 ID。如果在跟踪中捕获到 ServerName 数据列并且服务器可用,则 SQL Server Profiler将显示数据库的名称。若要确定数据库的值,请使用 DB_ID 函数。 |
3 |
是 |
EventClass |
int |
捕获的事件类的类型。对于 Broker:Conversation,始终为 124。 |
27 |
否 |
EventSequence |
int |
此事件的序列号。 |
51 |
否 |
EventSubClass |
nvarchar |
事件子类的类型,提供有关每个事件类的更多信息。 |
21 |
是 |
GUID |
uniqueidentifier |
对话的会话 ID。此标识符将作为消息的一部分进行传输,并在会话双方之间共享。 |
54 |
否 |
HostName |
nvarchar |
正在运行客户端程序的计算机的名称。如果客户端提供了主机名,则填充此数据列。若要确定主机名,请使用 HOST_NAME 函数。 |
8 |
是 |
IsSystem |
int |
指示事件是发生在系统进程还是发生在用户进程。 0 = 用户 1 = 系统 |
60 |
否 |
LoginSid |
image |
已登录用户的安全标识号 (SID)。服务器中的每个登录名都具有唯一的 SID。 |
41 |
是 |
MethodName |
nvarchar |
会话所属的会话组。 |
47 |
否 |
NTDomainName |
nvarchar |
用户所属的 Windows 域。 |
7 |
是 |
NTUserName |
nvarchar |
拥有生成此事件的连接的用户的名称。 |
6 |
是 |
ObjectName |
nvarchar |
对话的会话句柄。 |
34 |
否 |
RoleName |
nvarchar |
会话句柄的角色。这可以是 initiator 或 target。 |
38 |
否 |
ServerName |
nvarchar |
所跟踪的 SQL Server 实例的名称。 |
26 |
否 |
Severity |
int |
在此事件报告错误时表示 SQL Server 错误的严重级别。 |
29 |
否 |
SPID |
int |
SQL Server 为客户端所关联的进程分配的服务器进程 ID。 |
12 |
是 |
StartTime |
datetime |
事件(如果有的话)的开始时间。 |
14 |
是 |
TextData |
ntext |
会话的当前状态。以下值之一:
|
1 |
是 |
Transaction ID |
bigint |
系统为事务分配的 ID。 |
4 |
否 |
下表列出了此事件类的子类值。
ID | 子类 | 说明 |
---|---|---|
1 |
SEND Message |
当数据库引擎执行 SEND 语句时 SQL Server 生成 SEND Message 事件。 |
2 |
END CONVERSATION |
当数据库引擎执行不包含 WITH ERROR 子句的 END CONVERSATION 语句时 SQL Server 生成 END CONVERSATION 事件。 |
3 |
END CONVERSATION WITH ERROR |
当数据库引擎执行包含 WITH ERROR 子句的 END CONVERSATION 语句时 SQL Server 生成 END CONVERSATION WITH ERROR 事件。 |
4 |
Broker Initiated Error |
每当 Service Broker 创建错误消息时 SQL Server 就会生成 Broker Initiated Error 事件。例如,当 Service Broker 无法成功为对话发送消息时,将为该对话创建错误消息并生成此事件。当应用程序因错误而结束会话时 SQL Server 不生成此事件。 |
5 |
Terminate Dialog |
Service Broker 已终止对话。Service Broker 响应阻止对话继续的条件而终止对话,而不是会话错误或会话正常结束。例如,删除一个服务将导致 Service Broker 终止该服务的所有对话。 |
6 |
Received Sequenced Message |
当 SQL Server 收到包含消息序列号的消息时 SQL Server 生成 Received Sequenced Message 事件类。所有用户定义消息类型都是已编序的消息。Service Broker 在下列两种情况下生成未编序的消息:
|
7 |
Received END CONVERSATION |
当 SQL Server 从会话的另一端收到 End Dialog 消息时 SQL Server 生成 Received END CONVERSATION 事件。 |
8 |
Received END CONVERSATION WITH ERROR |
当 SQL Server 从会话的另一端收到用户定义错误时 SQL Server 生成 Received END CONVERSATION WITH ERROR 事件。注意,当 SQL Server 收到 Broker 定义的错误时 SQL Server 不生成此事件。 |
9 |
Received Broker Error Message |
当 Service Broker 从会话的另一端收到 Broker 定义的错误消息时 SQL Server 生成 Received Broker Error Message 事件。当 Service Broker 收到应用程序生成的错误消息时 SQL Server 不生成此事件。 例如,如果当前数据库包含一个指向转发数据库的默认路由,则 Service Broker 将把包含未知服务名称的消息发送到转发数据库。如果该数据库不能发送此消息,则该数据库中的 Broker 将创建一个错误消息并将该错误消息返回到当前数据库。当前数据库从转发数据库收到 Broker 生成的错误后,将生成 Received Broker Error Message 事件。 |
10 |
Received END CONVERSATION Ack |
当会话另一端确认会话这一端已发送 End Dialog 消息或错误消息时 SQL Server 生成 Received END CONVERSATION Ack 事件类。 |
11 |
BEGIN DIALOG |
当数据库引擎执行 BEGIN DIALOG 命令时 SQL Server 生成 BEGIN DIALOG 事件。 |
12 |
Dialog Created |
当 Service Broker 为对话创建端点时 SQL Server 生成 Dialog Created 事件。注意,每当建立新对话时,Service Broker 都将创建一个端点,而不管当前数据库是对话的发起方还是对话的目标。 |
13 |
END CONVERSATION WITH CLEANUP |
当数据库引擎执行包含 WITH CLEANUP 子句的 END CONVERSATION 语句时 SQL Server 生成 END CONVERSATION WITH CLEANUP 事件。 |