Share via


ssbdiagnose ユーティリティ

ssbdiagnose ユーティリティは、Service Broker メッセージ交換または Service Broker サービスの構成に関する問題を報告します。構成チェックは 2 つまたは 1 つのサービスに対して実行できます。問題点は、コマンド プロンプト ウィンドウにユーザーが解釈できる形式で報告されるか、ファイルまたは別のプログラムにリダイレクトできる XML 形式で報告されます。

構文

        ssbdiangose 
[ [ -XML ]
    [ -LEVEL { ERROR | WARNING | INFO } ]
  [-IGNOREerror_id ] [ ...n]
    [ <baseconnectionoptions> ]
  { <configurationreport> | <runtimereport> }
]
| -?

<configurationreport> ::=
    CONFIGURATION
  { [ FROM SERVICEservice_name
      [ <fromconnectionoptions> ]
      [ MIRROR <mirrorconnectionoptions> ]
    ]
    [ TO SERVICEservice_name[, broker_id ]
      [ <toconnectionoptions> ]
      [ MIRROR <mirrorconnectionoptions> ]
    ]
  }
    ON CONTRACTcontract_name
  [ ENCRYPTION { ON | OFF | ANONYMOUS } ]

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

<baseconnectionoptions> ::=
  <connectionoptions>

<fromconnectionoptions> ::=
  <connectionoptions>

<toconnectionoptions> ::=
  <connectionoptions>

<mirrorconnectionoptions> ::=
  <connectionoptions>

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

<connectionoptions> ::=
    [ –E | { -Ulogin_id [ -Ppassword ] } ]
  [ -Sserver_name[\instance_name] ]
  [ -ddatabase_name ]
  [ -llogin_timeout ]

