Partilhar via


Utilitário ssbdiagnose (Service Broker)

Aplica-se a:SQL ServerAzure SQL Managed Instance

O utilitário ssbdiagnose relata problemas em conversas do Service Broker ou na configuração dos serviços do Service Broker. As verificações de configuração podem ser feitas para dois serviços ou um único serviço. Os problemas são relatados na janela do prompt de comando como texto legível por humanos ou como XML formatado que pode ser redirecionado para um arquivo ou outro programa.

Sintaxe

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 ]

Opções da linha de comandos

-XML

Especifica que a saída ssbdiagnose é gerada como XML formatado. Essa saída pode ser redirecionada para um arquivo ou para outro aplicativo. Se -XML não for especificado, a saída ssbdiagnose será formatada como texto legível por humanos.

-LEVEL { ERRO | ADVERTÊNCIA | INFORMAÇÃO }

Especifica o nível de mensagens que devem ser relatadas.

Valor Descrição
ERROR Comunicar apenas mensagens de erro.
WARNING (padrão) Comunicar mensagens de erro e aviso.
INFO Reporte mensagens de erro, aviso e informações.

-IGNORAR error_id

Especifica que os erros ou mensagens que têm o error_id especificado não devem ser incluídos nos relatórios. Você pode especificar -IGNORE várias vezes para suprimir vários IDs de mensagem.

<OpçõesBaseDeConexão>

Especifica as informações de conexão base que são usadas pelo ssbdiagnose quando as opções de conexão não são incluídas em uma cláusula específica. As informações de conexão fornecidas numa cláusula específica substituem as informações baseconnectionoption. Isso é realizado separadamente para cada parâmetro. Por exemplo, se ambos -S e -d são especificados em baseconnectionoptions, e somente -d é especificado em toconnectionoptions, ssbdiagnose usa -S de baseconnectionoptions e -d de toconnectionoptions.

CONFIGURAÇÃO

Solicita um relatório de erros de configuração entre um par de serviços do Service Broker ou para um único serviço.

DO SERVIÇO service_name

Especifica o serviço que inicia conversas.

<das opções de conexão>

Especifica as informações necessárias para se conectar ao banco de dados que contém o serviço iniciador. Se fromconnectionoptions não for especificado, ssbdiagnose usará as informações de conexão de baseconnectionoptions do banco de dados iniciador. Se fromconnectionoptions for especificado, ele deve incluir o banco de dados que contém o serviço iniciador. Se fromconnectionoptions não for especificado, o baseconnectionoptions deve especificar o banco de dados do iniciador.

PARA O SERVIÇO service_name [ , broker_id ]

Especifica o serviço que é o alvo das conversas.

service_name: Especifica o nome do serviço de destino.

broker_id: especifica a ID do Service Broker que identifica o banco de dados de destino. broker_id é um GUID. Você pode executar a seguinte consulta no banco de dados de destino para localizá-la:

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

<paraopções de conexão>

Especifica as informações necessárias para conectar o banco de dados que contém o serviço de destino. Se toconnectionoptions não for especificado, ssbdiagnose usará as informações de conexão para se conectar ao banco de dados de baseconnectionoptions destino.

ESPELHO

Especifica que o serviço Service Broker associado está hospedado em um banco de dados espelhado. SSBdiagnose verifica se a rota para o serviço é uma rota espelhada, onde MIRROR_ADDRESS foi especificada em CREATE ROUTE.

<Opções de Conexão de Espelho>

Especifica as informações necessárias para se conectar ao banco de dados espelho. Se mirrorconnectionoptions não for especificado, o ssbdiagnose usará as informações de conexão de baseconnectionoptions para se conectar ao banco de dados espelho.

EM CONTRATO contract_name

Solicita que o ssbdiagnose verifique apenas as configurações que usam o contrato especificado. Se ON CONTRACT não for especificado, ssbdiagnose informa sobre o contrato chamado DEFAULT.

ENCRIPTAÇÃO { ON | DESLIGADO | ANÓNIMO }

