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

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server даБаза данных SQL Azure (только Управляемый экземпляр) нетAzure Synapse Analytics (хранилище данных SQL) нетParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database (Managed Instance only) noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Программа ssbdiagnose сообщает о проблемах в диалогах Компонент Service BrokerService Broker или в конфигурации службы Компонент Service BrokerService Broker .The ssbdiagnose utility reports issues in Компонент Service BrokerService Broker conversations or the configuration of Компонент Service BrokerService Broker services. Проверка конфигурации может быть выполнена для одной или для двух служб.Configuration checks can be made for either two services or a single service. Сведения о неполадках могут выводиться в окне командной строки в виде удобочитаемого текста или в формате XML, который может быть перенаправлен в файл или в другую программу.Issues are reported either in the command prompt window as human-readable text, or as formatted XML that can be redirected to a file or another program.

СинтаксисSyntax

  
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 ]  
  

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

-XML-XML
Указывает, что вывод ssbdiagnose будет создан как форматированный XML,Specifies that the ssbdiagnose output be generated as formatted XML. который может быть перенаправлен в файл или в другое приложение.This can be redirected to a file or to another application. Если параметр -XML не указан, вывод ssbdiagnose форматируется в виде удобочитаемого (для человека) текста.If -XML is not specified, the ssbdiagnose output is formatted as human-readable text.

-LEVEL { ERROR | WARNING | INFO}-LEVEL { ERROR | WARNING | INFO}
Определяет, какие типы сообщений включаются в отчет.Specifies the level of messages to report.

ERROR: только сообщения об ошибках.ERROR: report only error messages.

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

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

Значение по умолчанию — WARNING.The default setting is WARNING.

-IGNORE идентификатор_ошибки-IGNORE error_id
Указывает, что ошибки и сообщения, имеющие заданное значение error_id , не будут включены в отчет.Specifies that errors or messages that have the specified error_id not be included in reports. Параметр -IGNORE можно указать несколько раз, чтобы запретить вывод сообщений с различными идентификаторами.You can specify -IGNORE multiple times to suppress multiple message IDs.

<baseconnectionoptions><baseconnectionoptions>
Задает основные сведения о соединении, которые используются программой ssbdiagnose , если параметры соединения не включены в определенное предложение.Specifies the base connection information that is used by ssbdiagnose when connection options are not included in a specific clause. Сведения о соединении, заданные в специальном предложении, переопределяют сведения baseconnectionoption .The connection information that is given in a specific clause overrides the baseconnectionoption information. Приоритеты учитываются по каждому параметру отдельно.This is performed separately for each parameter. Например, если в baseconnetionoptions указываются оба параметра -S и -d, а в toconnetionoptions указывается только -d, то ssbdiagnose использует -S из baseconnetionoptions и -d из toconnetionoptions.For example, if both -S and -d are specified in baseconnetionoptions, and only -d is specified in toconnetionoptions, ssbdiagnose uses -S from baseconnetionoptions and -d from toconnetionoptions.

CONFIGURATIONCONFIGURATION
Запрашивает вывод отчета об ошибках конфигурации для одной службы или для пары служб компонента Компонент Service BrokerService Broker .Requests a report of configuration errors between a pair of Компонент Service BrokerService Broker services, or for a single service.

FROM SERVICE имя_службыFROM SERVICE service_name
Указывает службу, которая является инициатором диалога.Specifies the service that initiates conversations.

<fromconnectionoptions><fromconnectionoptions>
Задает сведения, необходимые для соединения с базой данных, в которой находится вызывающая служба.Specifies the information that is required to connect to the database that holds the initiator service. Если параметры fromconnectionoptions не указаны, то ssbdiagnose использует для подключения к базе данных инициатора сведения о соединении из baseconnectionoptions .If fromconnectionoptions is not specified, ssbdiagnose uses the connection information from baseconnectionoptions to connect to the initiator database. Если параметры fromconnectionoptions задаются, то в них должна быть указана база данных, содержащая службу инициатора.If fromconnectionoptions is specified it must include the database that contains the initiator service. Если параметры fromconnectionoptions не указываются, в baseconnectionoptions необходимо указать базу данных инициатора.If fromconnectionoptions is not specified, the baseconnectionoptions must specify the initiator database.

TO SERVICE имя_службы[, *идентификатор_брокера* ]TO SERVICE service_name[, broker_id ]
Указывает целевую службу для диалогов.Specifies the service that is the target for the conversations.

service_name: задает имя целевой службы.service_name: specifies the name of the target service.

broker_id: задает идентификатор Компонент Service BrokerService Broker , определяющий целевую базу данных.broker_id: specifies the Компонент Service BrokerService Broker ID that identifies the target database. broker_id — идентификатор GUID.broker_id is a GUID. Чтобы выяснить этот идентификатор, можно выполнить в целевой базе данных следующий запрос.You can run the following query in the target database to find it:

SELECT service_broker_guid  
FROM sys.databases  
WHERE database_id = DB_ID();  

<toconnectionoptions><toconnectionoptions>
Задает сведения, необходимые для соединения с базой данных, где размещается целевая служба.Specifies the information that is required to connect the database that holds the target service. Если параметры toconnectionoptions не указаны, то ssbdiagnose использует для подключения к целевой базе данных сведения о соединении из baseconnectionoptions .If toconnectionoptions is not specified, ssbdiagnose uses the connection information from baseconnectionoptions to connect to the target database.

