служебная программа 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
переменные среды , SQLCMDUSER
SQLCMDPASSWORD
а 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
Связанный контент
- Service Broker
- 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)