Partilhar via


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 rastreio

    Ao 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.

Consulte também