共用方式為


ssbdiagnose 公用程式 (Service Broker)

適用於:SQL Server Azure SQL 受控執行個體

ssbdiagnose 公用程式會報告 Service Broker 交談或 Service Broker 服務設定中的問題。 您可以針對兩個服務或單一服務進行組態檢查。 問題會在命令提示字元視窗中報告成人們可讀取的文字,或可重新導向至檔案或其他程式的格式化 XML。

語法

ssbdiagnose
[ [ -XML ]
    [ -LEVEL { ERROR | WARNING | INFO } ]
  [ -IGNORE error_id ] [ ...n ]
    [ <baseconnectionoptions> ]
  { <configurationreport> | <runtimereport> }
]
| -?

<configurationreport> ::=
    CONFIGURATION
  { [ FROM SERVICE service_name
      [ <fromconnectionoptions> ]
      [ MIRROR <mirrorconnectionoptions> ]
    ]
    [ TO SERVICE service_name [ , broker_id ]
      [ <toconnectionoptions> ]
      [ MIRROR <mirrorconnectionoptions> ]
    ]
  }
    ON CONTRACT contract_name
  [ ENCRYPTION { ON | OFF | ANONYMOUS } ]

<runtime_report> ::=
    RUNTIME
    [ -SHOWEVENTS ]
        [ -NEW
         [ -ID { conversation_handle
                | conversation_group_id
                 | conversation_id
                  }
        ] [ ...n ]
        ]
    [ -TIMEOUT timeout_interval ]
    [ <runtimeconnectionoptions> ]

<baseconnectionoptions> ::=
  <connectionoptions>

<fromconnectionoptions> ::=
  <connectionoptions>

<toconnectionoptions> ::=
  <connectionoptions>

<mirrorconnectionoptions> ::=
  <connectionoptions>

<runtimeconnectionoptions> ::=
  [ CONNECT TO <connectionoptions> ] [ ...n ]

<connectionoptions> ::=
  [ -E | { -U login_id [ -P password ] } ]
  [ -S server_name [ \instance_name ] ]
  [ -d database_name ]
  [ -l login_timeout ]
  [ -N encryption_option ]
  [ -i hostname_in_certificate ]
  [ -C ]

命令列選項

-XML

指定 ssbdiagnose 輸出要產生為格式化的 XML。 此輸出可重新導向至檔案或其他應用程式。 如未指定 -XML,則 ssbdiagnose 輸出就會格式化成一般人看得懂的文字。

-LEVEL { ERROR | WARNING | INFO }

指定要報告的訊息層級。

Description
ERROR 只報告錯誤訊息。
WARNING (預設值) 報告錯誤和警告訊息。
INFO 報告錯誤、警告和資訊訊息。

-IGNORE error_id

指定具有指定之 error_id 的錯誤或訊息,不要包含在報表中。 您可以多次指定 -IGNORE,以隱藏多個訊息識別碼。

<baseconnectionoptions>

指定當特定子句中未包含連線選項時,ssbdiagnose 所使用的基底連線資訊。 在特定子句中提供的連接資訊會覆寫 baseconnectionoption 資訊。 這會針對每項參數個別執行。 例如,如果在 -d 中同時指定了 -Sbaseconnetionoptions,在 toconnetionoptions 中只指定了 -d,則 ssbdiagnose 會使用 baseconnetionoptions 中的 -Stoconnetionoptions 中的 -d

CONFIGURATION

要求一組 Service Broker 服務之間或單一服務的設定錯誤報表。

FROM SERVICE service_name

指定起始交談的服務。

<fromconnectionoptions>

指定連接至保留起始端服務之資料庫所需的資訊。 如未指定 fromconnectionoptions,則 ssbdiagnose 會使用 baseconnectionoptions 中的連線資訊連接至起始端資料庫。 如果指定了 fromconnectionoptions,它就必須包括含有起始端服務的資料庫。 如未指定 fromconnectionoptions,則 baseconnectionoptions 必須指定起始端資料庫。

