Diagnosticando aplicativos transacionais
Este tópico descreve como usar o recurso de gerenciamento e diagnóstico do Windows Communication Foundation (WCF) para solucionar problemas de um aplicativo transacional.
Contadores de Desempenho
O WCF fornece um conjunto padrão de contadores de desempenho para você medir o desempenho do seu aplicativo transacional. Para obter mais informações, consulte Contadores de desempenho.
Os contadores de desempenho têm escopo em três níveis diferentes: serviço, ponto de extremidade e operação, conforme descrito nas tabelas a seguir.
Contadores de desempenho de serviço
Contador de desempenho | Description |
---|---|
Transações Fluídas | O número de transações que fluíram para operações neste serviço. Esse contador é incrementado sempre que uma transação está presente na mensagem enviada ao serviço. |
Transações fluídas por segundo | O número de transações que fluíram para operações neste serviço dentro de cada segundo. Esse contador é incrementado sempre que uma transação está presente na mensagem enviada ao serviço. |
Operações transacionadas comprometidas | O número de operações transacionadas realizadas, cuja transação foi concluída com o resultado comprometido neste serviço. Os trabalhos realizados no âmbito destas operações estão plenamente autorizados. Os recursos são atualizados de acordo com o trabalho realizado na operação. |
Operações transacionadas autorizadas por segundo | O número de operações transacionadas realizadas, cuja transação foi concluída com o resultado comprometido neste serviço dentro de cada segundo. Os trabalhos realizados no âmbito destas operações estão plenamente autorizados. Os recursos são atualizados de acordo com o trabalho realizado na operação. |
Operações transacionadas abortadas | O número de operações transacionadas realizadas, cuja transação foi concluída com o resultado abortado neste serviço. O trabalho realizado no âmbito dessas operações é revertido. Os recursos são revertidos para o estado anterior. |
Operações transacionadas abortadas por segundo | O número de operações transacionadas realizadas, cuja transação foi concluída com o resultado abortado neste serviço dentro de cada segundo. O trabalho realizado no âmbito dessas operações é revertido. Os recursos são revertidos para o estado anterior. |
Operações transacionadas em dúvida | O número de operações transacionadas realizadas, cuja transação tenha sido concluída com um resultado em dúvida neste serviço. O trabalho realizado com um resultado em dúvida está em estado indeterminado. Os recursos são mantidos pendentes de resultado. |
Operações transacionadas em dúvida por segundo | O número de operações transacionadas realizadas, cuja transação foi concluída com um resultado em dúvida neste serviço dentro de cada segundo. O trabalho realizado com um resultado em dúvida está em estado indeterminado. Os recursos são mantidos pendentes de resultado. |
Contadores de desempenho de ponto final
Contador de desempenho | Description |
---|---|
Transações Fluídas | O número de transações que fluíram para operações neste ponto de extremidade. Esse contador é incrementado sempre que uma transação está presente na mensagem enviada ao ponto de extremidade. |
Transações fluídas por segundo | O número de transações que fluíram para operações neste ponto final dentro de cada segundo. Esse contador é incrementado sempre que uma transação está presente na mensagem enviada ao ponto de extremidade. |
Contadores de desempenho de operação
Contador de desempenho | Description |
---|---|
Transações Fluídas | O número de transações que fluíram para operações neste ponto de extremidade. Esse contador é incrementado sempre que uma transação está presente na mensagem enviada ao ponto de extremidade. |
Transações fluídas por segundo | O número de transações que fluíram para operações neste ponto final dentro de cada segundo. Esse contador é incrementado sempre que uma transação está presente na mensagem enviada ao ponto de extremidade. |
Windows Management Instrumentation
O WCF expõe dados de inspeção de um serviço em tempo de execução por meio de um provedor WMI (Instrumentação de Gerenciamento do Windows) do WCF. Para obter mais informações sobre como acessar dados WMI, consulte Usando a instrumentação de gerenciamento do Windows para diagnóstico.
Várias propriedades WMI somente leitura indicam as configurações de transação aplicadas para um serviço. As tabelas a seguir listam todas essas configurações.
Em um serviço, o ServiceBehaviorAttribute
tem as seguintes propriedades.
Nome | Tipo | Description |
---|---|---|
ReleaseServiceInstanceOnTransactionComplete | Boolean | Especifica se o objeto de serviço será reciclado quando a transação atual for concluída. |
TransaçãoAutoCompleteOnSessionClose | Boolean | Especifica se as transações pendentes serão concluídas quando a sessão atual for encerrada. |
TransactionIsolationLevel | Uma cadeia de caracteres que contém um valor válido da IsolationLevel enumeração. | Especifica o nível de isolamento de transação suportado por este serviço. |
TransactionTimeout | DateTime | Especifica o período dentro do qual uma transação deve ser concluída. |
O ServiceTimeoutsBehavior
tem a seguinte propriedade.
Nome | Tipo | Description |
---|---|---|
TransactionTimeout | DateTime | Especifica o período dentro do qual uma transação deve ser concluída. |
Em uma ligação, o TransactionFlowBindingElement
tem as seguintes propriedades.
Nome | Tipo | Description |
---|---|---|
Protocolo de transação | Uma cadeia de caracteres que contém um valor válido do TransactionProtocol tipo. | Especifica o protocolo de transação a ser usado no fluxo de uma transação. |
TransactionFlow | Boolean | Especifica se o fluxo de transações de entrada está habilitado. |
Em uma operação, o OperationBehaviorAttribute
tem as seguintes propriedades:
Nome | Tipo | Description |
---|---|---|
TransaçãoPreenchimento automático | Boolean | Especifica se a transação atual deve ser confirmada automaticamente se não ocorrerem exceções sem tratamento. |
TransactionScopeRequired | Boolean | Especifica se a operação requer uma transação. |
Em uma operação, o TransactionFlowAttribute
tem as seguintes propriedades.
Nome | Tipo | Description |
---|---|---|
TransactionFlowOption | Uma cadeia de caracteres que contém um valor válido da TransactionFlowOption enumeração. | Especifica até que ponto o fluxo de transações é necessário. |
Rastreio
Os rastreamentos permitem monitorar e analisar falhas em seus aplicativos transacionais. Você pode habilitar o rastreamento usando as seguintes maneiras:
Rastreamento padrão WCF
Esse tipo de rastreamento é o mesmo que rastrear qualquer aplicativo WCF. Para obter mais informações, consulte Configurando o rastreamento.
Rastreamento WS-AtomicTransaction
O rastreamento WS-AtomicTransaction pode ser habilitado usando o WS-AtomicTransaction Configuration Utility (wsatConfig.exe). Esse rastreamento fornece informações sobre o estado das transações e dos participantes dentro de um sistema. Para habilitar também o rastreamento interno do Modelo de Serviço, você pode definir a
HKLM\SOFTWARE\Microsoft\WSAT\3.0\ServiceModelDiagnosticTracing
chave do Registro como um valor válido da SourceLevels enumeração. Você pode habilitar o log de mensagens da mesma maneira que outros aplicativos WCF.System.Transactions
rastreioAo usar o protocolo OleTransactions, as mensagens de protocolo não podem ser rastreadas. O suporte de rastreamento que a System.Transactions infraestrutura fornece (que usa OleTransactions) permite que os usuários visualizem eventos que ocorreram com as transações. Para habilitar o rastreamento para um System.Transactions aplicativo, inclua o código a seguir no
App.config
arquivo de configuração.<configuration> <system.diagnostics> <sources> <source name="System.Transactions" switchValue="Verbose, ActivityTracing"> <listeners> <add name="Text" type="System.Diagnostics.XmlWriterTraceListener" initializeData="SysTx.log" traceOutputOptions="Callstack" /> </listeners> </source> </sources> <trace autoflush="true" indentsize="4"> </trace> </system.diagnostics> </configuration>
Isso também permite o rastreamento do WCF, já que o WCF também utiliza a System.Transactions infraestrutura.