Compartilhar via


Utilitário ssbdiagnose (Service Broker)

Aplica-se a: SQL Server Instância Gerenciada de SQL do Azure

O utilitário ssbdiagnose relata problemas em conversas do Service Broker ou na configuração de serviços do Service Broker. É possível fazer verificações de configuração para dois serviços ou um único serviço. Os problemas são reportados na janela de prompt de comando como texto legível ou 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 de linha de comando

-XML

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

-LEVEL { ERROR | WARNING | INFO }

Especifica o nível das mensagens a serem reportadas.

Valor Descrição
ERROR Relata somente as mensagens de erro.
WARNING (padrão) Relata mensagens de erro e de aviso.
INFO Relata mensagens de erro, aviso e informações.

-IGNORE error_id

Especifica que os erros ou as mensagens com a error_id especificada não serão incluídos em relatórios. Você pode especificar -IGNORE várias vezes para suprimir IDs de mensagens múltiplas.

<baseconnectionoptions>

Especifica as informações de conexão base usadas por ssbdiagnose quando opções de conexão não estão incluídas em uma cláusula específica. A informações de conexão atribuídas em uma cláusula específica substituem as informações de baseconnectionoption. Essa operação é executada separadamente para cada parâmetro. Por exemplo, se ambos -S e -d forem especificados em baseconnetionoptions, e somente -d for especificado em toconnetionoptions, o ssbdiagnose usa -S de baseconnetionoptions e -d de toconnetionoptions.

CONFIGURATION

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

FROM SERVICE service_name

Especifica o serviço que inicia as conversas.

<fromconnectionoptions>

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, o ssbdiagnose usará as informações de conexão de baseconnectionoptions para se conectar ao banco de dados do iniciador. Se fromconnectionoptions for especificado, essa opção deverá incluir o banco de dados que contém o serviço iniciador. Se fromconnectionoptions não for especificado, o baseconnectionoptions deverá especificar o banco de dados iniciador.

TO SERVICE service_name [ , broker_id ]

Especifica o serviço que é o destino 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 destino para encontrar esse item:

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

<toconnectionoptions>

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

MIRROR

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

<mirrorconnectionoptions>

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.

ON CONTRACT contract_name

Solicita que ssbdiagnose verifique apenas as configurações que usam o contrato especificado. Se ON CONTRACT não for especificado, ssbdiagnose relatará o contrato denominado DEFAULT.

ENCRYPTION { ON | OFF | ANONYMOUS }

Solicita verificação se o diálogo está configurado corretamente para o nível especificado de criptografia:

  • ON: configuração padrão. A segurança de diálogo total está configurada. Certificados foram implantados nos dois lados do diálogo, uma associação de serviço remoto está presente e a instrução GRANT SEND do serviço de destino especificou o usuário iniciador.

  • OFF: nenhuma segurança de diálogo está configurada. Nenhum certificado foi implantado, nenhuma associação de serviço remoto foi criada e a instrução GRANT SEND do serviço iniciador especificou a função public.

  • ANONYMOUS: a segurança de diálogo anônima está configurada. Um certificado foi implantado, a associação de serviço remoto especificou a cláusula anônima e a instrução GRANT SEND do serviço de destino especificou a função public.

RUNTIME

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

Durante a execução de ssbdiagnose, todos os eventos do SQL Server Profiler que indicam erros em runtime são registrados. Registra os eventos que ocorrem para as ID especificadas, além de eventos de nível de sistema. Se forem encontrados erros em runtime, ssbdiagnose executará um relatório de configuração sobre a configuração associada.

Por padrão, os erros em runtime não são incluídos no relatório de saída, somente os resultados da análise de configuração. Use -SHOWEVENTS para que os erros em runtime sejam incluídos no relatório.

-SHOWEVENTS

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

  • -NEW: solicita o monitoramento no runtime da primeira conversa iniciada após o começo da execução de ssbdiagnose.

  • -ID: solicita o monitoramento de runtime dos elementos de conversa especificados. Você pode especificar -ID várias vezes.

Se você especificar um identificador de conversa, somente os eventos associados ao ponto de extremidade da conversa associada serão reportados. Se você especificar uma ID de conversa, todos os eventos dessa conversa e seus pontos de extremidade iniciador e de destino serão reportados. Se uma ID de grupo de conversa for especificada, todos os eventos de todas as conversas e pontos de extremidade no grupo de conversa serão reportados.

conversation_handle

Um identificador exclusivo que identifica um ponto de extremidade de conversa em um aplicativo. Os identificadores de conversa são exclusivos para um ponto de extremidade de uma conversa; os pontos de extremidade iniciador e de destino têm identificadores de conversa separados.

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

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

