다음을 통해 공유


ssbdiagnose 유틸리티(Service Broker)

적용 대상: SQL Server Azure SQL Managed Instance

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 출력은 사람이 읽을 수 있는 텍스트로 형식이 지정됩니다.

-수준 { 오류 | 경고 | 정보 }

보고할 메시지의 수준을 지정합니다.

설명
ERROR 오류 메시지만 보고합니다.
WARNING(기본값) 오류 및 경고 메시지를 보고합니다.
INFO 오류, 경고 및 정보 메시지를 보고합니다.

-IGNORE error_id

지정된 error_id 의 오류 또는 메시지가 보고서에 포함되지 않도록 지정합니다. -IGNORE를 여러 번 지정하여 여러 메시지 ID를 표시하지 않을 수 있습니다.

<baseconnectionoptions>

연결 옵션이 특정 절에 포함되지 않은 경우 ssbdiagnose에서 사용하는 기본 연결 정보를 지정합니다. 특정 절에 지정된 연결 정보는 baseconnectionoption 정보를 재정의합니다. 이 작업은 각 매개 변수에 대해 개별적으로 수행됩니다. 예를 들어 -S-dbaseconnetionoptions가 모두 지정되어 있고 -dtoconnetionoptions만 지정되어 있는 경우 ssbdiagnose-Sbaseconnetionoptions-dtoconnetionoptions를 사용합니다.

구성

Service Broker 서비스 쌍 간 구성 오류 또는 단일 서비스 구성 오류에 대한 보고서를 요청합니다.

FROM SERVICE service_name

대화를 시작하는 서비스를 지정합니다.

<fromconnectionoptions>

시작자 서비스를 보유하는 데이터베이스에 연결하는 데 필요한 정보를 지정합니다. fromconnectionoptions를 지정하지 않은 경우 ssbdiagnosebaseconnectionoptions의 연결 정보를 사용하여 초기화자 데이터베이스에 연결합니다. fromconnectionoptions가 지정된 경우 초기자 서비스를 포함하는 데이터베이스를 포함해야 합니다. fromconnectionoptions가 지정되지 않은 경우 baseconnectionoptions는 초기자 데이터베이스를 지정해야 합니다.

TO SERVICE service_name [ , broker_id ]

대화의 대상이 되는 서비스를 지정합니다.

service_name: 대상 서비스의 이름을 지정합니다.

broker_id: 대상 데이터베이스를 식별하는 Service Broker ID를 지정합니다. broker_id는 GUID입니다. 대상 데이터베이스에서 다음 쿼리를 실행하여 찾을 수 있습니다.

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

<toconnectionoptions>

대상 서비스를 보유하는 데이터베이스에 연결하는 데 필요한 정보를 지정합니다. toconnectionoptions를 지정하지 않은 경우 ssbdiagnosebaseconnectionoptions의 연결 정보를 사용하여 대상 데이터베이스에 연결합니다.

MIRROR

연결된 Service Broker 서비스가 미러된 데이터베이스에서 호스팅되도록 지정합니다. ssbdiagnose는 서비스에 대한 경로가 MIRROR_ADDRESSCREATE ROUTE가 지정된 미러링된 경로인지 확인합니다.

<mirrorconnectionoptions>

미러 데이터베이스에 연결하는 데 필요한 정보를 지정합니다. mirrorconnectionoptions를 지정하지 않은 경우 ssbdiagnosebaseconnectionoptions의 연결 정보를 사용하여 미러 데이터베이스에 연결합니다.

ON CONTRACT contract_name

ssbdiagnose 가 지정된 계약을 사용하는 구성만 검사하도록 요청합니다. ON CONTRACT를 지정하지 않으면 ssbdiagnoseDEFAULT라는 계약에 대해 보고합니다.

ENCRYPTION { ON | OFF | ANONYMOUS }

지정된 암호화 수준에 대해 대화 상자가 올바르게 구성되었는지 확인을 요청합니다.

  • ON: 기본 설정. 전체 대화 보안이 구성됩니다. 인증서가 대화의 양측에 배포되었고, 원격 서비스 바인딩이 있으며, 대상 서비스에 대한 GRANT SEND 문이 시작 사용자를 지정했습니다.

  • OFF: 대화 상자 보안이 구성되지 않았습니다. 인증서가 배포되지 않았고, 원격 서비스 바인딩이 생성되지 않았으며, 초기자 서비스에 대한 GRANT SENDpublic 역할을 지정했습니다.

  • ANONYMOUS: 익명 대화 상자 보안이 구성됩니다. 하나의 인증서가 배포되었고, 원격 서비스 바인딩이 익명 절을 지정했으며, 대상 서비스에 대한 GRANT SENDpublic 역할을 지정했습니다.