コマンド ライン オプション

  • -XML
    ssbdiagnose の出力を XML 形式で生成することを指定します。この出力は、ファイルまたは他のアプリケーションにリダイレクトできます。-XML が指定されていない場合、ssbdiagnose の出力はユーザーが判読可能なテキスト形式に設定されます。

  • -LEVEL { ERROR | WARNING | INFO}
    報告するメッセージのレベルを指定します。

    ERROR: エラー メッセージのみを報告します。

    WARNING: エラー メッセージと警告メッセージを報告します。

    INFO: エラー メッセージ、警告メッセージ、および情報メッセージを報告します。

    既定の設定は WARNING です。

  • -IGNOREerror_id
    指定した error_id のエラーまたはメッセージが、レポートから除外されます。-IGNORE を複数回指定すると、複数のメッセージ ID を除外することができます。詳細については、「エラーとイベントのリファレンス (Service Broker)」を参照してください。

  • <baseconnectionoptions>
    接続オプションが特定の句に含まれていない場合に ssbdiagnose が使用する、基本的な接続情報を指定します。特定の句で指定された接続情報は、baseconnectionoption の情報よりも優先されます。優先的に使用される接続情報は、パラメーターごとに判別されます。たとえば、baseconnetionoptions-S-d の両方が指定され、toconnetionoptions-d だけが指定されている場合、ssbdiagnosebaseconnetionoptions の -S と toconnetionoptions の -d を使用します。

  • CONFIGURATION
    Service Broker サービスのペアまたは 1 つのサービスでの構成エラーのレポートを要求します。

  • FROM SERVICEservice_name
    メッセージ交換を開始するサービスを指定します。

  • <fromconnectionoptions>
    発信側サービスが格納されているデータベースへの接続に必要な情報を指定します。fromconnectionoptions が指定されていない場合、ssbdiagnosebaseconnectionoptions の接続情報を使用して発信側データベースに接続します。fromconnectionoptions が指定されている場合は、発信側サービスが格納されているデータベースを含める必要があります。fromconnectionoptions が指定されていない場合は、baseconnectionoptions で発信側データベースを指定する必要があります。

  • TO SERVICEservice_name[, broker_id ]
    メッセージ交換の発信先サービスを指定します。

    service_name : 発信先サービスの名前を指定します。

    broker_id : 発信先データベースを示す Service Broker ID を指定します。broker_id は GUID です。発信先データベースで次のクエリを実行すると、この ID を検索できます。

    SELECT service_broker_guid
    FROM sys.databases
    WHERE database_id = DB_ID();
    
  • <toconnectionoptions>
    発信先サービスが格納されているデータベースへの接続に必要な情報を指定します。toconnectionoptions が指定されていない場合、ssbdiagnosebaseconnectionoptions の接続情報を使用して発信先データベースに接続します。

  • MIRROR
    関連する Service Broker サービスが、ミラー化されたデータベースでホストされることを指定します。CREATE ROUTE で MIRROR_ADDRESS が指定されている場合、ssbdiagnose はサービスへのルートがミラー化されたルートであることを確認します。

  • <mirrorconnectionoptions>
    ミラー データベースへの接続に必要な情報を指定します。mirrorconnectionoptions が指定されていない場合、ssbdiagnosebaseconnectionoptions の接続情報を使用してミラー データベースに接続します。

  • ON CONTRACTcontract_name
    指定されたコントラクトを使用する構成だけを ssbdiagnose でチェックするように要求します。ON CONTRACT が指定されていない場合、ssbdiagnose は DEFAULT という名前のコントラクトに関するレポートを生成します。

  • ENCRYPTION { ON | OFF | ANONYMOUS }
    指定されたレベルの暗号化向けにダイアログが正しく構成されているかどうかを検証するように要求します。

    ON: 既定の設定です。完全ダイアログ セキュリティが構成されているかどうかを検証します。証明書がダイアログの両側に配置されていること、リモート サービス バインドが存在すること、および発信先サービスに対する GRANT SEND ステートメントで発信側ユーザーを指定していることを確認します。

    OFF: ダイアログ セキュリティが構成されていないかどうかを検証します。証明書が配置されていないこと、リモート サービス バインドが作成されていないこと、および発信側サービスに対する GRANT SEND ステートメントで public ロールが指定されていることを確認します。

    ANONYMOUS: 匿名ダイアログ セキュリティが構成されているかどうかを検証します。一方の証明書が配置されていること、リモート サービス バインドで匿名句が指定されていること、および発信先サービスに対する GRANT SEND ステートメントで public ロールが指定されていることを確認します。

    詳細については、「Service Broker ダイアログ セキュリティ」を参照してください。

  • RUNTIME
    Service Broker メッセージ交換の実行時エラーの原因となった問題のレポートを要求します。-NEW-ID のどちらも指定されていない場合、ssbdiagnose は接続オプションで指定されたすべてのデータベース内のすべてのメッセージ交換を監視します。-NEW または -ID が指定されている場合、ssbdiagnose はパラメーターで指定された ID の一覧を作成します。

    ssbdiagnose は、実行中に、実行時エラーを示す SQL Server Profiler イベントをすべて記録します。また、指定された ID に対して発生するイベントに加え、システム レベルのイベントも記録します。実行時エラーが検出されると、ssbdiagnose は関連付けられている構成に対して構成レポートを実行します。

    既定では、出力レポートに実行時エラーは含まれず、構成の分析結果のみが含まれます。レポートに実行時エラーを含めるには、-SHOWEVENTS を使用します。

  • -SHOWEVENTS
    ssbdiagnose で RUNTIME レポートの実行中に SQL Server Profiler イベントを報告することを指定します。エラー状態と見なされるイベントのみが報告されます。既定では、ssbdiagnose はエラー イベントを監視するだけであり、レポートには出力しません。

  • -NEW
    ssbdiagnose が実行を開始した後に開始される最初のメッセージ交換を、実行時に監視するように要求します。

  • -ID
    指定されたメッセージ交換要素を実行時に監視するように要求します。-ID は複数回指定できます。

    メッセージ交換ハンドルを指定すると、関連するメッセージ交換エンドポイントに関連付けられたイベントのみが報告されます。メッセージ交換 ID を指定すると、そのメッセージ交換のすべてのイベントと、そのメッセージ交換の発信側と発信先のエンドポイントが報告されます。メッセージ交換グループ ID が指定されている場合は、すべてのメッセージ交換のイベントと、メッセージ交換グループ内のエンドポイントが報告されます。

  • conversation_handle
    アプリケーション内のメッセージ交換エンドポイントを識別する一意識別子です。メッセージ交換ハンドルは、メッセージ交換の一方のエンドポイントに対して一意であり、発信側と発信先のエンドポイントのメッセージ交換ハンドルは異なります。

    メッセージ交換ハンドルは、BEGIN DIALOG ステートメントの @dialog_handle パラメーターと、RECEIVE ステートメントの結果セットに含まれる conversation_handle 列によってアプリケーションに返されます。

    メッセージ交換ハンドルは、sys.transmission_queue カタログ ビューと sys.conversation_endpoints カタログ ビューの conversation_handle 列に表示されます。

  • conversation_group_id
    メッセージ交換グループを識別する一意識別子です。

    メッセージ交換グループ ID は、GET CONVERSATION GROUP ステートメントの @conversation_group_id パラメーターと、RECEIVE ステートメントの結果セットに含まれる conversation_group_id 列によってアプリケーションに返されます。

    メッセージ交換グループ ID は、sys.conversation_groups カタログ ビューと sys.conversation_endpoints カタログ ビューの conversation_group_id 列に表示されます。

  • conversation_id
    メッセージ交換を識別する一意識別子です。メッセージ交換 ID は、メッセージ交換の発信側と発信先の両方のエンドポイントで同じです。

    メッセージ交換 ID は、sys.conversation_endpoints カタログ ビューの conversation_id 列に表示されます。

  • -TIMEOUTtimeout_interval
    RUNTIME レポートを実行する秒数を指定します。-TIMEOUT が指定されていない場合、ランタイム レポートは無制限に実行されます。-TIMEOUT は、CONFIGURATION レポートではなく、RUNTIME レポートでのみ使用されます。-TIMEOUT が指定されていない場合に ssbdiagnose を終了するか、タイムアウトになる前にランタイム レポートを終了するには、Ctrl キーを押しながら C キーを押します。timeout_interval には 1 ~ 2,147,483,647 の数値を指定する必要があります。

  • <runtimeconnectionoptions>
    監視対象のメッセージ交換要素に関連付けられたサービスが格納されているデータベースについての接続情報を指定します。すべてのサービスが同じデータベースに格納されている場合は、CONNECT TO 句を 1 つ指定するだけでかまいません。サービスが異なるデータベースに格納されている場合は、データベースごとに CONNECT TO 句を指定する必要があります。runtimeconnectionoptions が指定されていない場合、ssbdiagnosebaseconnectionoptions の接続情報を使用します。

  • –E
    現在の Windows アカウントをログイン ID として使用して、データベース エンジンのインスタンスに対して Windows 認証接続を開きます。ログインは、sysadmin 固定サーバー ロールのメンバーである必要があります。

    -E オプションを使用すると、SQLCMDUSER 環境変数および SQLCMDPASSWORD 環境変数のユーザー設定とパスワード設定が無視されます。

    -E-U のどちらも指定されていない場合、ssbdiagnose は SQLCMDUSER 環境変数の値を使用します。SQLCMDUSER も設定されていない場合には、ssbdiagnose は Windows 認証を使用します。

    -E オプションを -U オプションまたは -P オプションと共に使用すると、エラー メッセージが生成されます。

  • -Ulogin_id
    指定されたログイン ID を使用して SQL Server 認証接続を開きます。ログインは、sysadmin 固定サーバー ロールのメンバーである必要があります。

    -E-U のどちらも指定されていない場合、ssbdiagnose は SQLCMDUSER 環境変数の値を使用します。SQLCMDUSER も設定されていない場合には、ssbdiagnosessbdiagnose を実行しているユーザーの Windows アカウントに基づいた Windows 認証モードを使用して接続を試行します。

    -U オプションを -E オプションと共に使用すると、エラー メッセージが生成されます。–U オプションの後に複数の引数があると、エラー メッセージが生成され、プログラムが終了します。

  • -Ppassword
    -U のログイン ID のパスワードを指定します。パスワードでは大文字と小文字が区別されます。-U オプションを使用し、-P オプションを使用していない場合、ssbdiagnose は SQLCMDPASSWORD 環境変数の値を使用します。SQLCMDPASSWORD も設定されていない場合には、ssbdiagnose はユーザーにパスワードを要求します。

    セキュリティに関する注意セキュリティに関する注意

    SET SQLCMDPASSWORD コマンドを入力するときには、モニターにパスワードが表示されるので注意してください。

    パスワードなしで -P オプションが指定されている場合、ssbdiagnose は既定のパスワード (NULL) を使用します。

    セキュリティに関する注意セキュリティに関する注意

    空白のパスワードは使用しないでください。強力なパスワードを使用してください。詳細については、「強力なパスワード」を参照してください。

    パスワード プロンプトは、コンソールに "Password:" のようなプロンプトを出力することによって示されます。

    ユーザーが行った入力は表示されません。つまり、入力時には何も表示されず、カーソルが移動しません。

    -P オプションを -E オプションと共に使用すると、エラー メッセージが生成されます。

    -P オプションの後に複数の引数があると、エラー メッセージが生成されます。

  • -Sserver_name[\instance_name]
    分析対象の Service Broker サービスが格納されている、データベース エンジンのインスタンスを指定します。

    サーバー上のデータベース エンジンの既定のインスタンスに接続するには、server_name を指定します。サーバー上のデータベース エンジンの名前付きインスタンスに接続するには、server_name**\instance_name を指定します。-S** が指定されていない場合、ssbdiagnose は SQLCMDSERVER 環境変数の値を使用します。SQLCMDSERVER も設定されていない場合には、ssbdiagnose はローカル コンピューター上にあるデータベース エンジンの既定のインスタンスに接続します。

  • -ddatabase_name
    分析対象の Service Broker サービスが格納されているデータベースを指定します。データベースが存在しない場合は、エラー メッセージが生成されます。-d が指定されていない場合、ログインの既定のデータベースのプロパティに指定されたデータベースが既定値になります。

  • -llogin_timeout
    サーバーへの接続試行がタイムアウトするまでの秒数を指定します。-l が指定されていない場合、ssbdiagnose は、SQLCMDLOGINTIMEOUT 環境変数に設定された値を使用します。SQLCMDLOGINTIMEOUT も設定されていない場合、既定のタイムアウトは 30 秒です。ログイン タイムアウトは、0 ~ 65,534 までの数値にする必要があります。指定した値が数値以外の場合、または範囲外の場合、ssbdiagnose はエラー メッセージを生成します。この値に 0 を指定すると、タイムアウトは無制限になります。

  • -?
    コマンド ライン ヘルプを表示します。

