Share via


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

擷取的事件類別類型。Broker:Conversation 永遠為 124

27

EventSequence

int

此事件的序號。

51

EventSubClass

nvarchar

事件子類別的類型,可為每個事件類別提供更詳細的資訊。

21

GUID

uniqueidentifier

對話的交談識別碼。此識別碼會當作訊息的一部份傳送,而且在兩端的交談之間共用。

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

交談控制代碼的角色。不是「起始端」就是「目標」

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

Transaction ID

bigint

系統指派的交易識別碼。

4

下表列出此事件類別的子類別值。

ID 子類別 描述

1

SEND Message

當 Database Engine 執行 SEND 陳述式時,SQL Server 就會產生 SEND Message 事件。

2

END CONVERSATION

當 Database Engine 執行未包括 WITH ERROR 子句的 END CONVERSATION 陳述式時,SQL Server 就會產生 END CONVERSATION 事件。

3

END CONVERSATION WITH ERROR

當 Database Engine 執行包括 WITH ERROR 子句的 END CONVERSATION 陳述式時,SQL Server 就會產生 END CONVERSATION 事件。

4

Broker Initiated Error

每當 Service Broker 建立錯誤訊息時,SQL Server 就會產生 Broker Initiated Error 事件。例如,當 Service Broker 未能成功地傳由對話的訊息時,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 在兩種情況下會產生非循序的訊息:

  • 由 Service Broker 產生的錯誤訊息即非循序。
  • 訊息收條可能為非循序。為了提高效率,Service Broker 會將訊息收條作為循序訊息的一部份併入任意處。但是,如果應用程式未能在某一段時間內,將循序訊息傳送到遠端,Service Broker 就會為訊息收條建立非循序訊息。

7

Received END CONVERSATION

當 SQL Server 收到交談另一端的「結束對話」訊息時,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

當交談另一端認可由交談這一端傳送的「結束對話」或「錯誤」訊息時,SQL Server 就會產生 Received END CONVERSATION Ack 事件類別。

11

BEGIN DIALOG

當 Database Engine 執行 BEGIN DIALOG 命令時,SQL Server 就會產生 BEGIN DIALOG 事件。

12

Dialog Created

當 Service Broker 為對話建立一個端點時,SQL Server 就會產生 Dialog Created 事件。請注意,每當建立新的對話時,Service Broker 就會建立一個端點,不論目前的資料庫是否為該對話的起始端或目標。

13

END CONVERSATION WITH CLEANUP

當 Database Engine 執行包括 WITH CLEANUP 子句的 END CONVERSATION 陳述式時,SQL Server 就會產生 END CONVERSATION WITH CLEANUP 事件。

請參閱

其他資源

Service Broker 簡介
交談架構

說明及資訊

取得 SQL Server 2005 協助