Программа ssbdiagnose
Программа ssbdiagnose сообщает о неполадках в диалогах компонента Service Broker или в конфигурации служб компонента Service Broker. Проверка конфигурации может быть выполнена для одной или для двух служб. Сведения о неполадках могут выводиться в окно командной строки в виде удобочитаемого текста или в формате XML, который может быть перенаправлен в файл или в другую программу.
Синтаксис
ssbdiangose
[ [ -XML ]
[ -LEVEL { ERROR | WARNING | INFO } ]
[-IGNOREerror_id ] [ ...n]
[ <baseconnectionoptions> ]
{ <configurationreport> | <runtimereport> }
]
| -?
<configurationreport> ::=
CONFIGURATION
{ [ FROM SERVICEservice_name
[ <fromconnectionoptions> ]
[ MIRROR <mirrorconnectionoptions> ]
]
[ TO SERVICEservice_name[, broker_id ]
[ <toconnectionoptions> ]
[ MIRROR <mirrorconnectionoptions> ]
]
}
ON CONTRACTcontract_name
[ ENCRYPTION { ON | OFF | ANONYMOUS } ]
<runtime_report> ::=
RUNTIME
[-SHOWEVENTS ]
[ -NEW
[ -ID { conversation_handle
| conversation_group_id
| conversation_id
}
] [ ...n]
]
[ -TIMEOUTtimeout_interval ]
[ <runtimeconnectionoptions> ]
<baseconnectionoptions> ::=
<connectionoptions>
<fromconnectionoptions> ::=
<connectionoptions>
<toconnectionoptions> ::=
<connectionoptions>
<mirrorconnectionoptions> ::=
<connectionoptions>
<runtimeconnectionoptions> ::=
[ CONNECT TO <connectionoptions> ] [ ...n]
<connectionoptions> ::=
[ –E | { -Ulogin_id [ -Ppassword ] } ]
[ -Sserver_name[\instance_name] ]
[ -ddatabase_name ]
[ -llogin_timeout ]
Параметры командной строки
-XML
Указывает, что программа ssbdiagnose выводит результаты в виде отформатированного XML-кода. который может быть перенаправлен в файл или в другое приложение. Если -XML не задан, то программа ssbdiagnose выводит результат в виде немашинного (предназначенного для человека) текста.-LEVEL { ERROR | WARNING | INFO}
Определяет, какие типы сообщений включаются в отчет.ERROR: только сообщения об ошибке.
WARNING: сообщения об ошибках и предупреждения.
INFO: ошибки, предупреждения и информационные сообщения.
Значение по умолчанию равно WARNING.
-IGNOREerror_id
Указывает, что ошибки и сообщения, имеющие заданное значение error_id, не будут включены в отчет. Параметр -IGNORE можно указать несколько раз, чтобы запретить вывод сообщений с различными идентификаторами. Дополнительные сведения см. в разделе Справочник по ошибкам и событиям (компонент Service Broker).<baseconnectionoptions>
Задает основные сведения о соединении, которые используются программой ssbdiagnose, если параметры соединения не включены в конкретное предложение. Сведения о соединении, заданные в предложении, имеют больший приоритет, чем указанные в параметре baseconnectionoption. Приоритеты учитываются по каждому параметру отдельно. Например, если параметры -S и -d указаны в baseconnetionoptions, а в toconnetionoptions указан только параметр -d, то программа ssbdiagnose использует параметр -S из baseconnetionoptions и параметр -d из toconnetionoptions.CONFIGURATION
Запрашивает вывод отчета об ошибках конфигурации для одной службы или для пары служб компонента Service Broker.FROM SERVICEservice_name
Указывает службу, которая является инициатором диалога.<fromconnectionoptions>
Задает сведения, необходимые для соединения с базой данных, в которой находится вызывающая служба. Если fromconnectionoptions не заданы, то программа ssbdiagnose использует для подключения к инициирующей базе данных сведения о соединении из baseconnectionoptions. Если заданы fromconnectionoptions, то в них должна быть указана база данных, содержащая вызывающую службу. Если fromconnectionoptions не указаны, то инициирующая база данных должна быть указана в baseconnectionoptions.TO SERVICEservice_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 CONTRACTcontract_name
Требует, чтобы программа ssbdiagnose проверила только те конфигурации, в которых используется определенный контракт. Если параметр ON CONTRACT не указан, то программа ssbdiagnose работает с контрактом DEFAULT.ENCRYPTION { ON | OFF | ANONYMOUS }
Запрашивает проверку правильности настройки диалога для заданного уровня шифрования.ON: значение по умолчанию. Настраивается полная защита диалога. На обеих сторонах диалога производится развертывание сертификатов, присутствует привязка удаленной службы, а в инструкции GRANT SEND для целевой службы указывается вызывающий пользователь.
OFF: защита диалога не настраивается. Развертывание сертификатов не производится, привязка удаленной службы не была создана, а в инструкции GRANT SEND для вызывающей службы была указана роль public.
ANONYMOUS: настраивается защита диалога для анонимной работы. Один сертификат развернут, привязка удаленной службы указала анонимное предложение, а в инструкции GRANT SEND для целевой службы была указана роль public.
Дополнительные сведения см. в разделе Обеспечение безопасности диалогов компонента Service Broker.
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.
-TIMEOUTtimeout_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, то будет выдано сообщение об ошибке.
-Ulogin_id
Откройте соединение с проверкой подлинности SQL Server, указав заданный идентификатор входа. Имя входа должно быть членом предопределенной роли сервера sysadmin.Если не указан ни параметр -E, ни параметр -U, то программа ssbdiagnose использует значение из переменной среды SQLCMDUSER. Если переменная SQLCMDUSER также не задана, то программа ssbdiagnose пытается установить соединение в режиме проверки подлинности Windows на основании учетных данных Windows пользователя, запустившего программу ssbdiagnose.
Если параметр -U указан одновременно с параметром -E, то выдается сообщение об ошибке. Если после параметра –U указано более одного аргумента, то выдается сообщение об ошибке и программа завершает свою работу.
-Ppassword
Указывает пароль для идентификатора имени входа, заданного в параметре -U . Пароли учитывают регистр. Если параметр -U указан, а параметр -P не указан, то программа ssbdiagnose использует значение из переменной среды SQLCMDPASSWORD. Если переменная SQLCMDPASSWORD также не задана, то программа ssbdiagnose запросит пароль у пользователя.Примечание по безопасности Пароль, набираемый при вводе команды SET SQLCMDPASSWORD, будет отображаться на экране в открытом виде.
Если параметр -P задан, а пароль не указан, то программа ssbdiagnose использует пароль по умолчанию (NULL).
Примечание по безопасности Не используйте пустые пароли. Выбирайте надежные пароли. Дополнительные сведения см. в разделе Надежные пароли.
Запрос на ввод пароля выводится на консоль следующим образом: Password:
Вводимые пользователем данные на экране не отображаются, то есть символы не выводятся и курсор остается на месте.
Если параметр -P указан одновременно с параметром -E, то выдается сообщение об ошибке.
Если после параметра -P указано более одного аргумента, то выдается сообщение об ошибке.
-Sserver_name[\instance_name]
Задает экземпляр компонента Database Engine, где размещаются службы компонента Service Broker для анализа.Укажите значение server_name, чтобы соединиться с экземпляром компонента Database Engine по умолчанию на этом сервере. Укажите server_name**\**instance_name , чтобы соединиться с именованным экземпляром компонента Database Engine на этом сервере. Если параметр -S не указан, то программа ssbdiagnose использует значение переменной среды SQLCMDSERVER. Если переменная SQLCMDSERVER также не задана, то программа ssbdiagnose соединяется с экземпляром компонента Database Engine по умолчанию на локальном компьютере.
-ddatabase_name
Задает базу данных, где размещаются службы компонента Service Broker для анализа. Если такой базы данных не существует, то выдается ошибка. Если параметр -d не задан, то по умолчанию используется база данных, указанная в свойстве default-database текущего имени входа.-llogin_timeout
Указывает время ожидания соединения с сервером (в секундах). Если параметр -l не задан, то программа ssbdiagnose использует значение из переменной среды SQLCMDLOGINTIMEOUT. Если переменная SQLCMDLOGINTIMEOUT также не задана, то время ожидания по умолчанию составляет тридцать секунд. Время ожидания входа должно быть числом в диапазоне от 0 до 65 534. Если указанное значение не является числом или выходит за пределы указанного диапазона, то программа ssbdiagnose выдаст сообщение об ошибке. Значение 0 задает неограниченное время ожидания.-?
Отображает справку командной строки.
Замечания
Программа ssbdiagnose предназначена для выполнения следующих задач.
Проверка отсутствия ошибок конфигурации во вновь настроенном приложении компонента Service Broker.
Проверка отсутствия ошибок конфигурации после настройки существующего приложения компонента Service Broker.
Проверка отсутствия ошибок конфигурации после отсоединения базы данных компонента Service Broker и дальнейшего присоединения к новому экземпляру компонента Database Engine.
Выявление наличия ошибок конфигурации при возникновении неполадок при передаче сообщений между службами.
Выдача сообщений об ошибках, возникающих в наборе элементов диалогов компонента Service Broker.
Сведения об ошибках, возвращаемых программой ssbdiagnose, см. в разделе Справочник по ошибкам и событиям (компонент 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
См. также