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


Программа ssbdiagnose (компонент Service Broker)

Программа 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 ]

Параметры командной строки

  • -XML
    Указывает, что вывод ssbdiagnose будет сформирован как форматированный XML. который может быть перенаправлен в файл или в другое приложение. Если -XML не указан, вывод ssbdiagnose форматируется в виде немашинного (предназначенного для человека) текста.

  • -LEVEL { ERROR | WARNING | INFO}
    Определяет, какие типы сообщений включаются в отчет.

    ERROR: только сообщения об ошибке.

    WARNING: сообщения об ошибках и предупреждения.

    INFO: ошибки, предупреждения и информационные сообщения.

    Значение по умолчанию равно WARNING.

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

  • <baseconnectionoptions>
    Задает основные сведения о соединении, которые используются программой ssbdiagnose, если параметры соединения не включены в конкретное предложение. Сведения о соединении, заданные в предложении, имеют больший приоритет, чем указанные в baseconnectionoption. Приоритеты учитываются по каждому параметру отдельно. Например, если оба -S и -d указаны в baseconnetionoptions и только -d указан в toconnetionoptions, ssbdiagnose использует -S из baseconnetionoptions и -d из toconnetionoptions.

  • 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 проверяет, является ли маршрут к службе зеркальным маршрутом, где в инструкции CREATE ROUTE был указан параметр MIRROR_ADDRESS.

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

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

  • ENCRYPTION { ON | OFF | ANONYMOUS }
    Запрашивает проверку правильности настройки диалога для заданного уровня шифрования.

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

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

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

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

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

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

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

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

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

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

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

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

    Дескрипторы диалогов отображаются в столбце 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 не используется). Программу ssbdiagnose можно завершить по нажатию сочетания клавиш CTRL+C, если параметр -TIMEOUT не указан, а также если нужно завершить отчет до истечения времени ожидания. Параметр timeout_interval должен быть числом от 1 до 2 147 483 647.

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

  • –E
    Откройте соединение с экземпляром компонента Компонент Database Engine, использующее проверку подлинности 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).

    Примечание по безопасностиПримечание по безопасности

    Не используйте пустые пароли. Выбирайте надежные пароли. Дополнительные сведения см. в разделе Надежные пароли.

    Запрос на ввод пароля выводится на консоль следующим образом: Password:

    Вводимые пользователем данные на экране не отображаются, то есть символы не выводятся и курсор остается на месте.

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

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

  • -S server_name[\instance_name]
    Задает экземпляр компонента Компонент Database Engine, где размещаются службы компонента Компонент Service Broker для анализа.

    Укажите значение server_name, чтобы соединиться с экземпляром компонента Компонент Database Engine по умолчанию на этом сервере. Укажите server_name**\**instance_name , чтобы соединиться с именованным экземпляром компонента Компонент Database Engine на этом сервере. Если параметр -S не указан, то программа ssbdiagnose использует значение переменной среды SQLCMDSERVER. Если переменная SQLCMDSERVER также не задана, то программа ssbdiagnose соединяется с экземпляром компонента Компонент Database Engine по умолчанию на локальном компьютере.

  • -d database_name
    Задает базу данных, где размещаются службы компонента Компонент Service Broker для анализа. Если такой базы данных не существует, то выдается ошибка. Если параметр -d не задан, то по умолчанию используется база данных, указанная в свойстве default-database текущего имени входа.

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

  • -?
    Отображает справку командной строки.

Замечания

Программа 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 сообщает об одной проблеме конфигурации один раз.

  • Событие
    Указывает на событие приложения Приложение SQL Server Profiler, которое сигнализирует о проблеме, обнаруженной в диалоге, который отслеживается отчетом RUNTIME. Программа ssbdiagnose сообщает о каждом случае создания таких событий. Если проблема обнаружена в нескольких диалогах, то событие может быть включено в отчет многократно.

  • Проблема
    Указывает на проблему, из-за которой программа ssbdiagnose не имеет возможности выполнять анализ конфигурации или мониторинга диалогов.

Переменные среды sqlcmd

Программа ssbdiagnose поддерживает переменные среды SQLCMDSERVER, SQLCMDUSER, SQLCMDPASSWORD и SQLCMDLOGINTIMEOUT, которые также используются программой sqlcmd. Они могут быть заданы при помощи команды командной строки SET или команды setvar в скриптах Transact-SQL, которые выполняются программой sqlcmd. Дополнительные сведения об использовании setvar в sqlcmd см. в разделе Использование программы sqlcmd с переменными скрипта.

Разрешения

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

Примеры

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

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

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

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

  • База данных размещена в экземпляре компонента Компонент Database Engine по умолчанию.

  • Экземпляр расположен на том же компьютере, на котором работает программа ssbdiagnose.

Программа ssbdiagnose строит отчет по конфигурации, использующей контракт DEFAULT, поскольку не указано предложение ON CONTRACT.

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

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

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

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

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

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

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

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

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

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

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

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

  • База данных размещена в экземпляре компонента Компонент Database Engine по умолчанию.

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

Е.Наблюдение за состоянием отдельного диалога на локальном компьютере с ограниченным временем ожидания

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

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

Ж.Наблюдение за состоянием диалога, в котором участвуют два компьютера

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

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

З.Наблюдение за состоянием диалога, в котором участвуют две базы данных, расположенные в одном экземпляре

В следующем примере показано, как запустить наблюдение за отдельным диалогом, где вызывающая и целевая службы находятся в разных базах данных, размещенных в одном экземпляре компонента Компонент Database Engine. В примере параметр 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

И.Наблюдение за состоянием двух диалогов между двумя базами данных

В следующем примере показано, как запустить наблюдение за двумя диалогами, где вызывающая и целевая службы находятся в разных базах данных, размещенных в одном экземпляре компонента Компонент Database Engine. В примере параметр 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

К.Наблюдение за состоянием всех диалогов между двумя базами данных

В следующем примере показано, как запустить наблюдение за всеми диалогами между двумя базами данных, расположенными в одном экземпляре компонента Компонент Database Engine. В примере параметр baseconnectionoptions указывает сведения об экземпляре и данные входа, а два предложения CONNECT TO указывают базы данных.

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

Л.Пропуск отдельных ошибок

В следующем примере показано, как пропустить обработку известных ошибок (303 и 304) в конфигурации активации, используемой в тестовой системе.

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

М.Перенаправление вывода 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

См. также

Справочник

BEGIN DIALOG CONVERSATION (Transact-SQL)

CREATE BROKER PRIORITY (Transact-SQL)

Инструкция CREATE CERTIFICATE (Transact-SQL)

Инструкция CREATE CONTRACT (Transact-SQL)

CREATE ENDPOINT (Transact-SQL)

CREATE MASTER KEY (Transact-SQL)

CREATE MESSAGE TYPE (Transact-SQL)

CREATE QUEUE (Transact-SQL)

CREATE REMOTE SERVICE BINDING (Transact-SQL)

CREATE ROUTE (Transact-SQL)

CREATE SERVICE (Transact-SQL)

RECEIVE (Transact-SQL)

sys.transmission_queue (Transact-SQL)

sys.conversation_endpoints (Transact-SQL)

sys.conversation_groups (Transact-SQL)

Основные понятия

Компонент SQL Server Service Broker