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çãoGRANT 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çãoGRANT 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çãoGRANT 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órioCONFIGURATION
ou na fase de configuração de um relatórioRUNTIME
. 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 deRUNTIME
. 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
Conteúdo relacionado
- Service Broker
- BEGIN DIALOG CONVERSATION (Transact-SQL)
- CREATE BROKER PRIORITY (Transact-SQL)
- CREATE CERTIFICATE (Transact-SQL)
- CREATE CONTRACT (Transact-SQL)
- CREATE ENDPOINT (Transact-SQL)
- CREATE MASTER KEY (Transact-SQL)
- CREATE MESSAGE TYPE (Transact-SQL)
- CREATE QUEUE (Transact-SQL)
- CREATE REMOTE SERVICE BINDING (Transact-SQL)
- CREATE ROUTE (Transact-SQL)
- CREATE SERVICE (Transact-SQL)
- RECEIVE (Transact-SQL)
- sys.transmission_queue (Transact-SQL)
- sys.conversation_endpoints (Transact-SQL)
- sys.conversation_groups (Transact-SQL)