TO SERVICE service_name [ , broker_id ]

指定用於交談的服務。

service_name:指定目標服務的名稱。

broker_id:指定可識別目標資料庫的 Service Broker 識別碼。 broker_id 是 GUID。 您可以在目標資料庫中執行下列查詢,以便尋找此識別碼:

SELECT service_broker_guid
FROM sys.databases
WHERE database_id = DB_ID();

<toconnectionoptions>

指定連接至保存目標服務之資料庫所需的資訊。 如未指定 toconnectionoptions,則 ssbdiagnose 會使用 baseconnectionoptions 中的連線資訊連接至目標資料庫。

MIRROR

指定相關聯的 Service Broker 服務裝載於已鏡像的資料庫中。 ssbdiagnose 會確認服務的路由為鏡像路由,其中 MIRROR_ADDRESS 是在 CREATE ROUTE 上指定。

<mirrorconnectionoptions>

指定連接至鏡像資料庫所需的資訊。 如未指定 mirrorconnectionoptions,則 ssbdiagnose 會使用 baseconnectionoptions 中的連線資訊連接至鏡像資料庫。

ON CONTRACT contract_name

要求 ssbdiagnose 只檢查使用指定合約的組態。 如未指定 ON CONTRACT,則 ssbdiagnose 就會針對名為 DEFAULT 的合約進行報告。

ENCRYPTION { ON | OFF | ANONYMOUS }

要求確認是否已針對指定的加密層級正確設定對話:

  • ON:預設設定。 已設定完整的對話安全性。 已經在對話的兩端部署了憑證、存在遠端服務繫結,而且目標服務的 GRANT SEND 陳述式指定了起始端使用者。

  • OFF:未設定任何對話安全性。 沒有部署任何憑證、沒有建立任何遠端服務繫結,而且起始端服務的指定了 GRANT SENDpublic 角色。

  • ANONYMOUS:已設定匿名對話安全性。 已經部署了一個憑證、遠端服務繫結指定了匿名子句,而且目標服務的 GRANT SEND 指定了 public 角色。

RUNTIME

要求導致 Service Broker 交談發生執行階段錯誤之問題的報表。 如未指定 -NEW-IDssbdiagnose 就會監視連線選項中指定之所有資料庫中的所有交談。 如果指定了 -NEW-IDssbdiagnose 就會建立參數中指定的識別碼清單。

ssbdiagnose 正在執行時,會記錄所有指出執行階段錯誤的 SQL Server Profiler 事件。 它會記錄針對指定之識別碼發生的事件,以及系統層級事件。 如果發生執行階段錯誤, ssbdiagnose 就會針對相關聯的組態執行組態報表。

依預設,輸出報告中不會包含執行階段錯誤,只會包含組態分析的結果。 可以使用 -SHOWEVENTS,在報告中包含執行階段錯誤。

-SHOWEVENTS

指定 ssbdiagnoseRUNTIME 報告期間報告 SQL Server Profiler 事件。 僅報告被視為錯誤條件的事件。 ssbdiagnose 預設只監視錯誤事件,不會在輸出中報告這些事件。

  • -NEW:要求監視在 ssbdiagnose 開始執行之後開始的第一個交談執行階段。

  • -ID:要求監視指定交談元素的執行階段。 您可以多次指定 -ID

如果您指定了交談控制代碼,系統就只會報告與相關聯之交談端點相關聯的事件。 如果您指定了交談識別碼,系統就會報告該交談及其起始端和目標端點的所有事件。 如果您指定了交談群組識別碼,系統就會報告該交談群組中所有交談和端點的所有事件。

conversation_handle

可識別應用程式中某個交談端點的唯一識別碼。 交談控制代碼對於交談的某個端點而言是唯一的,而起始端和目標端點具有不同的交談控制代碼。