Solicita a verificação de que a caixa de diálogo está configurada corretamente para o nível especificado de criptografia:

  • ON: Configuração padrão. A segurança total do diálogo está configurada. Os certificados foram implantados em ambos os lados do diálogo, uma ligação de serviço remoto está presente e a GRANT SEND instrução para o serviço de destino especificou o utilizador iniciador.

  • OFF: Nenhuma segurança de diálogo está configurada. Nenhum certificado foi implantado, nenhuma associação de serviço remoto foi criada, e o GRANT SEND para o serviço iniciador especificou a função pública.

  • ANONYMOUS: A segurança de diálogo anónimo está configurada. Um certificado foi implementado, a vinculação de serviço remoto especificou a cláusula anônima e para o serviço de destino especificou GRANT SEND a função pública.

TEMPO DE EXECUÇÃO

Solicita um relatório de problemas que causam erros em tempo de execução para uma conversa do Service Broker. Se -NEW ou -ID não forem especificados, ssbdiagnose monitorará todas as conversas em todos os bancos de dados especificados nas opções de conexão. Se -NEW ou -ID forem especificados, ssbdiagnose criará uma lista dos IDs especificados nos parâmetros.

Enquanto o ssbdiagnose está em execução, ele registra todos os eventos do SQL Server Profiler que indicam erros de tempo de execução. Ele registra os eventos que ocorrem para as IDs especificadas, além de eventos no nível do sistema. Se forem encontrados erros de tempo de execução, ssbdiagnose executa um relatório de configuração na configuração associada.

Por padrão, os erros de tempo de execução não são incluídos no relatório de saída, apenas os resultados da análise de configuração. Use -SHOWEVENTS para incluir os erros de tempo de execução no relatório.

-SHOWEVENTS

Especifica que o ssbdiagnose inclua os eventos do SQL Server Profiler durante um RUNTIME relatório. Somente eventos que são considerados condições de erro são relatados. Por padrão, ssbdiagnose monitora apenas eventos de erro; ele não os relata na saída.

  • -NEW: Solicita o monitoramento do tempo de execução da primeira conversa que começa depois que o ssbdiagnose começa a ser executado.
  • -ID: Solicita monitoramento de tempo de execução dos elementos de conversação especificados. Você pode especificar -ID várias vezes.

Se especificar um identificador de conversa, apenas os eventos associados ao ponto final da conversa associado serão relatados. Se especificar um ID de conversa, todos os eventos dessa conversa e os seus endereços de iniciador e de destino serão relatados. Se um ID de grupo de conversação for especificado, todos os eventos de todas as conversas e terminais no grupo de conversação serão relatados.

conversation_handle

Um identificador único que identifica um ponto de extremidade de conversação num aplicativo. As handles de conversa são exclusivas para um ponto de extremidade de uma conversa; o iniciador e o ponto de extremidade de destino têm identificadores de conversa separados.

Os identificadores de conversação são retornados aos aplicativos pelo parâmetro @dialog_handle da instrução e pela coluna BEGIN DIALOGconversation_handle no conjunto de resultados de uma RECEIVE instrução.

Identificadores de conversação são relatados na coluna conversation_handle das visualizações do catálogo sys.transmission_queue e sys.conversation_endpoints.

conversation_group_id

O identificador exclusivo que identifica um grupo de conversação.

Os IDs de grupo de conversação são retornados aos aplicativos pelo parâmetro @conversation_group_id da instrução e pela GET CONVERSATION GROUPconversation_group_id coluna no conjunto de resultados de uma RECEIVE instrução.

Os IDs do grupo de conversação são relatados nas colunas do conversation_group_id nas visualizações do catálogo sys.conversation_groups e sys.conversation_endpoints.

conversation_id

O identificador exclusivo que identifica uma conversa. Os IDs de conversa são os mesmos para o iniciador e os pontos de extremidade de destino de uma conversa.

Os IDs de conversação são relatados na conversation_id coluna da sys.conversation_endpoints vista de catálogo.

-TEMPO LIMITE timeout_interval

Especifica o número de segundos para a execução de um RUNTIME relatório. Se -TIMEOUT não for especificado, o relatório de tempo de execução será executado indefinidamente. -TIMEOUT é usado apenas em RUNTIME relatórios, não em CONFIGURATION relatórios. Use ctrl + C para sair do ssbdiagnose se -TIMEOUT não tiver sido especificado ou para encerrar um relatório em execução antes que o intervalo de tempo limite expire. timeout_interval deve ser um número entre 1 e 2.147.483.647.

