Поделиться через


служебная программа ssbdiagnose (Service Broker)

Область применения: SQL Server Управляемый экземпляр SQL Azure

Программа 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 | ПРЕДУПРЕЖДЕНИЕ | ИНФОРМАЦИЯ }

Определяет, какие типы сообщений включаются в отчет.

значение Описание
ERROR Сообщите только об ошибках.
WARNING (по умолчанию) Сообщите об ошибках и предупреждениях.
INFO Сообщить об ошибках, предупреждениях и информационных сообщениях.

-IGNORE error_id

Указывает, что ошибки и сообщения, имеющие заданное значение error_id , не будут включены в отчет. Можно указать -IGNORE несколько раз, чтобы отключить несколько идентификаторов сообщений.

<базовые параметры подключения>

Указывает базовые сведения о подключении, используемые ssbdiagnose , если параметры подключения не включены в определенное предложение. Информация о подключении, содержащаяся в данной части предложения, переопределяет сведения baseconnectionoption. Это выполняется отдельно для каждого параметра. Например, если указаны и -S, и -d в baseconnectionoptions, а только -d указано в toconnectionoptions, ssbdiagnose использует -S из baseconnectionoptions, а также -d из toconnectionoptions.

КОНФИГУРАЦИЯ

Запрашивает отчет об ошибках конфигурации между парой служб Service Broker или для одной службы.

ИЗ СЕРВИСА service_name

Указывает службу, которая является инициатором диалога.

<изпараметрыподключения>

Задает сведения, необходимые для соединения с базой данных, в которой находится вызывающая служба. Если fromconnectionoptions не указан, ssbdiagnose использует сведения о подключении из baseconnectionoptions для подключения к базе данных инициатора. Если fromconnectionoptions указано, то оно должно включать базу данных, содержащую службу инициатора. Если fromconnectionoptions он не указан, baseconnectionoptions необходимо указать базу данных инициатора.

К СЕРВИСУ 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 целевой базы данных.

ЗЕРКАЛО

Указывает, что связанная служба Service Broker размещается в зеркальной базе данных. ssbdiagnose проверяет, что маршрут к службе является зеркальным маршрутом, где было указано MIRROR_ADDRESS на CREATE ROUTE.

<параметры подключения к зеркалу>

Позволяет задать сведения, необходимые для соединения с зеркальной базой данных. Если mirrorconnectionoptions не указан, ssbdiagnose использует сведения о подключении из baseconnectionoptions для подключения к зеркальной базе данных.

ON CONTRACT contract_name

Требует, чтобы программа ssbdiagnose проверила только те конфигурации, в которых используется указанный контракт. Если параметр ON CONTRACT не указан, ssbdiagnose сообщает о контракте с именем DEFAULT.

ШИФРОВАНИЕ { ВКЛ | ВЫКЛ | АНОНИМНЫЙ }

Запрашивает проверку правильности настройки диалога для заданного уровня шифрования.

  • ON: параметр по умолчанию. Настраивается полная защита диалога. Сертификаты были развернуты на обеих сторонах диалогового окна, привязка удаленной службы присутствует, а GRANT SEND инструкция целевой службы указала пользователя инициатора.

  • OFF: безопасность диалогов не настроена. Сертификаты не были развернуты, привязка удаленной службы не была создана, а GRANT SEND для службы инициатора указана общедоступная роль.

  • ANONYMOUS: настроена безопасность анонимного диалога. Был развернут один сертификат, привязка удаленной службы указала анонимный пункт, а GRANT SEND для целевой службы указала общедоступную роль.

RUNTIME

Запрашивает отчет о проблемах, вызывающих ошибки времени выполнения в диалоге Service Broker. Если либо -NEW, либо -ID не указаны, ssbdiagnose отслеживает все беседы во всех базах данных, указанных в параметрах подключения. Если -NEW или -ID задано, ssbdiagnose создает список идентификаторов, указанных в параметрах.

Во время работы программа ssbdiagnose записывает все события SQL Server Profiler, которые указывают на ошибки времени выполнения. Регистрируются события, происходящие для заданных идентификаторов, а также события системного уровня. При обнаружении ошибки времени выполнения программа ssbdiagnose запускает отчет по связанной конфигурации.

По умолчанию ошибки среды выполнения не включаются в выходной отчет, а только результаты анализа конфигурации. Используется -SHOWEVENTS для включения ошибок среды выполнения в отчет.

-SHOWEVENTS

Указывает, что ssbdiagnose фиксирует события SQL Server Profiler во время RUNTIME отчета. В отчет включаются только те события, которые считаются ошибками. По умолчанию ssbdiagnose отслеживает только события ошибок; он не сообщает их в выходных данных.

  • -NEW: запрашивает мониторинг среды выполнения первой беседы, которая начинается после запуска ssbdiagnose .

  • -ID: запрашивает мониторинг среды выполнения указанных элементов беседы. Можно указать -ID несколько раз.

