Broker:Conversation 事件类

适用于:SQL ServerAzure SQL 托管实例

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。 SQL Server Profiler 数据列而且服务器可用,则 ServerName 将显示数据库名。 可使用 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 图像 已登录用户的安全标识号 (SID)。 服务器中的每个登录名都具有唯一的 SID。 41
MethodName nvarchar 会话所属的会话组。 47
NTDomainName nvarchar 用户所属的 Windows 域。 7
NTUserName nvarchar 拥有生成此事件的连接的用户的名称。 6
ObjectName nvarchar 对话的会话句柄。 34
Priority int 会话的优先级 5
RoleName nvarchar 会话句柄的角色。 这可以是 initiatortarget 38
ServerName nvarchar 正在跟踪的 SQL Server 实例的名称。 26
严重性 int 在此事件报告错误时表示 SQL Server 错误的严重级别。 29
SPID int SQL Server 为客户端所关联的进程分配的服务器进程 ID。 12
StartTime datetime 该事件的启动时间(如果可用)。 14
TextData ntext 会话的当前状态。 可以是下列值之一: 1
SO。 已开始出站。 SQL Server 已处理了此会话的 BEGIN CONVERSATION,但尚未发送消息。
SI。 已开始入站。 另一个 数据库引擎 实例开始了与当前实例的新会话,但当前实例尚未完成第一条消息的接收工作。 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。 已关闭。 会话端点不再使用。
Transaction ID bigint 系统为事务分配的 ID。 4

下表列出了此事件类的子类值。

ID 子类 说明
1 SEND Message SQL Server 生成 SEND Message SEND Message 数据库引擎 事件。
2 END CONVERSATION SQL Server 执行不包含 WITH ERROR 子句的 END CONVERSATION 语句时 END CONVERSATION SEND Message 数据库引擎 事件。
3 END CONVERSATION WITH ERROR SQL Server 执行不包含 WITH ERROR 子句的 END CONVERSATION 语句时 END CONVERSATION WITH ERROR SEND Message 数据库引擎 事件。
4 Broker Initiated Error SQL Server 生成 Broker Initiated Error 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 Received Sequenced Message SQL Server 事件类。 所有用户定义的消息类型都是已编序的消息。 Service Broker 会在两种情况下生成未编序的消息:

Service Broker 生成的错误消息是未编序的。

消息确认可能是未编序的。 为提高效率, Service Broker 会在已编序的消息中包含任何可用的消息确认。 不过,如果应用程序没有在特定时间段内将已编序的消息发送到远程端点, Service Broker 将为消息确认创建一个未编序的消息。
7 Received END CONVERSATION SQL Server 从会话的另一端收到 End Dialog 消息时 SQL Server 生成 Received END CONVERSATION 事件。
8 Received END CONVERSATION WITH ERROR SQL Server 当 从会话的另一端收到用户定义的错误时,将生成 Received END CONVERSATION WITH ERROR SQL Server 事件。 SQL Server 当 SQL Server 收到 Broker 定义的错误时,不会生成此事件。
9 Received Broker Error Message SQL Server 当 从会话的另一端收到 Broker 定义的错误消息时,将生成 Received Broker Error Message Service Broker 事件。 SQL Server 收到 Broker 定义的错误时, Service Broker 不会生成此事件。

例如,如果当前数据库包含一个指向转发数据库的默认路由,则 Service Broker 将把包含未知服务名称的消息发送到转发数据库。 如果该数据库不能发送此消息,则该数据库中的 Broker 将创建一个错误消息并将该错误消息返回到当前数据库。 当前数据库从转发数据库收到 Broker 生成的错误后,将生成 Received Broker Error Message 事件。
10 Received END CONVERSATION Ack SQL Server 生成 Received END CONVERSATION Ack 事件类。
11 BEGIN DIALOG SQL Server 生成 BEGIN DIALOG 事件。
12 Dialog Created SQL Server 生成 Dialog Created Received END CONVERSATION WITH ERROR Service Broker 事件。 Service Broker 都将创建一个端点,而不管当前数据库是对话的发起方还是对话的目标。
13 END CONVERSATION WITH CLEANUP SQL Server 执行包含 WITH CLEANUP 子句的 END CONVERSATION 语句时 数据库引擎 生成 END CONVERSATION WITH CLEANUP 事件。

另请参阅

SQL Server Service Broker