説明

ssbdiagnose を使用すると、次の操作を実行できます。

  • 新しく構成された Service Broker アプリケーションに構成エラーがないことを確認する。

  • 既存の Service Broker アプリケーションの構成を変更した後に構成エラーがないことを確認する。

  • Service Broker データベースをデタッチしてからデータベース エンジンのインスタンスに再アタッチした後に構成エラーがないことを確認する。

  • メッセージがサービス間で正常に送信されない場合に構成エラーがあるかどうかを調査する。

  • Service Broker の一連のメッセージ交換要素で発生するすべてのエラーに関するレポートを取得する。

ssbdiagnose によって返されるエラーについては、「エラーとイベントのリファレンス (Service Broker)」を参照してください。

構成レポート

メッセージ交換で使用されている構成を正しく分析するには、メッセージ交換で使用されているオプションと同じオプションを使用した ssbdiagnose の構成レポートを実行します。メッセージ交換よりも低いレベルのオプションを ssbdiagnose に指定すると、ssbdiagnose はメッセージ交換に必要な条件を報告しない場合があります。また、メッセージ交換よりも高いレベルのオプションを ssbdiagnose に指定すると、メッセージ交換に必要のない項目を報告する場合があります。たとえば、同じデータベース内の 2 つのサービス間のメッセージ交換は、ENCPRYPTION OFF を指定して実行できます。ssbdiagnose を実行してこの 2 つのサービス間の構成を検証する場合に、既定の設定である ENCRYPTION ON を使用すると、ssbdiagnose はデータベースでマスター キーが見つからないことを報告します。マスター キーは、メッセージ交換には必要ありません。