MIRRORMIRROR
Указывает, что связанная служба Компонент Service BrokerService Broker размещается в зеркальной базе данных.Specifies that the associated Компонент Service BrokerService Broker service is hosted in a mirrored database. Программаssbdiagnose проверяет, является ли маршрут к службе зеркальным маршрутом, где в инструкции CREATE ROUTE был указан параметр MIRROR_ADDRESS.ssbdiagnose verifies that the route to the service is a mirrored route, where MIRROR_ADDRESS was specified on CREATE ROUTE.

<mirrorconnectionoptions><mirrorconnectionoptions>
Позволяет задать сведения, необходимые для соединения с зеркальной базой данных.Specifies the information that is required to connect to the mirror database. Если параметры mirrorconnectionoptions не указаны, то ssbdiagnose использует для подключения к зеркальной базе данных сведения о соединении из baseconnectionoptions .If mirrorconnectionoptions is not specified, ssbdiagnose uses the connection information from baseconnectionoptions to connect to the mirror database.

ON CONTRACT имя_контрактаON CONTRACT contract_name
Требует, чтобы программа ssbdiagnose проверила только те конфигурации, в которых используется указанный контракт.Requests that ssbdiagnose only check configurations that use the specified contract. Если параметр ON CONTRACT не указан, то программа ssbdiagnose работает с контрактом DEFAULT.If ON CONTRACT is not specified, ssbdiagnose reports on the contract named DEFAULT.

ENCRYPTION { ON | OFF | ANONYMOUS }ENCRYPTION { ON | OFF | ANONYMOUS }
Запрашивает проверку правильности настройки диалога для заданного уровня шифрования.Requests verification that the dialog is correctly configured for the specified level of encryption:

ON: Параметр по умолчанию.ON: Default setting. Настраивается полная защита диалога.Full dialog security is configured. На обеих сторонах диалога производится развертывание сертификатов, присутствует привязка удаленной службы, а в инструкции GRANT SEND для целевой службы указывается вызывающий пользователь.Certificates have been deployed on both sides of the dialog, a remote service binding is present, and the GRANT SEND statement for the target service specified the initiator user.

OFF: защита диалога не настраивается.OFF: No dialog security is configured. Развертывание сертификатов не выполняется, привязка удаленной службы не была создана, и в инструкции GRANT SEND для службы инициатора была указана роль public .No certificates have been deployed, no remote service binding was created, and the GRANT SEND for the initiator service specified the public role.

ANONYMOUS: защита диалога для анонимной работы настраивается.ANONYMOUS: Anonymous dialog security is configured. Один сертификат развернут, привязка удаленной службы указала анонимное предложение, а в инструкции GRANT SEND для целевой службы была указана роль public .One certificate has been deployed, the remote service binding specified the anonymous clause, and the GRANT SEND for the target service specified the public role.

RUNTIMERUNTIME
Запрашивает отчет о проблемах, вызывающих ошибки времени выполнения в диалоге компонента Компонент Service BrokerService Broker .Requests a report of issues that cause runtime errors for a Компонент Service BrokerService Broker conversation. Если не указан ни параметр -NEW , ни параметр -ID , то программа ssbdiagnose наблюдает за всеми диалогами во всех базах данных, указанных в параметрах соединения.If neither -NEW or -ID are specified, ssbdiagnose monitors all conversations in all databases specified in the connection options. Если указан параметр -NEW или -ID , то программа ssbdiagnose создает список идентификаторов, указанных в параметрах.If -NEW or -ID are specified, ssbdiagnose builds a list of the IDs specified in the parameters.

Во время работы программа ssbdiagnose записывает все события Приложение SQL Server ProfilerSQL Server Profiler , которые указывают на ошибки времени выполнения.While ssbdiagnose is running, it records all Приложение SQL Server ProfilerSQL Server Profiler events that indicate runtime errors. Регистрируются события, происходящие для заданных идентификаторов, а также события системного уровня.It records the events that occur for the specified IDs, plus system-level events. При обнаружении ошибки времени выполнения программа ssbdiagnose запускает отчет по связанной конфигурации.If runtime errors are encountered, ssbdiagnose runs a configuration report on the associated configuration.

По умолчанию в ошибки времени выполнения в выходной отчет не включаются. Отчет содержит только результаты анализа конфигурации.By default, runtime errors are not included in the output report, only the results of the configuration analysis. Чтобы включить в отчет ошибки времени выполнения, укажите параметр -SHOWEVENTS .Use -SHOWEVENTS to have the runtime errors included in the report.

-SHOWEVENTS-SHOWEVENTS
Указывает, что при создании отчета RUNTIME программа ssbdiagnose включает в него события Приложение SQL Server ProfilerSQL Server Profiler .Specifies that ssbdiagnose report Приложение SQL Server ProfilerSQL Server Profiler events during a RUNTIME report. В отчет включаются только те события, которые считаются ошибками.Only events that are considered error conditions are reported. По умолчанию программа ssbdiagnose только наблюдает за событиями ошибок, но не включает их в выходной отчет.By default, ssbdiagnose only monitors error events; it does not report them in the output.

-NEW-NEW
Запрашивает наблюдение за первым диалогом, который запускается после начала работы программы ssbdiagnose .Requests runtime monitoring of the first conversation that begins after ssbdiagnose starts running.

-ID-ID
Запрашивает мониторинг выполнения указанных элементов диалога.Requests runtime monitoring of the specified conversation elements. Параметр -ID можно указывать несколько раз.You can specify -ID multiple times.