BEGIN DIALOG 陳述式的 @dialog_handle 參數和 conversation_handle 陳述式結果集中的 RECEIVE 資料行,會將交談控制代碼傳回應用程式。

conversation_handlesys.transmission_queue 資料行和 sys.conversation_endpoints 目錄檢視中會報告交談控制代碼。

conversation_group_id

識別交談群組且不重複的識別碼。

GET CONVERSATION GROUP 陳述式的 @conversation_group_id 參數和 conversation_group_id 陳述式結果集中的 RECEIVE 資料行會將交談群組識別碼傳回應用程式。

conversation_group_idsys.conversation_groups 資料行和 sys.conversation_endpoints 目錄檢視中會報告交談群組識別碼。

conversation_id

識別交談且不重複的識別碼。 對於交談的起始端和目標端點而言,其交談識別碼都相同。

conversation_id 目錄檢視的 sys.conversation_endpoints 資料行中會報告交談識別碼。

-TIMEOUT timeout_interval

指定 RUNTIME 報告要執行的秒數。 如未指定 -TIMEOUT,執行階段報告就會無限期地執行。 -TIMEOUT 僅用於 RUNTIME 報告,而非 CONFIGURATION 報告。 如果沒有指定 -TIMEOUT,則使用 CTRL + C 結束 ssbdiagnose,或在超時間隔到期之前結束執行階段報告。 timeout_interval 必須是介於 1 和 2,147,483,647 之間的數字。

<runtimeconnectionoptions>

指定資料庫的連接資訊,而這些資料庫包含與受監視之交談元素相關聯的服務。 如果所有服務都位於相同的資料庫中,您就只需要指定一個 CONNECT TO 子句。 如果各項服務位於不同的資料庫中,您就必須針對每個資料庫提供一個 CONNECT TO 子句。 如未指定 runtimeconnectionoptionsssbdiagnose 會使用 baseconnectionoptions 中的連線資訊。

-E

使用您目前的 Windows 帳戶作為登入識別碼,以開啟資料庫引擎執行個體的 Windows 驗證連線。 登入必須是 sysadmin 固定伺服器角色的成員。

-E 選項會忽略 SQLCMDUSERSQLCMDPASSWORD 環境變數的使用者與密碼設定。

如未指定 -E-Ussbdiagnose 就會使用 SQLCMDUSER 環境變數的值。 如果也沒有設定 SQLCMDUSERssbdiagnose 就會使用 Windows 驗證。

如果 -E 選項與 -U 選項或 -P 選項一起使用,則會產生錯誤訊息。

-U login_id

使用指定的登入識別碼,以開啟 SQL Server 驗證連線。 登入必須是 sysadmin 固定伺服器角色的成員。

如未指定 -E-Ussbdiagnose 就會使用 SQLCMDUSER 環境變數的值。 如果也沒有設定 SQLCMDUSERssbdiagnose 就會根據正在執行 ssbdiagnose 的使用者 Windows 帳戶,使用 Windows 驗證模式嘗試連接。

如果將 -U 選項與 -E 選項搭配使用,會產生錯誤訊息。 如果 -U 選項後面有多個引數,就會產生錯誤訊息並結束程式。

-P password

指定 -U 登入識別碼的密碼。 密碼會區分大小寫。 如果使用了 -U 選項,但沒有使用 -P 選項,ssbdiagnose 就會使用 SQLCMDPASSWORD 環境變數的值。 如果也沒有設定 SQLCMDPASSWORDssbdiagnose 就會提示使用者輸入密碼。

警告

您輸入 SET SQLCMDPASSWORD 命令後,任何能夠查看畫面的人都可以看到您的密碼。

如果指定了 -P 選項但無密碼,ssbdiagnose 就會使用預設密碼 (NULL)。

重要

請勿使用空白密碼。 請使用增強式密碼。 如需詳細資訊,請參閱 Strong Passwords