RUNTIME

Service Broker 대화에 대해 런타임 오류를 일으키는 문제에 대한 보고서를 요청합니다. -NEW 또는 -ID가 지정되지 않은 경우 ssbdiagnose는 연결 옵션에 지정된 모든 데이터베이스의 모든 대화를 모니터링합니다. -NEW 또는 -ID를 지정할 경우 ssbdiagnose는 매개 변수에 지정된 ID 목록을 작성합니다.

ssbdiagnose는 실행되는 동안 런타임 오류를 나타내는 모든 SQL Server Profiler 이벤트를 기록합니다. 즉, 지정된 ID에 대해 발생하는 이벤트뿐 아니라 시스템 수준 이벤트도 기록합니다. 런타임 오류가 발생하면 ssbdiagnose는 연결된 구성에서 구성 보고서를 실행합니다.

기본적으로 런타임 오류는 출력 보고서에 포함되지 않고 구성 분석의 결과만 포함됩니다. -SHOWEVENTS를 사용하여 런타임 오류를 보고서에 포함시킵니다.

-SHOWEVENTS

RUNTIME 보고 동안 ssbdiagnose가 SQL Server Profiler 이벤트를 보고하도록 지정합니다. 오류 조건으로 간주되는 이벤트만 보고됩니다. 기본적으로 ssbdiagnose 는 오류 이벤트를 모니터링만 하고 출력에 보고하지 않습니다.

  • -NEW: ssbdiagnose가 실행되기 시작한 후에 시작되는 첫 번째 대화의 런타임 모니터링을 요청합니다.

  • -ID: 지정된 대화 요소의 런타임 모니터링을 요청합니다. -ID은 여러 번 지정할 수 있습니다.

대화 핸들을 지정하면 연결된 대화 엔드포인트와 연결된 이벤트만 보고됩니다. 대화 ID를 지정하면 해당 대화와 해당 초기자 및 대상 엔드포인트에 대한 모든 이벤트가 보고됩니다. 대화 그룹 ID를 지정할 경우 대화 그룹에 있는 모든 대화와 엔드포인트에 대한 이벤트가 모두 보고됩니다.

conversation_handle

애플리케이션에서 대화 엔드포인트를 식별하는 고유 식별자입니다. 대화 핸들은 대화의 각 엔드포인트에 고유하기 때문에 시작자 엔드포인트와 대상 엔드포인트는 서로 다른 대화 핸들을 갖습니다.

대화 핸들은 BEGIN DIALOG 문의 @dialog_handle 매개 변수 및 conversation_handle 문의 결과 집합에 있는 RECEIVE 열을 통해 애플리케이션에 반환됩니다.

대화 핸들은 conversation_handlesys.transmission_queue 카탈로그 뷰의 sys.conversation_endpoints 열에 보고됩니다.

conversation_group_id

대화 그룹을 식별하는 고유 식별자입니다.

대화 그룹 ID는 GET CONVERSATION GROUP 문의 @conversation_group_id 매개 변수와 conversation_group_id 문의 결과 집합에 있는 RECEIVE 열에 의해 애플리케이션에 반환됩니다.

대화 그룹 ID는 conversation_group_idsys.conversation_groups 카탈로그 뷰의 sys.conversation_endpoints 열에 보고됩니다.

conversation_id

대화를 식별하는 고유 식별자입니다. 대화 ID는 대화의 초기자 및 대상 엔드포인트 모두에 대해 동일합니다.

대화 ID는 conversation_id 카탈로그 뷰의 sys.conversation_endpoints 열에 보고됩니다.

-TIMEOUT timeout_interval

RUNTIME 보고서가 실행되는 시간(초)을 지정합니다. -TIMEOUT을 지정하지 않을 경우 런타임 보고서가 무기한 실행됩니다. -TIMEOUTRUNTIME 보고서가 아닌 CONFIGURATION 보고서에만 사용됩니다. Ctrl+C를 사용하면 -TIMEOUT을 지정하지 않은 경우 ssbdiagnose를 종료하거나 시간- 제한 간격이 만료되기 전에 런타임 보고서를 종료할 수 있습니다. timeout_interval은 1에서 2,147,483,647 사이의 숫자여야 합니다.

<runtimeconnectionoptions>