Если указан идентификатор разговора, то в отчет будут включены только те события, которые связаны с соответствующей конечной точкой разговора. Если указан идентификатор диалога, то в отчет включены все события для этого диалога и его инициатора и целевой точки. Если задан идентификатор группы сообщений, то в отчет будут включены все события для всех диалогов и конечных точек в этой группе сообщений.

conversation_handle

Уникальный идентификатор, определяющий конечную точку диалога в приложении. Дескрипторы разговора уникальны для одной конечной точки разговора: инициирующая и целевая конечные точки имеют отдельные дескрипторы разговора.

Дескриптор беседы возвращается в приложения с помощью инструкции, а BEGIN DIALOG столбец в результирующем наборе инструкцииconversation_handle.

Дескрипторы беседы указываются в столбце conversation_handle представления каталога sys.transmission_queue и sys.conversation_endpoints.

conversation_group_id

Уникальный идентификатор, определяющий группу сообщений.

Идентификаторы групп бесед возвращаются приложениям параметром @conversation_group_id из GET CONVERSATION GROUP инструкции и столбцом conversation_group_id из результирующего набора RECEIVE инструкции.

Идентификаторы групп бесед сообщаются в conversation_group_id столбцах представлений sys.conversation_groups и sys.conversation_endpoints каталога.

conversation_id

Уникальный идентификатор, определяющий диалог. Для инициатора и получателя идентификаторы разговора одинаковы.

Идентификаторы разговоров отображаются в conversation_id столбце sys.conversation_endpoints представления каталога.

-TIMEOUT timeout_interval

Указывает количество секунд для запуска отчета RUNTIME. Если -TIMEOUT не указано, отчет выполнения запускается бесконечно. -TIMEOUT используется только для RUNTIME отчетов, а не CONFIGURATION отчетов. Используйте клавиши CTRL+C, чтобы выйти из ssbdiagnose, если -TIMEOUT не указано, или завершить отчет о выполнении до завершения интервала ожидания-. Параметрtimeout_interval должен быть числом от 1 до 2 147 483 647.

<опции подключения во время выполнения>

Задает сведения для соединения с базой данных, где содержатся службы, связанные с отслеживаемыми элементами диалога. Если все службы находятся в одной базе данных, необходимо указать только одно CONNECT TO предложение. Если службы находятся в отдельных базах данных, необходимо указать CONNECT TO предложение для каждой базы данных. Если runtimeconnectionoptions не указано, ssbdiagnose использует сведения о подключении из baseconnectionoptions.

-E

Откройте соединение, использующее аутентификацию Windows, с экземпляром службы СУБД, используя вашу текущую учетную запись Windows в качестве идентификатора входа. Имя входа должно быть членом sysadmin предопределенных ролей сервера.

Параметр -E игнорирует настройки пользователя и пароля переменных среды SQLCMDUSER и SQLCMDPASSWORD.

Если либо -E, либо -U не указано, ssbdiagnose использует значение из переменной среды SQLCMDUSER. Если SQLCMDUSER также не задан, ssbdiagnose использует аутентификацию Windows.

-E Если параметр используется вместе с -U параметром или -P параметром, создается сообщение об ошибке.

-U login_id

Откройте соединение, использующее проверку подлинности SQL Server, с помощью указанного идентификатора входа. Имя входа должно быть членом sysadmin предопределенных ролей сервера.

Если не указано ни -E, ни -U, то ssbdiagnose использует значение из переменной среды SQLCMDUSER. Если SQLCMDUSER также не задан, ssbdiagnose пытается подключиться, используя режим проверки подлинности Windows, основанный на учетной записи Windows пользователя, который запускает ssbdiagnose.

Если параметр -U используется вместе с параметром -E , создается сообщение об ошибке. -U Если за параметром следует несколько аргументов, создается сообщение об ошибке и программа завершает работу.

-P password

Указывает пароль для идентификатора -U входа. Пароли чувствительны к регистру. -U параметр используется, и -P параметр не используется, ssbdiagnose использует значение из переменной среды SQLCMDPASSWORD. Если SQLCMDPASSWORD параметр не задан, ssbdiagnose запрашивает у пользователя пароль.

Внимание

При вводе 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

Указывает количество секунд до истечения времени ожидания попытки подключения к серверу. Если значение -l не указано, ssbdiagnose использует установленное значение для переменной среды SQLCMDLOGINTIMEOUT. Если ни SQLCMDLOGINTIMEOUT, ни другое значение не задано, время ожидания по умолчанию — 30 секунд. Время ожидания входа должно быть числом в диапазоне от 0 до 65 534. Если указанное значение не является числовым или не попадает в этот диапазон, ssbdiagnose создает сообщение об ошибке. Значение 0 задает неограниченное время ожидания.

-N encryption_option

Указывает, что подключение зашифровано. Возможные значения: Optional, Mandatoryи Strict. Введенное значение представляет требуемый и минимальный уровень шифрования. Значение по умолчанию — 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 и последующего присоединения к новому экземпляру Database Engine отсутствуют ошибки конфигурации.

  • Исследуйте, есть ли ошибки конфигурации, когда сообщения не передаются успешно между службами.

  • Получить отчет о любых ошибках, возникающих в наборе элементов диалогов Service Broker.