ssbdiagnose の構成レポートを実行するたびに、1 つの Service Broker サービスまたは 1 組のサービスだけが分析されます。Service Broker サービスの複数のペアに関するレポートを作成するには、ssbdiagnose を複数回呼び出す .cmd コマンド ファイルを作成します。

ランタイム レポート

-RUNTIME が指定されている場合、ssbdiagnoseruntimeconnectionoptionsbaseconnectionoptions で指定されたすべてのデータベースを検索して、Service Broker ID の一覧を作成します。作成される ID の一覧は、-NEW と -ID で指定した内容によって異なります。

  • -NEW-ID のどちらも指定されていない場合は、接続オプションで指定されたすべてのデータベースのすべてのメッセージ交換が一覧に含まれます。

  • -NEW が指定されている場合、ssbdiagnose が作成する一覧には、ssbdiagnose の実行後に開始される最初のメッセージ交換の要素が含まれます。これには、メッセージ交換 ID、および発信先と発信側の両方のメッセージ交換エンドポイントのメッセージ交換ハンドルも含まれます。

  • -ID がメッセージ交換ハンドルと共に指定されている場合は、そのハンドルだけが一覧に含まれます。

  • -ID がメッセージ交換 ID と共に指定されている場合は、そのメッセージ交換 ID と、両方のメッセージ交換エンドポイントのハンドルが一覧に追加されます。

  • -ID がメッセージ交換グループ ID と共に指定されている場合は、そのグループ内のすべてのメッセージ交換 ID とメッセージ交換ハンドルが一覧に追加されます。