conversation_group_id

O identificador exclusivo que identifica um grupo de conversa.

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

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

conversation_id

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

Os identificadores de conversa são relatados na coluna conversation_id da exibição do catálogo sys.conversation_endpoints.

-TIMEOUT timeout_interval

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

<runtimeconnectionoptions>

Especifica as informações de conexão para os bancos de dados que contêm os serviços associados aos elementos de conversa sendo monitorados. Se todos os serviços estiverem no mesmo banco de dados, você terá de especificar apenas uma cláusula CONNECT TO. Se os serviços estiverem em bancos de dados separados, você deverá fornecer uma cláusula CONNECT TO para cada banco de dados. Se runtimeconnectionoptions não for especificado, ssbdiagnose usará as informações de conexão de 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 logon. O logon deve ser membro da função de servidor fixa sysadmin.

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

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

Se a opção -E for usada com a opção -U ou -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 logon deve ser membro da função de servidor fixa sysadmin.

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

Será gerada uma mensagem de erro se a opção -U for usada junto com a opção -E. Será gerada uma mensagem de erro se a opção -U for acompanhada de mais de um argumento e o programa será encerrado.

-P password

Especifica a senha para a ID de logon -U. Senhas diferenciam maiúsculas e minúsculas. Se a opção -U for usada e não -P, ssbdiagnose usará o valor da variável de ambiente SQLCMDPASSWORD. Se SQLCMDPASSWORD também não for definido, ssbdiagnose solicitará uma senha ao usuário.

Cuidado

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

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

Importante

Não use uma senha em branco. Use uma senha forte. Para saber mais, confira Strong Passwords.

A solicitação de senha é exibida no console, como a seguir: Password:

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

Será gerada uma mensagem de erro se a opção -P for usada com a opção -E.

Se a opção -P 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.

Especifica server_name para conexão com a instância padrão do Mecanismo de Banco de Dados naquele servidor. Especifique <server_name>\<instance_name> para conectar-se 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 ambiente SQLCMDSERVER. Se SQLCMDSERVER também não for 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 o seu logon.

-l login_timeout

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

-N encryption_option

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

Com a criptografia Mandatory selecionada, você deve usar um certificado de uma autoridade de certificação confiável. Para obter mais informações, consulte Requisitos de certificado do 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.

-i hostname_in_certificate

Especifica um Nome Comum (CN) ou um Nome Alternativo da Entidade (SAN) diferente e esperado no certificado do servidor a ser usado durante a validação do certificado do servidor. Sem essa opção, a validação do certificado garante que o CN ou o 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 de linha de comando.

Comentários

Use ssbdiagnose para fazer o seguinte:

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

  • Confirmar que não há erros de configuração depois que você alterar a configuração de um aplicativo existente do Service Broker.

  • Confirmar que não há erros de configuração após desanexar um banco de dados do Service Broker e anexá-lo novamente a uma instância do Mecanismo de Banco de Dados.

  • Pesquise se há erros de configuração quando mensagens de erro 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ório de configuração

Para analisar corretamente a configuração usada por uma conversa, execute um relatório de configuração ssbdiagnose que use as mesmas opções utilizadas pela conversa. Se você especificar um nível mais baixo de opções para ssbdiagnose do que o utilizado pela conversa, ssbdiagnose talvez não reporte as condições necessárias para a conversa. Se você especificar um nível mais alto de opções para ssbdiagnose, talvez o utilitário reporte itens desnecessários para a 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 utilizar a configuração ENCRYPTION ON padrão, ssbdiagnose relatará que uma chave mestra está faltando no banco de dados. 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 cada vez que é executado. Para obter relatórios sobre vários pares de serviços do Service Broker, crie um arquivo de comando .cmd que chame ssbdiagnose várias vezes.

Relatório de runtime

Quando -RUNTIME é especificado, o ssbdiagnose procura todos os bancos de dados especificados no runtimeconnectionoptions e no baseconnectionoptions para criar uma lista de IDs do Service Broker. A lista completa de IDs criada depende dos itens especificados para -NEW e -ID:

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

  • Se -NEW for especificado, ssbdiagnose incluirá os elementos da primeira conversa iniciada após a execução de ssbdiagnose. Isso inclui a ID e os identificadores de conversa dos pontos de extremidade de destino e iniciador da conversa.

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

  • Se -ID for especificado com uma ID de conversa, essa ID e os identificadores dos dois pontos de extremidade da conversa serão adicionados à lista.

  • Se -ID for especificado com uma ID de grupo de conversa, todas as IDs e identificadores de conversa nesse grupo serã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, suponhamos que você use -ID para especificar uma ID de conversa, mas forneça somente uma cláusula runtimeconnectionoptions para o banco de dados 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, somente a ID da conversa e o identificador da conversa do iniciador.