Если указан дескриптор диалога, то в отчет будут включены только те события, которые связаны с соответствующей конечной точкой диалога.If you specify a conversation handle, only events associated with the associated conversation endpoint are reported. Если указан идентификатор диалога, то в отчет будут включены все события для этого диалога и его вызывающей и целевой конечных точек.If you specify a conversation ID, all events for that conversation and its initiator and target endpoints are reported. Если задан идентификатор группы сообщений, то в отчет будут включены все события для всех диалогов и конечных точек в этой группе сообщений.If a conversation group ID is specified, all events for all conversations and endpoints in the conversation group are reported.

conversation_handleconversation_handle
Уникальный идентификатор, определяющий конечную точку диалога в приложении.A unique identifier that identifies a conversation endpoint in an application. Дескрипторы диалога уникальны для одной конечной точки диалога. Вызывающая и целевая конечные точки имеют различные дескрипторы диалога.Conversation handles are unique to one endpoint of a conversation, the initiator and target endpoints have separate conversation handles.

Дескрипторы диалога возвращаются в приложения с помощью параметра @dialog_handle инструкции BEGIN DIALOG, а также в столбце conversation_handle результирующего набора инструкции RECEIVE.Conversation handles are returned to applications by the @dialog_handle parameter of the BEGIN DIALOG statement, and the conversation_handle column in the result set of a RECEIVE statement.

Дескрипторы диалогов отображаются в столбце conversation_handle представлений каталога sys.transmission_queue и sys.conversation_endpoints .Conversation handles are reported in the conversation_handle column of the sys.transmission_queue and sys.conversation_endpoints catalog views.

conversation_group_idconversation_group_id
Уникальный идентификатор, определяющий группу сообщений.The unique identifier that identifies a conversation group.

Идентификаторы групп диалогов возвращаются в приложения с помощью параметра @conversation_group_id инструкции GET CONVERSATION GROUP, а также в столбце conversation_group_id результирующего набора инструкции RECEIVE.Conversation group IDs are returned to applications by the @conversation_group_id parameter of the GET CONVERSATION GROUP statement and the conversation_group_id column in the result set of a RECEIVE statement.

Идентификаторы групп диалогов отображаются в столбцах conversation_group_id представлений каталога sys.conversation_groups и sys.conversation_endpoints .Conversation group IDs are reported in the conversation_group_id columns of the sys.conversation_groups and sys.conversation_endpoints catalog views.

conversation_idconversation_id
Уникальный идентификатор, определяющий диалог.The unique identifier that identifies a conversation. Для вызывающей и целевой конечных точек диалога идентификаторы диалога совпадают.Conversation IDs are the same for both the initiator and target endpoints of a conversation.

Идентификаторы диалогов отображаются в столбце conversation_id представления каталога sys.conversation_endpoints .Conversation IDs are reported in the conversation_id column of the sys.conversation_endpoints catalog view.

-TIMEOUT интервал_времени_ожидания-TIMEOUT timeout_interval
Задает время выполнения отчета RUNTIME в секундах.Specifies the number of seconds for a RUNTIME report to run. Если параметр -TIMEOUT не задан, то отчет может выполняться бесконечно долго.If -TIMEOUT is not specified the runtime report runs indefinitely. Параметр -TIMEOUT используется только для отчетов RUNTIME , а не для отчетов CONFIGURATION .-TIMEOUT is used only on RUNTIME reports, not CONFIGURATION reports. Работу программы ssbdiagnose можно завершить нажатием клавиш CTRL+C, если параметр -TIMEOUT не указан, а также если нужно завершить отчет до истечения времени ожидания - .Use ctrl + C to quit ssbdiagnose if -TIMEOUT was not specified or to end a runtime report before the time- out interval expires. Параметрtimeout_interval должен быть числом от 1 до 2 147 483 647.timeout_interval must be a number between 1 and 2,147,483,647.

<runtimeconnectionoptions><runtimeconnectionoptions>
Задает сведения для соединения с базой данных, где содержатся службы, связанные с отслеживаемыми элементами диалога.Specifies the connection information for the databases that contain the services associated with conversation elements being monitored. Если все службы расположены в одной базе данных, нужно указать только одно предложение CONNECT TO .If all the services are in the same database, you only have to specify one CONNECT TO clause. Если службы находятся в разных базах данных, то предложение CONNECT TO необходимо указать для каждой базы данных.If the services are in separate databases you must supply a CONNECT TO clause for each database. Если параметры runtimeconnectionoptions не указаны, то ssbdiagnose использует сведения о подключении из baseconnectionoptions.If runtimeconnectionoptions is not specified, ssbdiagnose uses the connection information from baseconnectionoptions.

-E-E
Откройте соединение с экземпляром компонента Компонент Database EngineDatabase Engine , использующее проверку подлинности Windows, указав текущую учетную запись Windows в качестве идентификатора входа.Open a Windows Authentication connection to an instance of the Компонент Database EngineDatabase Engine by using your current Windows account as the login ID. Имя входа должно быть членом предопределенной роли сервера sysadmin .The login must be a member of the sysadmin fixed-server role.

Параметр -E не учитывает имя пользователя и пароль, заданные в переменных среды SQLCMDUSER и SQLCMDPASSWORD.The -E option ignores the user and password settings of the SQLCMDUSER and SQLCMDPASSWORD environment variables.

Если не указан ни параметр -E , ни параметр -U , то программа ssbdiagnose использует значение из переменной среды SQLCMDUSER.If neither -E nor -U is specified, ssbdiagnose uses the value from the SQLCMDUSER environment variable. Если переменная SQLCMDUSER также не задана, то программа ssbdiagnose использует проверку подлинности Windows.If SQLCMDUSER is not set either, ssbdiagnose uses Windows Authentication.