密碼提示的顯示方式,會以將密碼提示輸出到主控台的方式顯示,如: Password:

使用者輸入為隱藏狀態。 這表示畫面上不會顯示任何內容,而且游標也不會移動。

如果 -P 選項與 -E 選項搭配使用,會產生錯誤訊息。

如果 -P 選項後面有多個引數,就會產生錯誤訊息。

-S server_name [ \instance_name ]

指定保存要分析之 Service Broker 服務的資料庫引擎執行個體。

指定 server_name,以連線至該伺服器上的預設資料庫引擎執行個體。 指定 <server_name>\<instance_name> 以連線至該伺服器上資料庫引擎的具名執行個體。 如未指定 -S,則 ssbdiagnose 會使用 SQLCMDSERVER 環境變數的值。 如果也未設定 SQLCMDSERVER,則 ssbdiagnose 會連線至本機電腦上的資料庫引擎預設執行個體。

-d database_name

指定保存要分析之 Service Broker 服務的資料庫。 如果此資料庫不存在,就會產生錯誤訊息。 如未指定 -d,預設值就是登入之預設資料庫屬性中所指定的資料庫。

-l login_timeout

指定嘗試連接至伺服器會發生逾時之前,所經過的秒數。如未指定 -lssbdiagnose 就會使用針對 SQLCMDLOGINTIMEOUT 環境變數所設定的值。 如果也未設定 SQLCMDLOGINTIMEOUT,預設逾時為 30 秒。 此登入逾時必須是介於 0 和 65534 之間的數字。 如果所提供的值不是數值或不在該範圍內,ssbdiagnose 就會產生錯誤訊息。 0 值指定逾時值無限。

-N encryption_option

指出連線已加密。 可能的值是 OptionalMandatoryStrict。 輸入的值代表所需的最低加密層級。 預設值是 Mandatory

選取 Mandatory 加密之後,您應該使用來自受信任憑證授權單位的憑證。 如需詳細資訊,請參閱<SQL Server 的憑證需求>。

若要使用嚴格的加密,SQL Server 資料庫引擎必須使用 TLS 認證進行設定,這項認證是由可信任的根憑證授權單位所簽署。

-i hostname_in_certificate

指定在伺服器憑證驗證期間要使用的伺服器憑證中不同的預期一般名稱 (CN) 或主體別名 (SAN)。 若無此選項,憑證驗證可確保憑證中的 CN 或 SAN 符合您要連線的伺服器名稱。 如果伺服器名稱不符合 CN 或 SAN,例如,使用 DNS 別名時,則可以填入此參數。

-C

指定連線信任伺服器憑證,並略過伺服器憑證驗證。 如果使用受信任的伺服器憑證,則不需要此選項。

-?

顯示命令列說明。

備註

您可以使用 ssbdiagnose 執行下列作業:

  • 確認新設定的 Service Broker 應用程式中沒有設定錯誤。

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

  • 確認在 Service Broker 資料庫中斷連結,然後重新附加至新的資料庫引擎執行個體之後,沒有任何設定錯誤。

  • 如果訊息無法順利在服務之間傳輸,則研究是否存在組態錯誤。

  • 取得在一組 Service Broker 交談元素中發生之任何錯誤的報表。

組態報告

若要正確分析交談所使用的組態,請執行與交談使用相同選項的 ssbdiagnose 組態報表。 如果您為 ssbdiagnose 指定的選項層級低於交談所使用的選項層級,則 ssbdiagnose 可能不會報告交談所需的條件。 如果您為 ssbdiagnose 指定較高的選項層級,它可能會報告交談不需要的報告項目。 例如,在相同資料庫中兩個服務之間的交談,可能會在 ENCRYPTION OFF 的情況下執行。 如果您執行 ssbdiagnose 以驗證這兩個服務之間的組態,但卻使用預設的 ENCRYPTION ON 設定,ssbdiagnose 就會報告資料庫缺少主要金鑰。 這種交談不需要使用主要金鑰。