O 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 runtime. O ssbdiagnose também procura eventos de erro do Service Broker no nível do sistema não associados a nenhum grupo de conversa.

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

Por padrão, ssbdiagnose não relata eventos de erro. O utilitário só reporta os problemas subjacentes encontrados durante a verificação de configuração. Isso minimiza a quantidade de informações reportadas e lhe ajuda a enfatizar os problemas de configuração subjacentes. Você pode especificar -SHOWEVENTS para ver os eventos de erro encontrados por ssbdiagnose.

Problemas reportados por ssbdiagnose

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

  • Diagnosis: reporta um problema de configuração. Isso inclui os problemas encontrados durante a execução de relatório CONFIGURATIONou na fase de configuração de um relatório RUNTIME. 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 monitorada durante um relatório de RUNTIME. ssbdiagnose relata eventos toda vez que eles são gerados. Os eventos poderão ser reportados várias vezes se várias conversas encontrarem o problema.

  • 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 dá suporte às variáveis de ambiente SQLCMDSERVER, SQLCMDUSER, SQLCMDPASSWORD e SQLCMDLOGINTIMOUT que também são usadas pelo utilitário sqlcmd. Você pode definir as variáveis de ambiente usando o comando SET de prompt de comando ou o comando setvar em scripts Transact-SQL que executa com o uso de sqlcmd. Para obter mais informações sobre como usar setvar no sqlcmd, veja sqlcmd - Usar com variáveis de script.

Permissões

Em cada cláusula connectionoptions, o logon especificado com -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 do uso de ssbdiagnose em um prompt de comando.

R. Verificar 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 estas condições são verdadeiras:

  • Os serviços iniciador e 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 ssbdiagnose é executado.

O utilitário ssbdiagnose relata a configuração que usa o contrato DEFAULT porque ON CONTRACT não foi especificado.

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

B. Verificar a configuração de dois serviços em computadores separados que não usam logon

O exemplo a seguir mostra como solicitar um relatório de configuração quando os serviços iniciador e de destino estão em computadores separados, mas podem ser acessados com o uso do 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. Verificar a configuração de dois serviços em computadores separados que usam logons diferentes

O exemplo a seguir mostra como solicitar um relatório de configuração quando os serviços iniciador e de destino estão em computadores separados, e logons de Autenticação do SQL Server diferentes 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. Verificar configurações de serviços espelhados em computadores separados com criptografia anônima

O exemplo a seguir mostra como solicitar um relatório de configuração quando os serviços iniciador e de destino estão em computadores separados e o iniciador é espelhado para 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. Verificar a configuração de dois contratos

O exemplo a seguir mostra como criar um arquivo de comando que solicite relatórios de configuração quando estas condições forem verdadeiras:

  • Os serviços iniciador e 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 ssbdiagnose é executado.

Cada vez que ssbdiagnose é executado, o utilitário 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 iniciador e de 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 na qual os serviços iniciador e de 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 na qual os serviços iniciador e de destino estão em bancos de dados separados na mesma instância do Mecanismo de Banco de Dados. O exemplo usa baseconnectionoptions para especificar as informações de instância e logon e duas cláusulas CONNECT TO para especificar os bancos de dados. -SHOWEVENTS é especificada para que todos os eventos de runtime 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 nas quais os serviços iniciador e de destino estão em bancos de dados separados na mesma instância do Mecanismo de Banco de Dados. O exemplo usa baseconnectionoptions para especificar as informações de instância e logon e duas cláusulas CONNECT TO 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 todas as conversas entre dois bancos de dados na mesma instância do Mecanismo de Banco de Dados. O exemplo usa baseconnectionoptions para especificar as informações de instância e logon e duas cláusulas CONNECT TO 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) no modo com 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 a saída XML de ssbdiagnose

O exemplo a seguir mostra como solicitar que o ssbdiagnose gere sua saída como um arquivo XML redirecionado para um arquivo. O arquivo TestDiag.xml pode ser aberto por um aplicativo para analisar ou relatar arquivos XML do ssbdiagnose . Se preferir, você pode exibi-lo de um editor de 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 define primeiramente a variável de ambiente SQLCMDSERVER para conter o nome do servidor e executa ssbdiagnose sem especificar -S.

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