<OpçõesDeConexãoDeExecução>

Especifica as informações de conexão para os bancos de dados que contêm os serviços associados aos elementos de conversação que estão sendo monitorados. Se todos os serviços estiverem no mesmo banco de dados, você só precisará especificar uma CONNECT TO cláusula. Se os serviços estiverem em bancos de dados separados, você deverá fornecer uma CONNECT TO cláusula para cada banco de dados. Se runtimeconnectionoptions não for especificado, ssbdiagnose usará as informações de conexão do baseconnectionoptions.

-E

Abra uma conexão de Autenticação do Windows com uma instância do Mecanismo de Banco de Dados usando sua conta atual do Windows como ID de login. O login deve ser um membro da função de servidor fixo sysadmin .

A -E opção ignora as configurações de usuário e senha das SQLCMDUSER variáveis e SQLCMDPASSWORD de ambiente.

Se -E ou -U não forem especificados, ssbdiagnose usará o valor da variável de ambiente SQLCMDUSER. Se SQLCMDUSER também não estiver definido, o ssbdiagnose usará a Autenticação do Windows.

Se a opção -E for usada junto com a opção -U ou a opção -P, uma mensagem de erro será gerada.

-U login_id

Abra uma conexão de Autenticação do SQL Server usando a ID de logon especificada. O login deve ser um membro da função de servidor fixo sysadmin .

Se -E ou -U não forem especificados, ssbdiagnose usará o valor da variável de ambiente SQLCMDUSER. Se SQLCMDUSER também não estiver definido, o ssbdiagnose tentará se conectar usando o modo de Autenticação do Windows com base na conta do Windows do usuário que está executando o ssbdiagnose.

Se a -U opção for usada junto com a -E opção, uma mensagem de erro será gerada. Se a opção -U for seguida por mais de um argumento, uma mensagem de erro será gerada e o programa será encerrado.

-P senha

Especifica a senha para o ID de -U login. As palavras-passe são sensíveis a maiúsculas e minúsculas. Se a -U opção for usada e a -P opção não for usada, ssbdiagnose usará o valor da variável de SQLCMDPASSWORD ambiente. Se SQLCMDPASSWORD também não estiver definido, o ssbdiagnose solicitará uma senha ao usuário.

Atenção

Quando você digita um SET SQLCMDPASSWORD comando, sua senha ficará visível para qualquer pessoa que possa ver sua tela.

Se a -P opção for especificada sem uma senha, ssbdiagnose usará a senha padrão (NULL).

Importante

Não utilize uma palavra-passe em branco. Use uma senha forte. Para mais informações, consulte Palavras-passe fortes.

O prompt de senha é exibido imprimindo o prompt de senha no console, da seguinte maneira: Password:

A entrada do usuário está oculta. Isso significa que nada é exibido e o cursor permanece na posição.

Se a opção -P for usada com a opção -E, uma mensagem de erro será gerada.

Se a -P opção for seguida por mais de um argumento, uma mensagem de erro será gerada.

-S server_name[\instance_name]

Especifica a instância do Mecanismo de Banco de Dados que contém os serviços do Service Broker a serem analisados.

Especifique server_name para se conectar à instância padrão do Mecanismo de Banco de Dados em esse servidor. Especifique <server_name>\<instance_name> para se conectar a uma instância nomeada do Mecanismo de Banco de Dados nesse servidor. Se -S não for especificado, ssbdiagnose usará o valor da variável de SQLCMDSERVER ambiente. Se SQLCMDSERVER também não estiver definido, ssbdiagnose se conectará à instância padrão do Mecanismo de Banco de Dados no computador local.

- d database_name

Especifica o banco de dados que contém os serviços do Service Broker a serem analisados. Se o banco de dados não existir, uma mensagem de erro será gerada. Se -d não for especificado, o padrão será o banco de dados especificado na propriedade default-database para seu login.

-l login_timeout