Если параметр -E используется в сочетании с параметром -U или -P , выдается сообщение об ошибке.If the -E option is used together with the -U option or the -P option, an error message is generated.

-U идентификатор_входа-U login_id
Откройте соединение, использующее проверку подлинности SQL ServerSQL Server , с помощью указанного идентификатора входа.Open a SQL ServerSQL Server Authentication connection by using the specified login ID. Имя входа должно быть членом предопределенной роли сервера sysadmin .The login must be a member of the sysadmin fixed-server role.

Если не указан ни параметр -E , ни параметр -U , то программа ssbdiagnose использует значение из переменной среды SQLCMDUSER.If neither -E nor -U is specified, ssbdiagnose uses the value from the SQLCMDUSER environment variable. Если переменная SQLCMDUSER также не задана, то программа ssbdiagnose пытается установить соединение в режиме проверки подлинности Windows на основании учетных данных Windows пользователя, запустившего программу ssbdiagnose.If SQLCMDUSER is not set either, ssbdiagnose tries to connect by using Windows Authentication mode based on the Windows account of the user who is running ssbdiagnose.

Если параметр -U указан одновременно с параметром -E , то выдается сообщение об ошибке.If the -U option is used together with the -E option, an error message is generated. Если после параметра -U указано более одного аргумента, выдается сообщение об ошибке и программа завершает работу.If the -U option is followed by more than one argument, an error message is generated and the program exits.

-P пароль-P password
Указывает пароль для идентификатора имени входа -U .Specifies the password for the -U login ID. Пароли учитывают регистр.Passwords are case sensitive. Если параметр -U указан, а параметр -P не указан, то программа ssbdiagnose использует значение из переменной среды SQLCMDPASSWORD.If the -U option is used and the -P option is not used, ssbdiagnose uses the value from the SQLCMDPASSWORD environment variable. Если переменная SQLCMDPASSWORD также не задана, то программа ssbdiagnose запросит пароль у пользователя.If SQLCMDPASSWORD is not set either, ssbdiagnose prompts the user for a password.

Важно!

Пароль, набираемый при вводе команды SET SQLCMDPASSWORD, будет отображаться на экране в открытом виде.When you type a SET SQLCMDPASSWORD command, your password will be visible to anyone who can see your monitor.

Если параметр -P задан, а пароль не указан, то программа ssbdiagnose использует пароль по умолчанию (NULL).If the -P option is specified without a password ssbdiagnose uses the default password (NULL).

Важно!

Не используйте пустые пароли.Do not use a blank password. Выбирайте надежные пароли.Use a strong password. Дополнительные сведения см. в разделе Надежные пароли.For more information, see Strong Passwords.

Запрос на ввод пароля выводится на консоль следующим образом: Password:.The password prompt is displayed by printing the password prompt to the console, as follows: Password:

Вводимые пользователем данные на экране не отображаются,User input is hidden. то есть символы не выводятся и курсор остается на месте.This means that nothing is displayed and the cursor stays in position.

Если параметр -P указан одновременно с параметром -E , выдается сообщение об ошибке.If the -P option is used with the -E option, an error message is generated.

Если после параметра -P указано более одного аргумента, то выдается сообщение об ошибке.If the -P option is followed by more than one argument, an error message is generated.

-S имя_сервера[\*имя_экземпляра*]-S server_name[\instance_name]
Задает экземпляр компонента Компонент Database EngineDatabase Engine , где размещаются службы компонента Компонент Service BrokerService Broker для анализа.Specifies the instance of the Компонент Database EngineDatabase Engine that holds the Компонент Service BrokerService Broker services to be analyzed.

Укажите значение server_name , чтобы подключиться к экземпляру компонента Компонент Database EngineDatabase Engine по умолчанию на этом сервере.Specify server_name to connect to the default instance of the Компонент Database EngineDatabase Engine on that server. Укажите server_name \ instance_name, чтобы подключиться к именованному экземпляру Компонент Database EngineDatabase Engine на этом сервере.Specify server_name\instance_name to connect to a named instance of the Компонент Database EngineDatabase Engine on that server. Если параметр -S не указан, то программа ssbdiagnose использует значение переменной среды SQLCMDSERVER.If -S is not specified, ssbdiagnose uses the value of the SQLCMDSERVER environment variable. Если переменная SQLCMDSERVER также не задана, то программа ssbdiagnose соединяется с экземпляром компонента Компонент Database EngineDatabase Engine по умолчанию на локальном компьютере.If SQLCMDSERVER is not set either, ssbdiagnose connects to the default instance of the Компонент Database EngineDatabase Engine on the local computer.

-d имя_базы_данных-d database_name
Задает базу данных, где размещаются службы компонента Компонент Service BrokerService Broker для анализа.Specifies the database that holds the Компонент Service BrokerService Broker services to be analyzed. Если такой базы данных не существует, то выдается ошибка.If the database does not exist, an error message is generated. Если параметр -d не задан, то по умолчанию используется база данных, указанная в свойстве default-database текущего имени входа.If -d is not specified, the default is the database specified in the default-database property for your login.

-l время_ожидания_входа-l login_timeout
Указывает время ожидания соединения с сервером (в секундах). Если параметр -l не задан, то программа ssbdiagnose использует значение из переменной среды SQLCMDLOGINTIMEOUT.Specifies the number of seconds before an attempt to connect to a server times out. If -l is not specified, ssbdiagnose uses the value set for the SQLCMDLOGINTIMEOUT environment variable. Если переменная SQLCMDLOGINTIMEOUT также не задана, то время ожидания по умолчанию составляет тридцать секунд.If SQLCMDLOGINTIMEOUT is not set either, the default time-out is thirty seconds. Время ожидания входа должно быть числом в диапазоне от 0 до 65 534.The login time-out must be a number between 0 and 65534. Если указанное значение не является числом или выходит за пределы указанного диапазона, то программа ssbdiagnose выдаст сообщение об ошибке.If the value that is supplied is not numeric or does not fall into that range, ssbdiagnose generates an error message. Значение 0 задает неограниченное время ожидания.A value of 0 specifies time-out to be infinite.

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