接続オプションで対応されていないデータベースの要素は、一覧に含まれません。たとえば、-ID を使用してメッセージ交換 ID を指定し、発信先データベースではなく発信側データベースに対してのみ runtimeconnectionoptions 句を指定したとします。この場合、ssbdiagnose は、ID の一覧に発信先のメッセージ交換ハンドルを含めず、メッセージ交換 ID と発信側のメッセージ交換ハンドルだけを含めます。

ssbdiagnose は、runtimeconnectionoptionsbaseconnectionoptions の対象となるデータベースの SQL Server Profiler イベントを監視します。ssbdiagnose は、ランタイムの一覧に含まれる 1 つ以上の Service Broker ID でエラーが発生したことを示す Service Broker イベントを検索します。また、どのメッセージ交換グループにも特に関連していないシステム レベルの Service Broker エラー イベントも検索します。

ssbdiagnose は、メッセージ交換エラーを検出すると、構成レポートも実行して、そのイベントの根本的な原因について報告を試みます。ssbdiagnose は、データベース内のメタデータを使用して、メッセージ交換で使用されるインスタンス、Service Broker ID、データベース、サービス、およびコントラクトを特定します。その後、使用可能なすべての情報を使用して構成レポートを実行します。

既定では、ssbdiagnose はエラー イベントを報告しません。報告するのは、構成チェック時に見つかった根本的な問題だけです。これにより、報告される情報量が最小限に抑えられるため、根本的な構成の問題に注目することができます。ssbdiagnose によって検出されたエラー イベントを確認するには、-SHOWEVENTS を指定します。

ssbdiagnose によって報告される問題

ssbdiagnose が報告する問題は、3 種類に分類されます。XML 出力ファイルでは、各種類の問題が Issue 要素の異なる型として報告されます。ssbdiagnose が報告する 3 種類の問題は次のとおりです。

  • 診断
    構成上の問題を報告します。これには、CONFIGURATION レポートの実行中、または RUNTIME レポートの構成フェーズで見つかった問題が含まれます。ssbdiagnose は、構成上の各問題を 1 度だけ報告します。

  • イベント
    RUNTIME レポートの実行中に監視されているメッセージ交換で問題が検出されたことを示す SQL Server Profiler イベントを報告します。ssbdiagnose は、イベントが生成されるたびにそれらのイベントを報告します。複数のメッセージ交換で問題が検出される場合は、イベントが複数回報告されます。

  • 問題
    ssbdiagnose で構成分析を完了できない場合や、メッセージ交換を監視できない場合に、その原因となる問題を報告します。

