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。如果在跟踪中捕获到 Server Name 数据列并且服务器可用,则 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 |
否 |
Priority |
int |
会话的优先级 |
5 |
是 |
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 事件。 |