Broker:Conversation 事件類別
適用於:SQL Server Azure 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. 已啟動輸入。 另一個 資料庫引擎 實例開始與目前實例的新交談,但目前實例尚未完成第一則訊息。 如果第一則訊息分散,或 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 訊息 | 當 資料庫引擎 執行 SEND 語句時,SQL Server 會產生 SEND 訊息事件。 |
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 起始的錯誤 | 每當 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 | 當 資料庫引擎 執行 BEGIN DIALOG 命令時,SQL Server 會產生 BEGIN DIALOG 事件。 |
12 | 建立對話框 | 當 Service Broker 建立對話框的端點時,SQL Server 會產生 Dialog Created 事件。 不論目前資料庫是啟動器還是對話的目標,Service Broker 都會在建立新對話時建立端點。 |
13 | END CONVERSATION WITH CLEANUP | 當 資料庫引擎 執行包含WITH CLEANUP子句的END CONVERSATION語句時,SQL Server 會產生END CONVERSATION WITH CLEANUP 事件。 |