ssbdiagnose 組態報告每次執行時,都只會分析一個 Service Broker 服務或一對服務。 若要報告多對 Service Broker 服務,請建立多次呼叫 ssbdiagnose 的 .cmd 命令檔。

執行階段報告

如果指定了 -RUNTIMEssbdiagnose 會搜尋 runtimeconnectionoptionsbaseconnectionoptions 中指定的所有資料庫,以建置一份 Service Broker 識別碼清單。 所建置的完整識別碼清單會因針對 -NEW-ID 指定的內容而不同:

  • 如未指定 -NEW-ID,此清單就會包含連線選項中指定之所有資料庫的所有交談。

  • 如果指定了 -NEWssbdiagnose 就會包含 ssbdiagnose 執行之後開始的第一個交談的元素。 這同時包括目標和起始端交談端點的交談識別碼與交談控制代碼。

  • 如果指定了 -ID 與交談控制代碼,只有該控制代碼會包含在清單中。

  • 如果指定了 -ID 與交談識別碼,則交談識別碼及其兩個交談端點的控制代碼都會加入清單中。

  • 如果指定了 -ID 與交談群組識別碼,則該群組中的所有交談識別碼和交談控制代碼都會加入清單中。

此清單不會包含連線選項未涵蓋之資料庫中的元素。 例如,假設您使用 -ID 指定交談識別碼,但是僅針對起始端資料庫 (而非目標資料庫) 提供 runtimeconnectionoptions 子句。 ssbdiagnose 不會在其識別碼清單中包含目標交談控制代碼,而只會包含交談識別碼和起始端交談控制代碼。

ssbdiagnose 會監視 runtimeconnectionoptionsbaseconnectionoptions 所涵蓋資料庫的 SQL Server Profiler 事件。 其會搜尋 Service Broker 事件,指出執行階段清單中一或多個 Service Broker 識別碼發生的錯誤。 ssbdiagnose 也會搜尋未與任何交談群組相關聯的系統層級 Service Broker 錯誤事件。

如果 ssbdiagnose 找到交談錯誤,此公用程式就會透過同時執行組態報告,嘗試報告事件的根本原因。 ssbdiagnose 會使用資料庫內的中繼資料,嘗試判斷交談所使用的執行個體、Service Broker 識別碼、資料庫、服務與合約。 然後,它會使用所有可用的資訊來執行組態報表。

ssbdiagnose 預設不會報告錯誤事件。 它只會報告在組態檢查期間所找到的基礎問題。 如此會將報告的資訊量減到最少,協助您將焦點集中在基礎組態問題。 您可以指定 -SHOWEVENTS,以便查看 ssbdiagnose 遇到的錯誤事件。

ssbdiagnose 報告的問題

ssbdiagnose 會報告三種問題類別。 在 XML 輸出檔中,每種問題類別都會報告成個別的 Issue 元素類型。 ssbdiagnose 所報告的三種問題類型如下:

  • Diagnosis:報告組態問題。 這包括在 CONFIGURATION 報告執行時或 RUNTIME 報告的組態階段期間發現的問題。 ssbdiagnose 每個組態問題只報告一次。

  • Event:報告 SQL Server Profiler 事件,指出在 RUNTIME 報告期間監視的交談遇到問題。 ssbdiagnose 會在每次事件產生時報告這些事件。 如果許多交談都遇到該問題,可能會報告多次該事件。

  • Problem:報告會讓 ssbdiagnose 無法完成組態分析或無法監視交談的問題。

SQLCMD 環境變數