sqlcmd 環境変数

ssbdiagnose ユーティリティでは、sqlcmd ユーティリティでも使用される SQLCMDSERVER、SQLCMDUSER、SQLCMDPASSWORD、および SQLCMDLOGINTIMOUT の各環境変数をサポートしています。これらの環境変数を設定するには、コマンド プロンプトの SET コマンドを使用するか、sqlcmd を使用して実行する Transact-SQL スクリプトの setvar コマンドを使用します。sqlcmdsetvar を使用する方法の詳細については、「sqlcmd でのスクリプト変数の使用」を参照してください。

権限

connectionoptions 句では、-E または -U で指定されたログインが、-S で指定されたインスタンスの sysadmin 固定サーバー ロールのメンバーである必要があります。

ここでは、コマンド プロンプトでの ssbdiagnose の使用例を示します。

A. 同じデータベース内の 2 つのサービスの構成を確認する

次の例では、以下の条件に該当する場合に構成レポートを要求する方法を示します。

  • 発信側と発信先のサービスが同じデータベース内に格納されている。

  • データベースがデータベース エンジンの既定のインスタンスに存在する。

  • ssbdiagnose が実行されるコンピューター上にインスタンスが存在する。

ON CONTRACT が指定されていないため、ssbdiagnose ユーティリティは、DEFAULT コントラクトを使用する構成を報告します。

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

B. 異なるコンピューター上の、同じログインを使用する 2 つのサービスの構成を確認する

次の例では、異なるコンピューター上に発信側と発信先のサービスが格納されており、そのサービスに同じ Windows 認証ログインを使用してアクセスできる場合に、構成レポートを要求する方法を示します。

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

C. 異なるコンピューター上の、個別のログインを使用する 2 つのサービスの構成を確認する

次の例では、異なるコンピューター上に発信側と発信先のサービスが格納されており、データベース エンジンの各インスタンスに個別の 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. 2 つのコントラクトの構成を確認する

次の例では、以下の条件に該当する場合に構成レポートを要求するコマンド ファイルの作成方法を示します。

  • 発信側と発信先のサービスが同じデータベース内に格納されている。

  • データベースがデータベース エンジンの既定のインスタンスに存在する。

  • 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. 2 台のコンピューターにまたがるメッセージ交換の状態を監視する

次の例では、異なるコンピューター上に発信側と発信先のサービスが格納されている場合に、特定のメッセージ交換を監視する方法を示します。

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. 同じインスタンス内の 2 つのデータベースにあるメッセージ交換の状態を監視する

次の例では、データベース エンジンの同じインスタンスにある異なるデータベースに発信側と発信先のサービスが格納されている場合に、特定のメッセージ交換を監視する方法を示します。この例では、baseconnectionoptions を使用してインスタンスとログインの情報を指定し、2 つの 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. 2 つのデータベース間の 2 つのメッセージ交換の状態を監視する

次の例では、データベース エンジンの同じインスタンスにある異なるデータベースに発信側と発信先のサービスが格納されている場合に、2 つのメッセージ交換を監視する方法を示します。この例では、baseconnectionoptions を使用してインスタンスとログインの情報を指定し、2 つの 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. 2 つのデータベース間のすべてのメッセージ交換の状態を監視する

次の例では、データベース エンジンの同じインスタンスにある 2 つのデータベース間で行われるすべてのメッセージ交換を監視する方法を示します。この例では、baseconnectionoptions を使用してインスタンスとログインの情報を指定し、2 つの 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 ファイルとして出力を生成するように要求する方法を示します。この XML ファイルはファイルにリダイレクトされます。その後、TestDiag.xml ファイルをアプリケーションで開いて、ssbdiagnose XML ファイルの分析またはレポート作成を行うことができます。また、XML Notepad などの一般的な XML エディターで表示することもできます。

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