共用方式為


疑難排解工具 (Service Broker)

Service Broker 提供許多可診斷組態和交談問題的工具。

Service Broker 是 Database Engine 的元件。 因此,許多 Database Engine 工具也可用來診斷 Service Broker 問題。 如需詳細資訊,請參閱<疑難排解工具 (Database Engine)>。

ssbdiagnose 公用程式

ssbdiagnose 公用程式會分析 Service Broker 服務和執行中交談的組態,查看是否有錯誤。 您可以使用 ssbdiagnose 來進行下列作業:

  • 在新設定的 Service Broker 應用程式中,確認沒有任何組態錯誤。

  • 在您變更現有 Service Broker 應用程式的組態之後,確認沒有任何組態錯誤。

  • 在 Service Broker 資料庫卸離,然後重新附加至新的 Database Engine 執行個體之後,確認沒有任何組態錯誤。

  • 判斷哪些錯誤讓訊息無法順利在服務之間傳輸。

如需有關如何使用此公用程式的詳細資訊,請參閱<ssbdiagnose 公用程式>。

Service Broker 傳輸佇列

沒有順利傳輸至接收佇列的 Service Broker 訊息會保留在傳送資料庫的 Service Broker 傳輸佇列中。 您可以使用每個資料庫中的 sys.transmission_queue 系統檢視表來查看佇列中的訊息。 若為由於傳輸錯誤而位於佇列中的任何訊息,transmission_status 資料行就會包含錯誤訊息。

並非傳輸佇列中的所有訊息都是由於錯誤所造成:

  • 佇列中的某些訊息可能正在進行傳送。 範例包括等候中斷連接的接收者重新連接,或等候網路傳送確認。

  • 如果佇列的 RETENTION 設定為 ON,順利傳輸的訊息就會保留在傳輸佇列中,直到交談結束為止。

is_conversation_error 資料行會指出訊息是否遇到錯誤。

如需有關 sys.transmission_queue 的詳細資訊,請參閱<sys.transmission_queue (Transact-SQL)>。

Service Broker SQL 追蹤事件

Service Broker 提供許多可讓您用來診斷問題的 SQL 追蹤事件。 您可以使用 SQL Server Profiler 或系統預存程序來設定 SQL 追蹤,以便在 Service Broker 事件和錯誤發生時進行監視。 這可讓您查看系統所產生的 Service Broker 事件,以及它們是否遇到錯誤。

如需有關如何使用 SQL 追蹤的詳細資訊,請參閱<監視事件>。

如需有關 Service Broker 追蹤事件的詳細資訊,請參閱<Broker 事件類別目錄>。

Service Broker 效能物件

Service Broker 提供許多可讓您在「系統監視器」中用來追蹤 Service Broker 作業效能的效能物件。

如需詳細資訊,請參閱<監視資源使用量 (系統監視器)>。

如需有關 Service Broker 效能物件的詳細資訊,請參閱下列主題:

Service Broker 錯誤

Service Broker 與 Database Engine 會使用相同的機制,將錯誤傳回應用程式或工具。 如需詳細資訊,請參閱<了解 Database Engine 錯誤>。

如需有關 Service Broker 特有錯誤的詳細資訊,請參閱<錯誤和事件參考 (Service Broker)>。

當您執行 Transact-SQL 陳述式時所產生的 Service Broker 錯誤會傳回呼叫的應用程式。 例如,如果您正在 Management StudioTransact-SQL 查詢編輯器中執行指令碼,來自 Service BrokerTransact-SQL 陳述式的任何錯誤都會傳入 [訊息] 視窗中。

許多 Service Broker 作業是非同步的而且會在沒有任何應用程式連接至 Database Engine 執行個體時發生。 這些錯誤通常會傳入與 Database Engine 執行個體相關聯的錯誤記錄和 Windows 應用程式記錄中。 如需詳細資訊,請參閱<監視錯誤記錄>。

Service Broker 系統檢視表

Service Broker 提供許多系統檢視表,可分析現有的 Service Broker 組態,或監視 Service Broker 元件的狀態。

Service Broker 目錄檢視

Service Broker 目錄檢視會針對 Service Broker 目錄物件 (例如佇列和合約) 的目前組態傳回資料。

如需 Service Broker 目錄檢視的清單,請參閱<Service Broker 目錄檢視 (Transact-SQL)>。

Service Broker 動態管理檢視

Service Broker 動態管理檢視會針對 Service Broker 元件 (例如啟動工作和 Service Broker 連接) 的目前狀態傳回資料。

如需 Service Broker 動態管理檢視的清單,請參閱<Service Broker 相關的動態管理檢視 (Transact-SQL)>。