모니터링 중인 대화 요소와 연결된 서비스를 포함하는 데이터베이스에 대한 연결 정보를 지정합니다. 모든 서비스가 동일한 데이터베이스에 있는 경우 하나의 CONNECT TO 절만 지정하면 됩니다. 서비스가 별도의 데이터베이스에 있는 경우 각 데이터베이스에 대한 CONNECT TO 절을 제공해야 합니다. runtimeconnectionoptions를 지정하지 않으면 ssbdiagnosebaseconnectionoptions의 연결 정보를 사용합니다.

E-

현재 Windows 계정을 로그인 ID로 사용하여 데이터베이스 엔진 인스턴스에 대해 Windows 인증 연결을 엽니다. 로그인은 sysadmin 고정 서버 역할의 멤버여야 합니다.

-E 옵션은 SQLCMDUSERSQLCMDPASSWORD 환경 변수의 사용자와 암호 설정을 무시합니다.

-E 또는 -U가 지정되지 않은 경우 ssbdiagnoseSQLCMDUSER 환경 변수의 값을 사용합니다. SQLCMDUSER도 설정되지 않은 경우 ssbdiagnose는 Windows 인증을 사용합니다.

-E 옵션과 함께 -U 옵션 또는 -P 옵션을 사용하면 오류 메시지가 생성됩니다.

-U login_id

지정된 로그인 ID를 사용하여 SQL Server 인증 연결을 엽니다. 로그인은 sysadmin 고정 서버 역할의 멤버여야 합니다.

-E 또는 -U가 지정되지 않은 경우 ssbdiagnoseSQLCMDUSER 환경 변수의 값을 사용합니다. SQLCMDUSER도 설정되지 않은 경우 ssbdiagnosessbdiagnose를 실행하는 사용자의 Windows 계정에 따라 Windows 인증 모드를 사용하여 연결을 시도합니다.

-U 옵션을 -E 옵션과 함께 사용하면 오류 메시지가 생성됩니다. -U 옵션 다음에 둘 이상의 인수를 지정하면 오류 메시지가 생성되고 프로그램이 종료됩니다.

-P 비밀번호

-U 로그인 ID의 암호를 지정합니다. 암호는 대/소문자를 구분합니다. -U 옵션이 사용되고 -P 옵션이 사용되지 않는 경우 ssbdiagnoseSQLCMDPASSWORD 환경 변수의 값을 사용합니다. SQLCMDPASSWORD도 설정하지 않을 경우 ssbdiagnose는 사용자에게 암호를 묻는 메시지를 표시합니다.

주의

SET SQLCMDPASSWORD 명령을 입력하면 화면에서 누구나 암호를 볼 수 있습니다.

암호 없이 -P 옵션을 지정하면 ssbdiagnose는 기본 암호(NULL)를 사용합니다.

Important

빈 비밀번호를 사용하지 마세요. 강력한 비밀번호를 사용하세요. 자세한 내용은 강력한 비밀번호를 참조하세요.

비밀번호 프롬프트는 Password:과 같이 콘솔에 출력되어 표시됩니다.

사용자 입력이 숨겨집니다. 즉, 아무 것도 표시되지 않으며 커서 위치가 유지됩니다.

-P 옵션과 함께 -E옵션을 사용하면 오류 메시지가 생성됩니다.

-P 옵션 다음에 둘 이상의 인수가 오면 오류 메시지가 생성됩니다.

-S server_name [ \instance_name ]

분석할 Service Broker 서비스를 보유한 데이터베이스 엔진의 인스턴스를 지정합니다.

해당 서버에 있는 기본 데이터베이스 엔진 인스턴스에 연결하려면 server_name을 지정합니다. 해당 서버에 있는 명명된 데이터베이스 엔진 인스턴스에 연결하려면 <server_name>\<instance_name>을 지정합니다. -S를 지정하지 않으면 ssbdiagnoseSQLCMDSERVER 환경 변수의 값을 사용합니다. SQLCMDSERVER도 설정하지 않을 경우 ssbdiagnose는 로컬 컴퓨터에 있는 기본 데이터베이스 엔진 인스턴스에 연결합니다.

-d database_name

분석할 Service Broker 서비스를 보유하는 데이터베이스를 지정합니다. 데이터베이스가 없을 경우에는 오류가 생성됩니다. -d를 지정하지 않으면 기본값은 로그인에 대한 기본 데이터베이스 속성에 지정된 데이터베이스입니다.

-l login_timeout

