Broker:Conversation 事件類別

SQL Server會產生Broker:Conversation事件來報告 Service Broker 交談的進度。

Broker:Conversation 事件類別資料行

資料行 類型 描述 資料行編號 可篩選
ApplicationName nvarchar 與 SQL Server 執行個體建立連線的用戶端應用程式名稱。 這個資料行會填入應用程式所傳送的值,而非程式的顯示名稱。 10
ClientProcessID int 主機電腦指派給用戶端應用程式執行中處理序的識別碼。 如果用戶端提供處理序識別碼,這個資料行就會擴展。 9
DatabaseID int USE database 陳述式指定之資料庫的識別碼。 如果未發出 USE database陳述式,則為預設資料庫的識別碼。 如果在追蹤中擷取到 ServerName 資料行且伺服器可用,SQL Server Profiler 便會顯示資料庫的名稱。 請使用 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 No
NTDomainName nvarchar 使用者所隸屬的 Windows 網域。 7
NTUserName nvarchar 擁有產生此事件之連接的使用者名稱。 6
ObjectName nvarchar 對話的交談控制代碼。 34
優先順序 int 交談的優先權等級。 5
RoleName nvarchar 交談控制代碼的角色。 為 initiatortarget其中一個角色。 38
ServerName nvarchar 被追蹤的 SQL Server 執行個體名稱。 26
嚴重性 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可能會建立 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 WITH ERROR事件。
4 Broker Initiated Error 每當 Service Broker 建立錯誤訊息時,SQL Server會產生Broker 起始的錯誤事件。 例如,當 Service Broker 無法成功路由對話方塊的訊息時,訊息代理程式會為對話方塊建立錯誤訊息,並產生此事件。 當應用程式程式結束交談時,SQL Server不會產生這個事件,併發生錯誤。
5 Terminate Dialog Service Broker 已終止對話方塊。 Service Broker 會終止對話,以回應防止對話繼續但不是錯誤或交談正常結束的條件。 例如,卸載服務會導致 Service Broker 終止該服務的所有對話方塊。
6 Received Sequenced Message 當SQL Server收到包含訊息序號的訊息時,SQL Server會產生「已接收的循序訊息」事件類別。 所有使用者定義的訊息類型都是循序訊息。 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收到代理程式定義的錯誤時,SQL Server不會產生此事件。
9 Received Broker Error Message 當 Service Broker 從交談的另一端收到訊息代理程式定義的錯誤訊息時,SQL Server會產生Received Broker 錯誤訊息事件。 當 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 事件。

另請參閱

SQL Server Service Broker