Share via


Broker:Conversation 事件類別

適用於:SQL ServerAzure SQL 受控執行個體

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

Broker:Conversation 事件類別資料行

資料行 類型 描述 Column number 可篩選
ApplicationName nvarchar 與 SQL Server 執行個體建立連線的用戶端應用程式名稱。 此資料行會填入應用程式所傳遞的值,而不是程式顯示的名稱。 10 Yes
ClientProcessID int 主機電腦指派給用戶端應用程式執行中處理序的識別碼。 如果用戶端提供處理序識別碼,這個資料行就會擴展。 9 Yes
DatabaseID int USE 資料庫語句所指定的資料庫 識別碼。 如果未發出 USE database 語句,則預設資料庫的識別碼。 如果在追蹤中擷取到 ServerName 資料行且伺服器可用,SQL Server Profiler 便會顯示資料庫的名稱。 使用 DB_ID 函式來判斷資料庫的值。 3 Yes
EventClass int 擷取的事件類別類型。 Broker:Conversation 為 124 27 No
EventSequence int 此事件的序號。 51 No
EventSubClass nvarchar 事件子類別的類型。 這會提供有關每個事件類別的詳細資訊。 21 Yes
GUID uniqueidentifier 對話方塊的交談識別碼。 此識別碼會當做訊息的一部分傳輸,並在交談的兩端之間共用。 54 No
HostName nvarchar 執行用戶端的電腦名稱。 這個資料行會在用戶端提供主機名稱時填入。 若要判斷主機名稱,請使用 HOST_NAME 函式。 8 Yes
IsSystem int 指出事件發生在系統進程或使用者進程上。

0 = 使用者

1 = 系統
60 No
LoginSid image 已登入使用者的安全性識別碼(SID)。 每一個 SID 對於伺服器中的每個登入而言都是唯一的。 41 Yes
MethodName nvarchar 交談所屬的交談群組。 47 No
NTDomainName nvarchar 使用者所屬的 Windows 網域。 7 Yes
NTUserName nvarchar 擁有產生此事件之連線的使用者名稱。 6 Yes
ObjectName nvarchar 對話方塊的交談控制碼。 34 No
優先順序 int 交談的優先順序層級 5 Yes
RoleName nvarchar 交談控制碼的角色。 這是 啟動器 目標 38 No
ServerName nvarchar 被追蹤的 SQL Server 執行個體名稱。 26 No
嚴重性 int 如果此附隨報告錯誤,則為 SQL Server 錯誤嚴重性。 29 No
SPID int SQL Server 指派給與用戶端相關聯之進程的伺服器進程識別碼。 12 Yes
StartTime datetime 事件啟動的時間,可用時。 14 Yes
TextData ntext 交談的目前狀態。 可以有下列其中一個值: 1 Yes
所以 。 已啟動輸出。 SQL Server 已處理此交談的 BEGIN CONVERSATION,但尚未傳送任何訊息。
SI . 已啟動輸入。 Database Engine 的另一個實例已啟動與目前實例的新交談,但目前實例尚未完成接收第一則訊息。 如果第一則訊息分散,或 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。 此端點上發生錯誤。 [錯誤]、[嚴重性] 和 [狀態] 資料行包含所發生特定錯誤的相關資訊。
CD 。 關閉。 交談端點已不再使用中。
交易識別碼 bigint 系統指派的交易識別碼。 4 No

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

識別碼 子類別 描述
1 SEND 訊息 當 Database Engine 執行 SEND 語句時,SQL Server 會產生 SEND 訊息 事件。
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 起始的錯誤 每當 Service Broker 建立錯誤訊息時,SQL Server 就會 產生 Broker 起始的錯誤 事件。 例如,當 Service Broker 無法成功路由傳送對話方塊的訊息時,訊息代理程式會建立對話方塊的錯誤訊息,並產生此事件。 當應用程式程式結束交談併發生錯誤時,SQL Server 不會產生此事件。
5 終止對話方塊 Service Broker 終止了對話方塊。 Service Broker 會終止對話,以回應防止對話繼續但不是錯誤或交談正常結束的條件。 例如,卸載服務會導致 Service Broker 終止該服務的所有對話方塊。
6 已接收的循序訊息 當 SQL Server 收到包含訊息序號的訊息時,SQL Server 會產生 接收的循序 訊息事件類別。 所有使用者定義訊息類型都是循序訊息。 Service Broker 會在兩種情況下產生未佇列的訊息:

Service Broker 所產生的錯誤訊息會取消佇列。

訊息通知可能會取消佇列。 為了提高效率,Service Broker 會將任何可用的通知包含在循序訊息 的一部分。 不過,如果應用程式未在一段特定時間內將循序訊息傳送至遠端端點,Service Broker 會為訊息認可建立未排序的訊息。
7 已接收的 END CONVERSATION 當 SQL Server 從交談的另一端收到結束對話訊息時,SQL Server 會產生 Received END CONVERSATION 事件。
8 已收到 END CONVERSATION WITH ERROR 當 SQL Server 收到來自交談另一端的使用者定義錯誤時,SQL Server 會產生 Received END CONVERSATION WITH ERROR 事件。 當 SQL Server 收到訊息代理程式定義的錯誤時,SQL Server 不會產生這個事件。
9 接收的訊息代理程式錯誤訊息 當 Service Broker 從交談的另一端收到訊息代理程式定義的錯誤訊息時,SQL Server 會產生 Received Broker 錯誤 訊息事件。 當 Service Broker 收到應用程式所產生的錯誤訊息時,SQL Server 不會產生此事件。

例如,如果目前資料庫包含轉送資料庫的預設路由,Service Broker 會將具有未知服務名稱的訊息路由傳送至轉送資料庫。 如果該資料庫無法路由傳送訊息,該資料庫中的訊息代理程式會建立錯誤訊息,並將該錯誤訊息傳回至目前的資料庫。 當目前資料庫從轉送資料庫收到 Broker 產生的錯誤時,目前的資料庫會產生 Received Broker 錯誤訊息 事件。
10 已接收的 END CONVERSATION Ack 當交談的另一 端認可對話或交談這邊傳送的錯誤訊息時,SQL Server 會產生 Received END CONVERSATION Ack 事件類別。
11 BEGIN DIALOG 當 Database Engine 執行 BEGIN DIALOG 命令時,SQL Server 會產生 BEGIN DIALOG 事件。
12 建立對話方塊 當 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