RemarksRemarks

Программа ssbdiagnose предназначена для выполнения следующих задач.Use ssbdiagnose to do the following:

  • Проверка отсутствия ошибок конфигурации во вновь настроенном приложении компонента Компонент Service BrokerService Broker .Confirm that there are no configuration errors in a newly configured Компонент Service BrokerService Broker application.

  • Проверка отсутствия ошибок конфигурации после настройки существующего приложения компонента Компонент Service BrokerService Broker .Confirm that there are no configuration errors after changing the configuration of an existing Компонент Service BrokerService Broker application.

  • Проверка отсутствия ошибок конфигурации после отсоединения базы данных компонента Компонент Service BrokerService Broker и дальнейшего присоединения к новому экземпляру компонента Компонент Database EngineDatabase Engine.Confirm that there are no configuration errors after a Компонент Service BrokerService Broker database is detached and then reattached to a new instance of the Компонент Database EngineDatabase Engine.

  • Выявление наличия ошибок конфигурации при возникновении неполадок при передаче сообщений между службами.Research whether there are configuration errors when messages are not successfully transmitted between services.

  • Выдача сообщений об ошибках, возникающих в наборе элементов диалогов компонента Компонент Service BrokerService Broker .Get a report of any errors that occur in a set of Компонент Service BrokerService Broker conversation elements.

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

Чтобы правильно проанализировать конфигурацию, используемую в диалоге, отчет о конфигурации в программе ssbdiagnose следует запускать с теми же параметрами, которые используются в диалоге.To correctly analyze the configuration used by a conversation, run a ssbdiagnose configuration report that uses the same options that are used by the conversation. Если в программе ssbdiagnose заданы параметры более низкого уровня, чем те, которые используются в диалоге, то программа ssbdiagnose может не зарегистрировать ошибки, которые могут возникнуть в диалоге.If you specify a lower level of options for ssbdiagnose than are used by the conversation, ssbdiagnose might not report conditions that are required by the conversation. Если же задать в программе ssbdiagnoseпараметры более высокого уровня, то она может обнаружить проблемы в ситуациях, которые никогда в диалоге не возникнут.If you specify a higher level of options for ssbdiagnose, it might report items that are not required by the conversation. Например, диалог между двумя службами, расположенными в одной базе данных, можно запустить с указанием параметра ENCRYPTION OFF.For example, a conversation between two services in the same database can be run with ENCPRYPTION OFF. Если запустить программу ssbdiagnose для проверки конфигурации диалога между этими двумя службами и указать значение по умолчанию ENCRYPTION ON, то программа ssbdiagnose сообщит об отсутствии главного ключа в базе данных,If you run ssbdiagnose to validate the configuration between the two services, but use the default ENCRYPTION ON setting, ssbdiagnose reports that the database is missing a master key. хотя для этого диалога главный ключ не нужен.A master key is not required for the conversation.

При каждом запуске программы ssbdiagnose для составления отчетов о конфигурации выполняется анализ либо одной службы, либо одной пары служб компонента Компонент Service BrokerService Broker .The ssbdiagnose configuration report analyzes only one Компонент Service BrokerService Broker service or a single pair of services every time it is run. Чтобы создать отчет для нескольких пар служб компонента Компонент Service BrokerService Broker , создайте командный CMD-файл, который будет вызывать программу ssbdiagnose несколько раз.To report on multiple pairs of Компонент Service BrokerService Broker services, build a .cmd command file that calls ssbdiagnose multiple times.

Отчеты времени выполненияRuntime Reporting

Если указан параметр -RUNTIME, программа ssbdiagnose выполняет поиск всех баз данных, указанных в runtimeconnectionoptions и baseconnectionoptions , для построения списка идентификаторов Компонент Service BrokerService Broker .When -RUNTIME is specified, ssbdiagnose searches all databases specified in runtimeconnectionoptions and baseconnectionoptions to build a list of Компонент Service BrokerService Broker IDs. Полное содержимое списка зависит от значений, заданных для параметров -NEW и -ID.The full list of IDs built depends on what is specified for -NEW and -ID:

  • Если не указан ни параметр -NEW , ни параметр -ID , то в список будут включены все диалоги во всех базах данных, указанных в параметрах соединения.If neither -NEW or -ID are specified, the list includes all conversations for all databases specified in the connection options.

  • Если указан параметр -NEW , то программа ssbdiagnose включает в список элементы для первого диалога, который начинается после запуска программы ssbdiagnose .If -NEW is specified, ssbdiagnose includes the elements for the first conversation that starts after ssbdiagnose is run. К таким элементам относятся идентификатор диалога и дескрипторы диалога для вызывающей и целевой конечных точек диалога.This includes the conversation ID and the conversation handles for both the target and initiator conversation endpoints.

  • Если параметр -ID указан с дескриптором диалога, то в список будет включен только этот дескриптор.If -ID is specified with a conversation handle, only that handle is included in the list.

  • Если параметр -ID указан с идентификатором диалога, то в список будет добавлен этот идентификатор и дескрипторы для обеих конечных точек соответствующего диалога.If -ID is specified with a conversation ID, the conversation ID and the handles for both of its conversation endpoints are added to the list.

  • Если параметр -ID указан с идентификатором группы диалогов, то в список будут добавлены все идентификаторы диалогов и все дескрипторы диалогов, входящих в эту группу.If -ID is specified with a conversation group ID, all the conversation IDs and conversation handles in that group are added to the list.