ssbdiagnose 公用程式支援 sqlcmd 公用程式也使用的 SQLCMDSERVERSQLCMDUSERSQLCMDPASSWORDSQLCMDLOGINTIMOUT 環境變數。 您可以使用命令提示字元 SET 命令,或在使用 sqlcmd 所執行的 Transact-SQL 指令碼中使用 setvar 命令,來設定這些環境變數。 若要了解有關如何在 sqlcmd 中使用 setvar 的詳細資訊,請參閱<sqlcmd – 搭配指令碼變數使用>。

權限

在每個 connectionoptions 子句中,使用 -E-U 指定的登入,必須是以 sysadmin 所指定之執行個體內 -S 固定伺服器角色的成員。

範例

本節包含在命令提示字元處使用 ssbdiagnose 的範例。

A. 檢查相同資料庫中兩個服務的組態

下列範例將示範如何在下列條件成立時要求組態報表:

  • 起始端和目標服務位於相同的資料庫中。

  • 資料庫是在預設資料庫引擎執行個體中。

  • 執行個體位於執行 ssbdiagnose 的同一部電腦上。

ssbdiagnose 公用程式會報告使用 DEFAULT 合約的組態,因為沒有指定 ON CONTRACT

ssbdiagnose -E -d MyDatabase CONFIGURATION FROM SERVICE /test/initiator TO SERVICE /test/target

B. 檢查使用單一登入之不同電腦上的兩個服務之組態

下列範例將示範如何在起始端和目標服務位於不同的電腦,但是可以使用相同的 Windows 驗證登入存取時,要求組態報表。

ssbdiagnose -E CONFIGURATION FROM SERVICE /text/initiator -S InitiatorComputer -d InitiatorDatabase TO SERVICE /test/target -S TargetComputer -d TargetDatabase ON CONTRACT TestContract

C. 檢查使用不同登入之不同電腦上兩個服務的組態

下列範例顯示如何在下列情況時要求設定報表:起始端和目標服務位於不同的電腦,而且每個資料庫引擎執行個體都需要不同的 SQL Server 驗證登入。

ssbdiagnose CONFIGURATION FROM SERVICE /text/initiator
-S InitiatorComputer -U InitiatorLogin -p !wEx23Dvb
-d InitiatorDatabase TO SERVICE /test/target -S TargetComputer
-U TargetLogin -p ER!49jiy -d TargetDatabase ON CONTRACT TestContract

D. 檢查具有匿名加密的不同電腦上之鏡像服務組態

下列範例將示範如何在起始端和目標服務位於不同的電腦,而且起始端鏡像至具名執行個體時,要求組態報告。 此報表也會確認這些服務都設定為使用匿名加密。

ssbdiagnose -E CONFIGURATION FROM SERVICE /text/initiator
-S InitiatorComputer -d InitiatorDatabase MIRROR
-S MirrorComputer/MirrorInstance TO SERVICE /test/target
-S TargetComputer -d TargetDatabase ON CONTRACT TestContract ENCRYPTION ANONYMOUS

E. 檢查兩個合約的組態

下列範例將示範如何建立命令檔,以便在下列條件成立時要求組態報表:

  • 起始端和目標服務位於相同的資料庫中。

  • 資料庫是在預設資料庫引擎執行個體中。

  • 執行個體位於執行 ssbdiagnose 的同一部電腦上。

每次執行 ssbdiagnose 時,它就會針對相同服務之間的不同合約報告組態。

ssbdiagnose -E -d MyDatabase CONFIGURATION FROM SERVICE
/test/initiator TO SERVICE /test/target ON CONTRACT PayRaiseContract
ssbdiagnose -E -d MyDatabase CONFIGURATION FROM SERVICE /test/initiator
TO SERVICE /test/target ON CONTRACT PromotionContract

F. 在具有逾時之本機電腦上監視特定交談的狀態

下列範例將示範如何監視特定交談,其中起始端和目標服務位於執行 ssbdiagnose之相同電腦的預設執行個體內的相同資料庫中。 其逾時間隔設定為 20 秒。