Especifica o número de segundos antes que uma tentativa de conexão a um servidor atinja o tempo limite. Se -l não for especificado, ssbdiagnose usará o valor definido para a SQLCMDLOGINTIMEOUT variável de ambiente. Se SQLCMDLOGINTIMEOUT também não estiver definido, o tempo limite padrão será de 30 segundos. O tempo limite de login deve ser um número entre 0 e 65534. Se o valor fornecido não for numérico ou não se enquadrar nesse intervalo, ssbdiagnose gerará uma mensagem de erro. Um valor de 0 especifica que o tempo limite é infinito.

- N encryption_option

Especifica que a conexão é criptografada. Os valores possíveis são Optional, Mandatorye Strict. O valor inserido representa o nível desejado e mínimo de criptografia. O valor predefinido é Mandatory.

Com Mandatory a criptografia selecionada, você deve usar um certificado de uma autoridade de certificação confiável. Para obter mais informações, consulte Requisitos de certificado para o SQL Server.

Para usar criptografia estrita, o Mecanismo de Banco de Dados do SQL Server deve ser configurado com um certificado TLS assinado por uma autoridade de certificação raiz confiável.

-Eu hostname_in_certificate

Especifica um Nome Comum (CN) ou Nome Alternativo da Entidade (SAN) diferente e esperado no certificado do servidor para ser usado durante a validação do certificado do servidor. Sem essa opção, a validação do certificado garante que o CN ou a SAN no certificado corresponda ao nome do servidor ao qual você está se conectando. Esse parâmetro pode ser preenchido quando o nome do servidor não corresponde ao CN ou SAN, por exemplo, ao usar aliases DNS.

-C

Especifica que a conexão confia no certificado do servidor e ignora a validação do certificado do servidor. Essa opção não é necessária quando certificados de servidor confiáveis são usados.

-?

Exibe a ajuda da linha de comando.

Observações

Use ssbdiagnose para fazer o seguinte:

  • Confirme se não há erros de configuração em um aplicativo do Service Broker recém-configurado.

  • Confirme se não há erros de configuração depois de alterar a configuração de um aplicativo Service Broker existente.

  • Confirme se não há erros de configuração depois que um banco de dados do Service Broker for desanexado e, em seguida, reanexado a uma nova instância do Mecanismo de Banco de Dados.

  • Pesquise se há erros de configuração quando as mensagens não são transmitidas com êxito entre serviços.

  • Obtenha um relatório de quaisquer erros que ocorram em um conjunto de elementos de conversa do Service Broker.

Relatórios de configuração

Para analisar corretamente a configuração usada por uma conversa, execute um relatório de configuração ssbdiagnose que usa as mesmas opções usadas pela conversa. Se você especificar um nível mais baixo de opções para ssbdiagnose do que as usadas pela conversa, o ssbdiagnose pode não relatar as condições exigidas pela conversa. Se você especificar um nível mais alto de opções para ssbdiagnose, ele poderá relatar itens que não são exigidos pela conversa. Por exemplo, uma conversa entre dois serviços no mesmo banco de dados pode ser executada com ENCRYPTION OFF. Se você executar ssbdiagnose para validar a configuração entre os dois serviços, mas usar a configuração padrão ENCRYPTION ON , ssbdiagnose informará que o banco de dados está faltando uma chave mestra. Uma chave mestra não é necessária para a conversa.

O relatório de configuração ssbdiagnose analisa apenas um serviço do Service Broker ou um único par de serviços sempre que é executado. Para relatar vários pares de serviços do Service Broker, crie um arquivo de comando .cmd que chame ssbdiagnose várias vezes.

Relatórios de tempo de execução

Quando -RUNTIME é especificado, ssbdiagnose pesquisa todos os bancos de dados especificados em runtimeconnectionoptions e baseconnectionoptions para criar uma lista de IDs do Service Broker. A lista completa de IDs criados depende do que é especificado para -NEW e -ID:

  • Se for especificado -NEW ou -ID não, a lista incluirá todas as conversas para todos os bancos de dados especificados nas opções de conexão.

  • Se -NEW for especificado, ssbdiagnose inclui os elementos para a primeira conversa que começa após ssbdiagnose ser executado. Isso inclui o identificador da conversa e os identificadores de conversa para os pontos de extremidade de conversação de destino e de origem.

  • Se -ID for especificado com um identificador de conversação, apenas esse identificador será incluído na lista.

  • Se -ID for especificado com um ID de conversação, o ID de conversação e os identificadores de ambos os pontos de extremidade de conversação serão adicionados à lista.

  • Se -ID estiver especificado com um ID de grupo de conversação, todos os IDs e identificadores de conversação nesse grupo são adicionados à lista.

