Utilitário ssbdiagnose

O utilitário ssbdiagnose reporta problemas em conversações 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

ssbdiangose 
[ [ -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 ]

Opções da linha de comando

  • -XML
    Especifica que a saída de ssbdiagnose seja gerada como XML formatado. Essa saída pode ser redirecionado 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.

    ERROR: reporta apenas mensagens de erro.

    WARNING: reporta mensagens de erro e aviso.

    INFO: reporta mensagens de erro, aviso e informações.

    A configuração padrão é WARNING.

  • -IGNOREerror_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. Para obter mais informações, consulte Referência de erros e eventos (Service Broker).

  • <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 -S e -d estiverem especificadas em baseconnetionoptions, e somente -d estiver especificada em toconnetionoptions, o ssbdiagnose usará -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 SERVICEservice_name
    Especifica o serviço que inicia as conversações.

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

  • TO SERVICEservice_name[, broker_id ]
    Especifica o serviço que é o destino das conversações.

    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 é uma 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 especificada, 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 esteja 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 especificada, ssbdiagnose usará as informações de conexão de baseconnectionoptions para se conectar ao banco de dados espelho.

  • ON CONTRACTcontract_name
    Solicita que ssbdiagnose verifique apenas as configurações que usam o contrato especificado. Se ON CONTRACT não for especificada, o ssbdiagnose reportará 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.

    Para obter mais informações, consulte Segurança de diálogo do Service Broker.

  • RUNTIME
    Solicita um relatório de problemas que causam erros de tempo de execução para uma conversação do Service Broker. Se nem -NEW, nem -ID forem especificadas, o ssbdiagnose monitorará todas as conversações 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 do ssbdiagnose, ele registra todos os eventos SQL Server Profiler que indicam erros de tempo de execução. Registra os eventos que ocorrem para as ID especificadas, além de eventos de nível de sistema. Se forem encontrados erros de tempo de execução, ssbdiagnose executará um relatório de configuração sobre a 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, somente os resultados da análise de configuração. Use - SHOWEVENTS para que os erros de tempo de execução sejam incluídos no relatório.

  • - SHOWEVENTS
    Especifica que ssbdiagnose reporte eventos 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 reporta na saída.

  • -NEW
    Solicita monitoramento em tempo de execução da primeira conversação iniciada após o começo da execução de ssbdiagnose.

  • -ID
    Solicita o monitoramento de tempo de execução dos elementos de conversação especificados. Você pode especificar -ID várias vezes.

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

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

    Os identificadores de conversação 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ção são reportados na coluna conversation_handle das exibições de catálogo sys.transmission_queue e sys.conversation_endpoints.

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

    As IDs de grupo de conversação são retornadas 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.

    As IDs de grupo de conversação são reportadas nas colunas conversation_group_id das exibições de catálogo sys.conversation_groups e sys.conversation_endpoints.

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

    As IDs de conversação são reportadas na coluna conversation_id da exibição de catálogo sys.conversation_endpoints.

  • -TIMEOUTtimeout_interval
    Especifica o número de segundos para a execução de um relatório RUNTIME. Se -TIMEOUT não for especificada, o relatório de tempo de execução será executado indefinidamente. -TIMEOUT somente é usada em relatórios RUNTIME, não em relatórios CONFIGURATION. Use ctrl + C para sair de ssbdiagnose se -TIMEOUT não tiver sido especificada ou para terminar um relatório de tempo de execução antes que o intervalo de tempo limite expire. 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ção sendo monitorados. Se todos os serviços estiverem no mesmo banco de dados, você só terá que especificar 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 especificada, 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 nem -E, nem -U forem especificadas, ssbdiagnose usará o valor da variável de ambiente SQLCMDUSER. Se SQLCMDUSER também não estiver definida, ssbdiagnose usará a Autenticação do Windows.

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

  • -Ulogin_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 nem -E, nem -U forem especificadas, ssbdiagnose usará o valor da variável de ambiente SQLCMDUSER. Se SQLCMDUSER também não estiver definida, 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.

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

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

    Observação sobre segurançaObservação sobre segurança

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

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

    Observação sobre segurançaObservação sobre segurança

    Não use uma senha em branco. Use uma senha forte. Para obter mais informações, consulte Senhas fortes.

    O prompt de senha é exibido imprimindo-se o prompt de senha 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.

  • -Sserver_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 nesse 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 especificada, ssbdiagnose usará o valor da variável de ambiente SQLCMDSERVER. Se SQLCMDSERVER também não estiver definida, ssbdiagnose se conectará à instância padrão do Mecanismo de Banco de Dados no computador local.

  • -ddatabase_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 especificada, o padrão será o banco de dados especificado na propriedade default-database para o seu logon.

  • -llogin_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 especificada, ssbdiagnose usará o valor definido para a variável de ambiente SQLCMDLOGINTIMEOUT. Se SQLCMDLOGINTIMEOUT também não for definida, o tempo limite padrão será de trinta 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 dentro desse intervalo, ssbdiagnose gerará uma mensagem de erro. Um valor de 0 especifica o tempo limite como infinito.

  • -?
    Exibe a ajuda de linha de comando.

Comentários

Use o ssbdiagnose para fazer o seguinte:

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

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

  • Confirmar que não há erros de configuração após a desanexação de um banco de dados Service Broker nova anexação a uma nova 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ção de Service Broker.

Para obter informações sobre os erros retornados por ssbdiagnose, consulte Referência de erros e eventos (Service Broker).

Relatório de configuração

Para analisar corretamente a configuração usada por uma conversação, execute um relatório de configuração do ssbdiagnose que use as mesmas opções utilizadas pela conversação. Se você especificar um nível mais baixo de opções para ssbdiagnose do que o utilizado pela conversação, ssbdiagnose talvez não reporte as condições necessárias para a conversação. Se você especificar um nível mais alto de opções para ssbdiagnose, talvez o utilitário reporte itens desnecessários para a conversação. Por exemplo, uma conversação entre dois serviços no mesmo banco de dados pode ser executada com ENCPRYPTION 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 reportará que uma chave mestra está faltando no banco de dados. Uma chave mestra não é necessária para a conversação.

O relatório de configuração do 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 tempo de execução

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

  • Se nem -NEW, nem -ID forem especificadas, a lista conterá todas as conversações de todos os bancos de dados especificados nas opções de conexão.

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

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

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

  • Se -ID for especificada com uma ID de grupo de conversação, todas as IDs e identificadores de conversação 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, vamos supor que você use -ID para especificar uma ID de conversação, mas forneça apenas uma cláusula runtimeconnectionoptions para o banco de dados iniciador e não para o banco de dados de destino. ssbdiagnose não incluirá o identificador de conversação de destino nessa lista de IDs, somente a ID e o identificador de conversação do iniciador.

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

Se ssbdiagnose encontrar erros de conversação, o utilitário tentará reportar 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ção. Em seguida, executa um relatório de configuração que usa todas as informações disponíveis.

Por padrão, ssbdiagnose não reporta 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

O ssbdiagnose reporta 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 reportados por ssbdiagnose são os seguintes:

  • Diagnóstico
    Reporta um problema de configuração. Isso inclui os problemas encontrados durante a execução de relatório de CONFIGURATION ou na fase de configuração de um relatório RUNTIME. ssbdiagnose reporta cada problema de configuração uma vez.

  • Evento
    Reporta um evento SQL Server Profiler que indica que um problema foi encontrado por uma conversação monitorada durante um relatório RUNTIME. ssbdiagnose reporta eventos sempre que são gerados. Os eventos poderão ser reportados várias vezes se várias conversações encontrarem o problema.

  • Problema
    Reporta um problema que está impedindo o ssbdiagnose de concluir uma análise de configuração ou de monitorar conversações.

Variáveis de ambiente sqlcmd

O utilitário ssbdiagnose oferece 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 em sqlcmd, consulte Usando sqlcmd 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.

A. Verificando 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 reporta a configuração que usa o contrato DEFAULT porque ON CONTRACT não foi especificada.

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

B. Verificando 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

B. Verificando 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. Verificando 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. Verificando 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 e executado, o utilitário reporta 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ção específica no computador local com um tempo limite

O exemplo a seguir mostra como monitorar uma conversação específica na qual os serviços iniciador e de destino estão no mesmo banco de dados na instância padrão do mesmo computador 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ção que abrange dois computadores

O exemplo a seguir mostra como monitorar uma conversação 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ção em dois bancos de dados na mesma instância

O exemplo a seguir mostra como monitorar uma conversação 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 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 conversações entre dois bancos de dados

O exemplo a seguir mostra como monitorar duas conversações 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 conversações entre dois bancos de dados

O exemplo a seguir mostra como monitorar todas as conversações 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. Redirecionando 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 reportar 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. Usando uma variável de ambiente

O exemplo a seguir primeiro define a variável de ambiente SQLCMDSERVER para conter 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