ssbdiagnose -E -d TestDatabase RUNTIME -ID D68D77A9-B1CF-41BF-A5CE-279ABCAB140D -TIMEOUT 20

G. 監視跨越兩部電腦之交談的狀態

下列範例將示範如何監視特定交談,其中起始端和目標服務位於不同的電腦上。

ssbdiagnose RUNTIME -ID D68D77A9-B1CF-41BF-A5CE-279ABCAB140D
-TIMEOUT 10 CONNECT TO -E -S InitiatorComputer/InitiatorInstance
-d InitiatorDatabase CONNECT TO -E -S TargetComputer/TargetInstance
-d TargetDatabase

H. 監視相同執行個體內兩個資料庫中的交談狀態

下列範例顯示如何監視特定交談,其中起始端和目標服務位於相同資料庫引擎執行個體的不同資料庫中。 此範例會使用 baseconnectionoptions 指定執行個體和登入資訊,並且使用兩個 CONNECT TO 子句來指定資料庫。 指定了 -SHOWEVENTS,如此所有執行階段事件都會包含在報告輸出中。

ssbdiagnose -E -S TestComputer/DevTestInstance RUNTIME -SHOWEVENTS
-ID 5094d4a7-e38c-4c37-da37-1d58b1cb8455 -TIMEOUT 10 CONNECT TO
-d InitiatorDatabase CONNECT TO -d TargetDatabase

I. 監視兩個資料庫之間兩個交談的狀態

下列範例顯示如何監視兩個交談,其中起始端和目標服務位於相同資料庫引擎執行個體的不同資料庫中。 此範例會使用 baseconnectionoptions 指定執行個體和登入資訊,並且使用兩個 CONNECT TO 子句來指定資料庫。

ssbdiagnose -E -S TestComputer/DevTestInstance RUNTIME
-ID 5094d4a7-e38c-4c37-da37-1d58b1cb8455
-ID 9b293be9-226b-4e22-e169-1d2c2c15be86 -TIMEOUT 10 CONNECT TO
-d InitiatorDatabase CONNECT TO -d TargetDatabase

J. 監視兩個資料庫之間的所有交談狀態

下列範例顯示如何監視相同資料庫引擎執行個體中兩個資料庫之間的所有交談。 此範例會使用 baseconnectionoptions 指定執行個體和登入資訊,並且使用兩個 CONNECT TO 子句來指定資料庫。

ssbdiagnose -E -S TestComputer/DevTestInstance RUNTIME
-TIMEOUT 10 CONNECT TO -d InitiatorDatabase CONNECT TO
-d TargetDatabase

K. 忽略特定錯誤

下列範例將示範如何在目前已設定啟用方式的測試系統中忽略已知的錯誤 (303 和 304)。

ssbdiagnose -IGNORE 303 -IGNORE 304 -E -d TestDatabase
CONFIGURATION FROM SERVICE /test/initiator TO SERVICE /test/target
ON CONTRACT TextContract

L. 重新導向 ssbdiagnose XML 輸出

下列範例將示範如何要求 ssbdiagnose 將其輸出產生為 XML 檔,以便重新導向至檔案。 然後,應用程式可以開啟 TestDiag.xml 檔,以便分析或報告 ssbdiagnose XML 檔。 或者,您可以從一般 XML 編輯器 (例如 XML Notepad) 中檢視此檔案。

ssbdiagnose -XML -E -d MyDatabase CONFIGURATION FROM SERVICE
/test/initiator TO SERVICE /test/target > c:\MyDiagnostics\TestDiag.xml

M. 使用環境變數

下列範例會先設定 SQLCMDSERVER 環境變數,以便保存伺服器名稱,然後在不指定 -S 的情況下執行 ssbdiagnose

SET SQLCMDSERVER=MyComputer
ssbdiagnose -XML -E -d MyDatabase CONFIGURATION FROM SERVICE
/test/initiator TO SERVICE /test/target