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


служебная программа 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 | ПРЕДУПРЕЖДЕНИЕ | INFO }

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

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

-IGNORE error_id

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

<baseconnectionoptions>

Указывает базовые сведения о подключении, используемые ssbdiagnose , если параметры подключения не включены в определенное предложение. Сведения о подключении, указанные в определенном предложении, переопределяют baseconnectionoption сведения. Приоритеты учитываются по каждому параметру отдельно. Например, если оба -S и указано в baseconnetionoptions, а только -d указано в toconnetionoptions, ssbdiagnose используется -S из и -d из baseconnetionoptions toconnetionoptions.-d

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

Запрашивает вывод отчета об ошибках конфигурации для одной службы или для пары служб компонента 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 | АНОНИМНЫЙ }

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

  • 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

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

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

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

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

conversation_handle

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

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

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

conversation_group_id

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

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

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

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.

<runtimeconnectionoptions>

Задает сведения для соединения с базой данных, где содержатся службы, связанные с отслеживаемыми элементами диалога. Если все службы находятся в одной базе данных, необходимо указать только одно 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 и дальнейшего присоединения к новому экземпляру Service Broker.

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

  • Выдача сообщений об ошибках, возникающих в наборе элементов диалогов 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переменные среды , SQLCMDUSERSQLCMDPASSWORDа SQLCMDLOGINTIMOUT также переменные среды, которые также используются служебной программой 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

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

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

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

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

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

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

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

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

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