A lista não inclui elementos de bancos de dados que não são cobertos pelas opções de conexão. Por exemplo, suponha que você use -ID para especificar uma ID de conversação, mas forneça apenas uma runtimeconnectionoptions cláusula para o banco de dados do iniciador e não para o banco de dados de destino. ssbdiagnose não inclui o identificador de conversa de destino em sua lista de IDs, apenas o ID de conversa e o identificador de conversa do iniciador.

ssbdiagnose monitora os eventos do SQL Server Profiler dos bancos de dados cobertos por runtimeconnectionoptions e baseconnectionoptions. Ele procura eventos do Service Broker que indicam que um erro foi encontrado por um ou mais IDs do Service Broker na lista de tempo de execução. O ssbdiagnose também procura eventos de erro do Service Broker no nível do sistema não associados a nenhum grupo de conversação.

Se ssbdiagnose encontrar erros de conversação, o utilitário tentará relatar a causa raiz dos eventos executando também um relatório de configuração. ssbdiagnose usa os metadados nos bancos de dados para tentar determinar as instâncias, IDs do Service Broker, bancos de dados, serviços e contratos usados pela conversa. Em seguida, ele executa um relatório de configuração usando todas as informações disponíveis.

Por padrão, ssbdiagnose não relata eventos de erro. Ele apenas relata os problemas subjacentes encontrados durante a verificação de configuração. Isso minimiza a quantidade de informações relatadas e ajuda você a se concentrar nos problemas de configuração subjacentes. Você pode especificar -SHOWEVENTS para ver os eventos de erro encontrados por ssbdiagnose.

Problemas relatados pelo ssbdiagnose

SSBdiagnose relata três classes de problemas. No arquivo de saída XML, cada classe de problema é relatada como um tipo separado do elemento Issue. Os três tipos de problemas relatados pelo ssbdiagnose são os seguintes:

  • Diagnosis: Relata um problema de configuração. Isso inclui problemas encontrados durante a execução de um relatório CONFIGURATION ou durante a fase de configuração de um relatório RUNTIME. O SSBdiagnose relata cada problema de configuração uma vez.

  • Event: Relata um evento do SQL Server Profiler que indica que um problema foi encontrado por uma conversa que está sendo monitorada durante um RUNTIME relatório. O SSBdiagnose relata eventos sempre que eles são gerados. Os eventos podem ser relatados várias vezes se o problema surgir em várias conversas.

  • Problem: Relata um problema que está impedindo o ssbdiagnose de concluir uma análise de configuração ou de monitorar conversas.

Variáveis de ambiente SQLCMD

O utilitário ssbdiagnose suporta as SQLCMDSERVERvariáveis , SQLCMDUSER, SQLCMDPASSWORDe SQLCMDLOGINTIMEOUT ambiente que também são usadas pelo utilitário sqlcmd . Você pode definir as variáveis de ambiente usando um comando no prompt de comando SET ou usando o comando setvar em scripts Transact-SQL que você executa com o sqlcmd. Para obter mais informações sobre como usar setvar no sqlcmd, consulte sqlcmd - Use with scripting variables.

Permissões

Em cada cláusula connectionoptions, o login especificado através de -E ou -U deve ser membro da função de servidor fixa sysadmin na instância especificada em -S.

Exemplos

Esta seção contém exemplos de como usar ssbdiagnose em um prompt de comando.

Um. Verifique a configuração de dois serviços no mesmo banco de dados

O exemplo a seguir mostra como solicitar um relatório de configuração quando as seguintes opções forem verdadeiras;

  • O iniciador e o serviço de destino estão no mesmo banco de dados.

  • O banco de dados está na instância padrão do Mecanismo de Banco de Dados.

  • As instâncias estão no mesmo computador em que o ssbdiagnose é executado.