Отчеты о конфигурации

Чтобы правильно проанализировать конфигурацию, используемую в диалоге, отчет о конфигурации в программе ssbdiagnose следует запускать с теми же параметрами, которые используются в диалоге. Если для ssbdiagnose указать параметры более низкого уровня, чем те, которые использует диалог, то ssbdiagnose может не сообщить о необходимых для диалога условиях. Если указать более высокий уровень параметров для ssbdiagnose, он может сообщать о элементах, которые не требуются беседе. Например, взаимодействие между двумя службами в одной базе данных может выполняться с помощью ENCRYPTION OFF. Если вы запускаете ssbdiagnose, чтобы проверить конфигурацию между двумя службами, но используете настройку по умолчанию ENCRYPTION ON, ssbdiagnose сообщает, что в базе данных отсутствует основной ключ. Главный ключ не требуется для беседы.

Отчет конфигурации ssbdiagnose анализирует только одну службу Service Broker или одну пару служб при каждом запуске. Чтобы создать отчет для нескольких пар служб Service Broker, создайте командный CMD-файл, который будет вызывать программу ssbdiagnose несколько раз.

Отчеты среды выполнения

При -RUNTIME указании ssbdiagnose выполняет поиск всех баз данных, указанных в runtimeconnectionoptions и baseconnectionoptions создание списка идентификаторов Service Broker. Полный список идентификаторов зависит от того, что указано для -NEW и -ID:

  • -NEW или -ID не указаны, список включает все беседы для всех баз данных, указанных в параметрах подключения.

  • Если -NEW задано, ssbdiagnose включает элементы для первой беседы, которая начинается после запуска ssbdiagnose. К таким элементам относятся идентификатор диалога и дескрипторы диалога для вызывающей и целевой конечных точек диалога.

  • Если -ID указан дескриптор беседы, в список входит только этот дескриптор.

  • Если -ID указан идентификатор беседы, идентификатор беседы и дескриптор для обеих конечных точек беседы добавляются в список.

  • Если -ID указан идентификатор группы бесед, все идентификаторы бесед и дескриптор бесед в этой группе добавляются в список.

Список не включает элементы из баз данных, которые не охватываются параметрами подключения. Например, предположим, что вы используете -ID для указания идентификатора беседы, но предоставляете runtimeconnectionoptions предложение только для базы данных инициатора, а не для целевой базы данных. ssbdiagnose не включает целевой дескриптор беседы в свой список идентификаторов, только идентификатор беседы и дескриптор беседы инициатора.

ssbdiagnose отслеживает события SQL Server Profiler из баз данных, охваченных runtimeconnectionoptions и baseconnectionoptions. Она выполняет поиск событий 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 поддерживает переменные среды SQLCMDSERVER, SQLCMDUSER, SQLCMDPASSWORD и SQLCMDLOGINTIMEOUT, которые также используются утилитой sqlcmd. Переменные среды можно задать с помощью команды командной строки SET или с помощью setvar команды в скриптах Transact-SQL, выполняемых с помощью sqlcmd. Дополнительные сведения об использовании setvar в sqlcmd см. в разделе "sqlcmd - Использование с переменными скриптов".

Разрешения

В каждом connectionoptions предложении имя входа, указанное либо в -E, либо в -U, должно быть членом фиксированной серверной роли sysadmin в экземпляре, указанном в -S.

Примеры

В этом разделе приведены примеры использования программы ssbdiagnose в командной строке.

А. Проверка конфигурации двух служб в одной базе данных

В этом примере показано, как запросить отчет о конфигурации, если выполняются следующие условия.

  • Инициирующая и целевая службы находятся в одной базе данных.

  • База данных в экземпляре ядра СУБД по умолчанию.

  • Экземпляры находятся на том же компьютере, где выполняется 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

В. Проверьте конфигурацию двух служб на отдельных компьютерах, использующих отдельные имена входа.

В следующем примере показано, как запросить отчет о конфигурации в том случае, когда вызывающая и целевая службы расположены на разных компьютерах и каждому из экземпляров ядра СУБД необходимо собственное имя входа для проверки подлинности 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

Е. Проверка конфигурации двух контрактов

В этом примере показано, как построить командный файл, запрашивающий отчет о конфигурации, если выполняются следующие условия.

  • Обе службы — инициатор и целевая — находятся в одной базе данных.

  • База данных в экземпляре ядра СУБД по умолчанию.

  • Экземпляр расположен на том же компьютере, на котором работает программа 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. Перенаправьте XML-выходные данные ssbdiagnose

В следующем примере показано, как запросить формирование программой ssbdiagnose выходного XML-файла, который перенаправляется в файл. Далее файл TestDiag.xml можно открыть в приложении, предназначенном для анализа XML-файлов программы ssbdiagnose или создания по ним отчетов. Кроме того, этот файл можно просмотреть в редакторе XML общего назначения, например в XML-блокноте.

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

М. Использование переменной среды

В следующем примере сначала устанавливается SQLCMDSERVER переменная среды для хранения имени сервера, а затем выполняется ssbdiagnose без указания -S.

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