서버에 연결하려는 시도가 시간 초과되기 전의 시간(초)을 지정합니다. -l를 지정하지 않으면 ssbdiagnoseSQLCMDLOGINTIMEOUT 환경 변수에 대해 설정된 값을 사용합니다. SQLCMDLOGINTIMEOUT도 설정되지 않은 경우 기본 시간 제한은 30초입니다. 로그인 제한 시간은 0과 65534 사이의 숫자여야 합니다. 입력한 값이 숫자가 아니거나 해당 범위에 속하지 않는 경우 ssbdiagnose는 오류 메시지를 생성합니다. 0 값은 제한 시간을 무한으로 지정합니다.

-N encryption_option

연결이 암호화되도록 지정합니다. 가능한 값은 Optional, MandatoryStrict 입니다. 입력한 값은 원하는 최소 수준의 암호화를 나타냅니다. 기본값은 Mandatory입니다.

Mandatory 암호화를 선택하면 신뢰할 수 있는 인증 기관의 인증서를 사용해야 합니다. 자세한 내용은 SQL Server용 인증서 요구 사항를 참조하세요.

엄격한 암호화를 사용하려면 신뢰할 수 있는 루트 인증 기관에서 서명한 TLS 인증서로 SQL Server 데이터베이스 엔진을 구성해야 합니다.

-i hostname_in_certificate

서버 인증서 유효성 검사 중에 사용할 다른 예상 CN(일반 이름) 또는 SAN(주체 대체 이름)을 지정합니다. 이 옵션이 없으면 인증서 유효성 검사를 통해 인증서의 CN 또는 SAN이 연결 중인 서버 이름과 일치하는지 확인합니다. 예를 들어 DNS 별칭을 사용하는 경우 서버 이름이 CN 또는 SAN과 일치하지 않는 경우 이 매개 변수를 채울 수 있습니다.

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 명령 파일을 작성합니다.

런타임 보고

-RUNTIME을 지정할 경우 ssbdiagnoseruntimeconnectionoptionsbaseconnectionoptions에 지정된 모든 데이터베이스를 검색하여 Service Broker ID 목록을 작성합니다. 작성되는 전체 ID 목록은 다음과 같이 -NEW-ID가 어떻게 지정되는지에 따라 달라집니다.

  • -NEW 또는 -ID를 지정하지 않으면 목록에 연결 옵션에 지정된 모든 데이터베이스에 대한 모든 대화가 포함됩니다.

  • -NEW가 지정된 경우 ssbdiagnosessbdiagnose가 실행된 후 시작되는 첫 번째 대화에 대한 요소를 포함합니다. 여기에는 대상 대화 엔드포인트와 시작자 대화 엔드포인트 둘 다에 대한 대화 ID와 대화 핸들이 포함됩니다.

  • 대화 핸들을 사용하여 -ID를 지정하면 해당 핸들만 목록에 포함됩니다.

  • 대화 ID를 사용하여 -ID가 지정된 경우에는 두 대화 엔드포인트 모두에 대한 대화 ID와 핸들이 목록에 추가됩니다.

  • 대화 그룹 ID를 사용하여 -ID를 지정하면 해당 그룹의 모든 대화 ID와 대화 핸들이 목록에 추가됩니다.

이 목록에는 연결 옵션에서 다루지 않는 데이터베이스의 요소가 포함되지 않습니다. 예를 들어 -ID를 사용하여 대화 ID를 지정하지만 대상 데이터베이스가 아닌 초기자 데이터베이스에 대한 runtimeconnectionoptions 절만 제공한다고 가정합니다. ssbdiagnose 는 해당 ID 목록에 대화 ID와 초기자 대화 핸들만 포함하고 대상 대화 핸들을 포함하지 않습니다.

ssbdiagnose 모니터는 runtimeconnectionoptionsbaseconnectionoptions에 지정된 데이터베이스에서 SQL Server Profiler 이벤트를 모니터링합니다. 런타임 목록에 있는 하나 이상의 ID에서 오류가 발생했음을 나타내는 이벤트를 검색합니다. 또한 ssbdiagnose는 대화 그룹과 연관이 없는 시스템 수준 Service Broker 오류 이벤트를 검색합니다.

ssbdiagnose 는 대화 오류를 찾을 경우 구성 보고서를 추가로 실행하여 해당 이벤트의 근본 원인을 보고하려고 합니다. ssbdiagnose 는 데이터베이스의 메타데이터를 사용하여 해당 대화에 사용된 인스턴스, Service Broker ID, 데이터베이스, 서비스 및 계약을 파악한 다음 그런 다음 사용 가능한 모든 정보를 사용하여 구성 보고서를 실행합니다.