В список не включаются элементы, находящиеся в базах данных, которые не указаны в параметрах соединения.The list does not include elements from databases that are not covered by the connection options. Например, предположим, что в параметре -ID указан идентификатор диалога, а предложение runtimeconnectionoptions задано для базы данных инициатора и не задано для целевой базы данных.For example, assume that you use -ID to specify a conversation ID, but only provide a runtimeconnectionoptions clause for the initiator database and not the target database. Программаssbdiagnose не включит дескриптор целевого диалога в свой список идентификаторов. В список будет включен только идентификатор диалога и дескриптор инициатора диалога.ssbdiagnose will not include the target conversation handle in its list of IDs, only the conversation ID and the initiator conversation handle.

Программаssbdiagnose наблюдает за событиями Приложение SQL Server ProfilerSQL Server Profiler в базах данных, охватываемых runtimeconnectionoptions и baseconnectionoptions.ssbdiagnose monitors the Приложение SQL Server ProfilerSQL Server Profiler events from the databases covered by runtimeconnectionoptions and baseconnectionoptions. Она выполняет поиск событий Компонент Service BrokerService Broker , указывающих на ошибку, обнаруженную одним или несколькими идентификаторами Компонент Service BrokerService Broker в списке времени выполнения.It searches for Компонент Service BrokerService Broker events that indicate an error was encountered by one or more of the Компонент Service BrokerService Broker IDs in the runtime list. Программа ssbdiagnoseКомпонент Service BrokerService Broker, кроме того, выполняет поиск событий ошибок системного уровня, не связанных ни с одной из групп диалогов.ssbdiagnose also searches for system-level Компонент Service BrokerService Broker error events not specifically associated with any conversation group.

Если программа ssbdiagnose обнаружит ошибки диалога, то предпримет попытку выяснить их первопричину, запустив отчет о конфигурации.If ssbdiagnose finds conversation errors, the utility will attempt to report on the root cause of the events by also running a configuration report. Программаssbdiagnose на основе метаданных баз данных определяет, какие экземпляры, идентификаторы Компонент Service BrokerService Broker , базы данных, службы и контракты используются в диалоге.ssbdiagnose uses the metadata in the databases to try to determine the instances, Компонент Service BrokerService Broker IDs, databases, services, and contracts used by the conversation. Затем запускается отчет о конфигурации, учитывающий все доступные сведения.It then runs a configuration report using all available information.

По умолчанию программа ssbdiagnose не сообщает о событиях ошибок.By default, ssbdiagnose does not report error events. Она сообщает только об исходных проблемах, выявленных в процессе проверки конфигурации.It only reports the underlying issues found during the configuration check. Это сокращает объем включаемых в отчет сведений и позволяет сосредоточить внимание на первопричинах возникновения проблем конфигурации.This minimizes the amount of information reported and helps you focus on the underlying configuration issues. Можно задать параметр -SHOWEVENTS , чтобы вывести обнаруженные программой ssbdiagnoseсобытия ошибок.You can specify -SHOWEVENTS to see the error events encountered by ssbdiagnose.

Неполадки, о которых сообщает программа ssbdiagnoseIssues Reported by ssbdiagnose

Программаssbdiagnose включает в отчет неполадки трех типов.ssbdiagnose reports three classes of issues. Каждый класс неполадок включается в выходной XML-файл в виде отдельного элемента Issue.In the XML output file, each class of issue is reported as a separate type of the Issue element. Далее перечислены три типа неполадок, о которых сообщает программа ssbdiagnose .The three types of issues reported by ssbdiagnose are as follows:

DiagnosisDiagnosis
Указывает на проблемы конфигурации.Reports a configuration issue. К ним относятся проблемы, обнаруженные во время выполнения отчета CONFIGURATION или во время этапа конфигурации отчета RUNTIME .This includes issues found either a CONFIGURATION report is running, or during the configuration phase of a RUNTIME report. Программаssbdiagnose сообщает о каждой проблеме конфигурации один раз.ssbdiagnose reports each configuration issue one time.

СобытиеEvent
Сообщает о событии Приложение SQL Server ProfilerSQL Server Profiler , сигнализирующем о проблеме, обнаруженной в диалоге, который отслеживается отчетом RUNTIME .Reports a Приложение SQL Server ProfilerSQL Server Profiler event that indicates a problem was encountered by a conversation being monitored during a RUNTIME report. Программаssbdiagnose сообщает о каждом случае создания таких событий.ssbdiagnose reports events every time they are generated. Если проблема обнаружена в нескольких диалогах, то событие может быть включено в отчет многократно.Events can be reported multiple times if several conversations encounter the problem.

Проблема.Problem
Сообщает о проблеме, из-за которой программа ssbdiagnose не имеет возможности выполнять анализ конфигурации или мониторинг диалогов.Reports an issue that is preventing ssbdiagnose from completing a configuration analysis or from monitoring conversations.

Переменные среды sqlcmdsqlcmd Environment Variables