O utilitário ssbdiagnose relata a configuração que usa o DEFAULT contrato uma vez que ON CONTRACT não é especificada.

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

B. Verifique a configuração de dois serviços em computadores separados que usam um login

O exemplo a seguir mostra como solicitar um relatório de configuração quando o iniciador e o serviço de destino estão em computadores separados, mas podem ser acessados usando o mesmo logon de Autenticação do Windows.

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

C. Verifique a configuração de dois serviços em computadores separados que usam logins separados

O exemplo a seguir mostra como solicitar um relatório de configuração quando o iniciador e o serviço de destino estão em computadores separados e logons de Autenticação do SQL Server separados são necessários para cada instância do Mecanismo de Banco de Dados.

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. Verifique as configurações de serviço espelhado em computadores separados com criptografia anônima

O exemplo a seguir mostra como solicitar um relatório de configuração quando o iniciador e o serviço de destino estão em computadores separados e o iniciador é espelhado em uma instância nomeada. O relatório também verifica se os serviços estão configurados para usar criptografia anônima.

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. Verifique a configuração de dois contratos

O exemplo a seguir mostra como criar um arquivo de comando que solicita relatórios de configuração quando o seguinte for verdadeiro:

  • O iniciador e o serviço de destino estão no mesmo banco de dados.

  • O banco de dados está na instância padrão do Mecanismo de Banco de Dados.

  • A instância está no mesmo computador em que o ssbdiagnose é executado.

Cada vez que o ssbdiagnose é executado, ele relata a configuração de um contrato diferente entre os mesmos serviços.

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. Monitorar o status de uma conversa específica no computador local com um tempo limite

O exemplo a seguir mostra como monitorar uma conversa específica em que os serviços de iniciador e destino estão no mesmo banco de dados na instância padrão do mesmo computador que está executando ssbdiagnose. O intervalo de tempo limite é definido como 20 segundos.

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

G. Monitorar o status de uma conversa que abrange dois computadores

O exemplo a seguir mostra como monitorar uma conversa específica em que os serviços de iniciador e destino estão em computadores separados.

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. Monitorar o status de uma conversa em dois bancos de dados na mesma instância

O exemplo a seguir mostra como monitorar uma conversa específica em que os serviços de iniciador e de destino estão em bancos de dados separados na mesma instância do Mecanismo de Banco de Dados. O exemplo usa o baseconnectionoptions para especificar as informações de instância e login e duas CONNECT TO cláusulas para especificar os bancos de dados. -SHOWEVENTS é especificado para que todos os eventos de tempo de execução sejam incluídos na saída do relatório.

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

I. Monitorar o status de duas conversas entre dois bancos de dados

O exemplo a seguir mostra como monitorar duas conversas em que os serviços de iniciador e de destino estão em bancos de dados separados na mesma instância do Mecanismo de Banco de Dados. O exemplo usa o baseconnectionoptions para especificar as informações de instância e login e duas CONNECT TO cláusulas para especificar os bancos de dados.

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. Monitorar o status de todas as conversas entre dois bancos de dados

O exemplo a seguir mostra como monitorar toda a conversa entre dois bancos de dados na mesma instância do Mecanismo de Banco de Dados. O exemplo usa o baseconnectionoptions para especificar as informações de instância e login e duas CONNECT TO cláusulas para especificar os bancos de dados.

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

K. Ignorar erros específicos

O exemplo a seguir mostra como ignorar erros conhecidos (303 e 304) em como a ativação está configurada atualmente em um sistema de teste.

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

L. Redirecionar saída XML ssbdiagnose

O exemplo a seguir mostra como solicitar que ssbdiagnose gere sua saída como um arquivo XML que é redirecionado para um arquivo. O ficheiro TestDiag.xml pode ser aberto por uma aplicação para analisar ou criar relatório de ficheiros XML ssbdiagnose. Ou, você pode visualizá-lo a partir de um editor XML geral, como o Bloco de Notas XML.

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

M. Usar uma variável de ambiente

O exemplo a seguir primeiro define a SQLCMDSERVER variável de ambiente para manter o nome do servidor e, em seguida, executa ssbdiagnose sem especificar -S.

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