기본적으로 ssbdiagnose는 오류 이벤트를 보고하지 않습니다. 구성 검사 동안 발견된 기본 문제만 보고합니다. 이렇게 하면 보고된 정보의 양이 최소화되고 기본 구성 문제에 집중할 수 있습니다. -SHOWEVENTS를 지정하여 ssbdiagnose에서 발생한 오류 이벤트를 볼 수 있습니다.

ssbdiagnose에서 보고된 문제

ssbdiagnose는 세 가지 유형의 문제를 보고합니다. XML 출력 파일에서 각 클래스의 문제는 별도의 Issue 요소 형식으로 보고됩니다. ssbdiagnose에서 보고된 세 가지 유형의 문제는 다음과 같습니다.

  • Diagnosis: 구성 문제를 보고합니다. 여기에는 CONFIGURATION 보고서가 실행 중이거나 RUNTIME 보고서의 구성 단계에서 발견된 문제가 포함됩니다. ssbdiagnose는 각 구성 문제를 한 번 보고합니다.

  • Event: RUNTIME 보고 동안 모니터링 중인 대화에서 문제가 발생했음을 나타내는 SQL Server Profiler 이벤트를 보고합니다. ssbdiagnose는 이벤트가 생성될 때마다 이벤트를 보고합니다. 여러 대화에서 문제가 발생하는 경우 이벤트를 여러 번 보고할 수 있습니다.

  • Problem: ssbdiagnose가 구성 분석을 완료하지 못하거나 대화를 모니터링하지 못하게 하는 문제를 보고합니다.

SQLCMD 환경 변수

ssbdiagnose 유틸리티는 sqlcmd 유틸리티도 사용하는 SQLCMDSERVER, SQLCMDUSER, SQLCMDPASSWORDSQLCMDLOGINTIMOUT 환경 변수를 지원합니다. 환경 변수는 명령 프롬프트 SET 명령을 사용하여 설정하거나 sqlcmd를 사용하여 실행하는 Transact-SQL 스크립트에서 setvar 명령을 사용하여 설정할 수 있습니다. sqlcmd에서 setvar를 사용하는 방법에 대한 자세한 내용은 스크립팅 변수와 함께 sqlcmd 사용을 참조하세요.

사용 권한

connectionoptions 절에서 -E 또는 -U를 사용하여 지정된 로그인은 sysadmin에 지정된 인스턴스에 있는 -S 고정 서버 역할의 멤버여야 합니다.

예제

이 섹션에는 명령 프롬프트에서 ssbdiagnose를 사용하는 예제가 포함되어 있습니다.

A. 동일한 데이터베이스에 있는 두 서비스의 구성 확인

다음 예제에서는 다음이 true일 때 구성 보고서를 요청하는 방법을 보여줍니다.

  • 초기자와 대상 서비스가 동일한 데이터베이스에 있습니다.

  • 데이터베이스는 데이터베이스 엔진 기본 인스턴스에 있습니다.

  • 인스턴스는 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. 두 계약의 구성 확인

다음 예제에서는 다음이 true일 때 구성 보고서를 요청하는 명령 파일을 작성하는 방법을 보여줍니다.

  • 초기자와 대상 서비스가 동일한 데이터베이스에 있습니다.

  • 데이터베이스는 데이터베이스 엔진 기본 인스턴스에 있습니다.

  • 인스턴스는 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

9\. 두 데이터베이스 간의 두 대화 상태 모니터링

다음 예에서는 시작자 서비스와 대상 서비스가 동일한 데이터베이스 엔진 인스턴스의 서로 다른 데이터베이스에 있는 두 대화를 모니터링하는 방법을 보여 줍니다. 이 예제에서는 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

11. 특정 오류 무시

다음 예에서는 현재 테스트 시스템의 활성화 구성 방식에서 알려진 오류(303 및 304)를 무시하는 방법을 보여 줍니다.

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

12. ssbdiagnose XML 출력 리디렉션

다음 예제에서는 ssbdiagnose가 파일로 리디렉션되는 XML 파일로 출력을 생성하도록 요청하는 방법을 보여 줍니다. 이 예에서 생성하는 TestDiag.xml 파일은 나중에 ssbdiagnose XML 파일을 분석하거나 보고하는 애플리케이션을 사용하여 열거나 또는 XML Windows 메모장과 같은 일반 XML 편집기에서 볼 수 있습니다.

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

13. 환경 변수 사용

다음 예제에서는 먼저 SQLCMDSERVER 환경 변수를 설정하여 서버 이름을 보유하도록 한 다음 -S를 지정하지 않고 ssbdiagnose를 실행합니다.

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