Программа ssbdiagnose поддерживает переменные среды SQLCMDSERVER, SQLCMDUSER, SQLCMDPASSWORD и SQLCMDLOGINTIMEOUT, которые также используются программой sqlcmd .The ssbdiagnose utility supports the SQLCMDSERVER, SQLCMDUSER, SQLCMDPASSWORD, and SQLCMDLOGINTIMOUT environment variables that are also used by the sqlcmd utility. Они могут быть заданы при помощи команды командной строки SET или команды setvar в скриптах Transact-SQLTransact-SQL , которые выполняются программой sqlcmd.You can set the environment variables either by using the command prompt SET command, or by using the setvar command in Transact-SQLTransact-SQL scripts that you run by using sqlcmd. Дополнительные сведения об использовании setvar в sqlcmdсм. в разделе Использование программы sqlcmd с переменными скрипта.For more information about how to use setvar in sqlcmd, see Use sqlcmd with Scripting Variables.

РазрешенияPermissions

В каждом предложении connectionoptions имя входа, указанное в параметре -E или -U , должно быть членом предопределенной роли сервера sysadmin для экземпляра, указанного в параметре -S.In each connectionoptions clause, the login specified with either -E or -U must be a member of the sysadmin fixed-server role in the instance specified in -S.

ПримерыExamples

В этом разделе приведены примеры использования программы ssbdiagnose в командной строке.This section contains examples of using ssbdiagnose at a command prompt.

A.A. Проверка конфигурации двух служб, расположенных в одной базе данныхChecking the Configuration of Two Services in the Same Database

В этом примере показано, как запросить отчет о конфигурации, если выполняются следующие условия.The following example shows how to request a configuration report when the following are true;

  • Вызывающая и целевая службы размещаются в одной базе данных.The initiator and target service are in the same database.

  • База данных размещена в экземпляре компонента Компонент Database EngineDatabase Engineпо умолчанию.The database is in the default instance of the Компонент Database EngineDatabase Engine.

  • Экземпляры расположены на том же компьютере, на котором работает программа ssbdiagnose .The instances is on the same computer on which ssbdiagnose is run.

Программа ssbdiagnose строит отчет по конфигурации, использующей контракт DEFAULT, поскольку не указано предложение ON CONTRACT.The ssbdiagnose utility reports the configuration that uses the DEFAULT contract because ON CONTRACT is not specified.

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

Б.B. Проверка конфигурации двух служб, расположенных на разных компьютерах, использующих одно имя входаChecking the Configuration of Two Services on Separate Computers That Use One Login

В следующем примере показано, как запросить отчет о конфигурации в том случае, если вызывающая и целевая службы расположены на разных компьютерах, но к ним возможен доступ с помощью одного имени входа, проходящего проверку подлинности Windows.The following example shows how to request a configuration report when the initiator and target service are on separate computers, but can be accessed by using the same Windows Authentication login.

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

В.C. Проверка конфигурации двух служб, расположенных на разных компьютерах, использующих различные имена входаChecking the Configuration of Two Services on Separate Computers That Use Separate Logins

В следующем примере показано, как запросить отчет о конфигурации в том случае, когда вызывающая и целевая службы расположены на разных компьютерах и каждому из экземпляров компонента SQL ServerSQL Server необходимо собственное имя входа для проверки подлинности Компонент Database EngineDatabase Engine.The following example shows how to request a configuration report when the initiator and target service are on separate computers, and separate SQL ServerSQL Server Authentication logins are required for each instance of the Компонент Database EngineDatabase Engine.

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. Проверка конфигурации для нескольких компьютеров, в которой участвует зеркальная служба и используется анонимное шифрованиеChecking Mirrored Service Configurations on Separate Computers With Anonymous Encryption

В следующем примере показано, как запросить отчет о конфигурации в том случае, когда вызывающая и целевая службы расположены на разных компьютерах, а для вызывающей службы существует зеркальная копия на именованном экземпляре.The following example shows how to request a configuration report when the initiator and target service are on separate computers and the initiator is mirrored to a named instance. В ходе отчета также проверяется, что службы настроены для использования анонимного шифрования.The report also verifies that the services are configured to use anonymous encryption.

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  

Д.E. Проверка конфигурации двух контрактовChecking the Configuration of Two Contracts

В этом примере показано, как построить командный файл, запрашивающий отчет о конфигурации, если выполняются следующие условия.The following example shows how to build a command file that requests configuration reports when the following are true:

  • Вызывающая и целевая службы размещаются в одной базе данных.The initiator and target service are in the same database.

  • База данных размещена в экземпляре компонента Компонент Database EngineDatabase Engineпо умолчанию.The database is in the default instance of the Компонент Database EngineDatabase Engine.

  • Экземпляр расположен на том же компьютере, на котором работает программа ssbdiagnose .The instance is on the same computer on which ssbdiagnose is run.

При каждом запуске программы ssbdiagnose она формирует отчет по конфигурации отдельного контракта, действующего между одними и теми же службами.Each time ssbdiagnose is run it reports the configuration for a different contract between the same services.

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. Наблюдение за состоянием отдельного диалога на локальном компьютере с ограниченным временем ожиданияMonitor the status of a specific conversation on the local computer with a time out

В следующем примере показано, как запустить наблюдение за отдельным диалогом, где вызывающая и целевая службы расположены в одной базе данных на экземпляре по умолчанию, который работает на том же компьютере, где запускается программа ssbdiagnose.The following example shows how to monitor a specific conversation where the initiator and target services are in the same database in the default instance of the same computer that is running ssbdiagnose. Время ожидания устанавливается в значение 20 секунд.The time-out interval is set to 20 seconds.

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

Ж.G. Наблюдение за состоянием диалога, в котором участвуют два компьютераMonitor the status of a conversation that spans two computers

В следующем примере показано, как запустить наблюдение за отдельным диалогом, где вызывающая и целевая службы расположены на разных компьютерах.The following example shows how to monitor a specific conversation where the initiator and target services are on separate computers.

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. Наблюдение за состоянием диалога, в котором участвуют две базы данных, расположенные в одном экземпляреMonitor the status of a conversation in two databases in the same instance

В следующем примере показано, как запустить наблюдение за отдельным диалогом, где вызывающая и целевая службы находятся в разных базах данных, размещенных в одном экземпляре компонента Компонент Database EngineDatabase Engine.The following example shows how to monitor a specific conversation where the initiator and target services are in separate databases in the same instance of the Компонент Database EngineDatabase Engine. В этом примере параметр baseconnectionoptions указывает сведения об экземпляре и данные входа, а два предложения CONNECT TO указывают базы данных.The example uses the baseconnectionoptions to specify the instance and login information, and two CONNECT TO clauses to specify the databases. Кроме того, указан параметр -SHOWEVENTS, согласно которому в отчет включаются все события времени выполнения.-SHOWEVENTS is specified so that all runtime events are included in the report output.

ssbdiagnose -E -S TestComputer/DevTestInstance RUNTIME -SHOWEVENTS   
-ID 5094d4a7-e38c-4c37-da37-1d58b1cb8455 -TIMEOUT 10 CONNECT TO   
-d InitiatorDatabase CONNECT TO -d TargetDatabase  

И.I. Наблюдение за состоянием двух диалогов между двумя базами данныхMonitor the status of two conversations between two databases

В следующем примере показано, как запустить наблюдение за двумя диалогами, где вызывающая и целевая службы находятся в разных базах данных, размещенных в одном экземпляре компонента Компонент Database EngineDatabase Engine.The following example shows how to monitor two conversations where the initiator and target services are in separate databases in the same instance of the Компонент Database EngineDatabase Engine. В этом примере параметр baseconnectionoptions указывает сведения об экземпляре и данные входа, а два предложения CONNECT TO указывают базы данных.The example uses the baseconnectionoptions to specify the instance and login information, and two CONNECT TO clauses to specify the databases.

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. Наблюдение за состоянием всех диалогов между двумя базами данныхMonitor the status of all conversations between two databases

В следующем примере показано, как запустить наблюдение за всеми диалогами между двумя базами данных, расположенными в одном экземпляре компонента Компонент Database EngineDatabase Engine.The following example shows how to monitor all the conversation between two databases in the same instance of the Компонент Database EngineDatabase Engine. В этом примере параметр baseconnectionoptions указывает сведения об экземпляре и данные входа, а два предложения CONNECT TO указывают базы данных.The example uses the baseconnectionoptions to specify the instance and login information, and two CONNECT TO clauses to specify the databases.

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

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

В следующем примере показано, как пропустить обработку известных ошибок (303 и 304) в конфигурации активации, используемой в тестовой системе.The following example shows how to ignore known errors (303 and 304) in how activation is currently configured in a test system.

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

М.L. Перенаправление вывода XML программы ssbdiagnoseRedirecting ssbdiagnose XML Output

В следующем примере показано, как запросить формирование программой ssbdiagnose выходного XML-файла, который перенаправляется в файл.The following example shows how to request that ssbdiagnose generate its output as an XML file that is redirected to a file. Далее файл TestDiag.xml можно открыть в приложении, предназначенном для анализа XML-файлов программы ssbdiagnose или создания по ним отчетов.The TestDiag.xml file can then be opened by an application to analyze or report ssbdiagnose XML files. Кроме того, этот файл можно просмотреть в редакторе XML общего назначения, например в XML-блокноте.Or, you can view it from a general XML editor such as XML Notepad.

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

Н.M. Использование переменной средыUsing an Environment Variable

В приведенном ниже примере сначала устанавливается переменная среды SQLCMDSERVER, в которой хранится имя сервера, а затем запускается программа ssbdiagnose без указания параметра -S.The following example first sets the SQLCMDSERVER environment variable to hold the server name, and then runs ssbdiagnose without specifying -S.

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

См. также:See Also

SQL Server Service Broker SQL Server Service Broker
BEGIN DIALOG CONVERSATION (Transact-SQL) BEGIN DIALOG CONVERSATION (Transact-SQL)
CREATE BROKER PRIORITY (Transact-SQL) CREATE BROKER PRIORITY (Transact-SQL)
CREATE CERTIFICATE (Transact-SQL) CREATE CERTIFICATE (Transact-SQL)
CREATE CONTRACT (Transact-SQL) CREATE CONTRACT (Transact-SQL)
CREATE ENDPOINT (Transact-SQL) CREATE ENDPOINT (Transact-SQL)
CREATE MASTER KEY (Transact-SQL) CREATE MASTER KEY (Transact-SQL)
CREATE MESSAGE TYPE (Transact-SQL) CREATE MESSAGE TYPE (Transact-SQL)
CREATE QUEUE (Transact-SQL) CREATE QUEUE (Transact-SQL)
CREATE REMOTE SERVICE BINDING (Transact-SQL) CREATE REMOTE SERVICE BINDING (Transact-SQL)
CREATE ROUTE (Transact-SQL) CREATE ROUTE (Transact-SQL)
CREATE SERVICE (Transact-SQL) CREATE SERVICE (Transact-SQL)
RECEIVE (Transact-SQL) RECEIVE (Transact-SQL)
sys.transmission_queue (Transact-SQL) sys.transmission_queue (Transact-SQL)
sys.conversation_endpoints (Transact-SQL) sys.conversation_endpoints (Transact-SQL)
sys.conversation_groups (Transact-SQ)sys.conversation_groups (Transact-SQL)