Compartilhar via


Diagnosticando aplicativos transacionais

Este tópico descreve como usar o recurso de diagnóstico e gerenciamento do WCF (Windows Communication Foundation) 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 aplicativo transacional. Para obter mais informações, consulte Performance Counters.

Os contadores de desempenho têm escopo para três níveis diferentes: Serviço, Ponto de Extremidade e Operação.

Contadores de desempenho de serviço

Contador de desempenho Descrição
Fluxo de transações O número de transações que fluíram para operações nesse serviço. Esse contador é incrementado sempre que transação está presente na mensagem que é enviada para o serviço.
Fluxo de transações por segundo O número de transações que fluíram para operações nesse serviço em cada segundo. Esse contador é incrementado sempre que transação está presente na mensagem que é enviada para o serviço.
Operações Transacionadas Confirmadas O número de operações transacionadas executadas, cuja transação foi concluída com o resultado confirmado neste serviço. O trabalho realizado nessas operações é totalmente confirmado. Os recursos são atualizados de acordo com o trabalho realizado na operação.
Operações Transacionadas Confirmadas por Segundo O número de operações transacionadas executadas, cuja transação foi concluída com o resultado confirmado neste serviço em cada segundo. O trabalho realizado nessas operações é totalmente confirmado. Os recursos são atualizados de acordo com o trabalho realizado na operação.
Operações de transação abortadas O número de operações transacionadas executadas, cuja transação foi concluída com o resultado abortado neste serviço. O trabalho feito nessas operações é revertido. Os recursos são revertidos para o estado anterior.
Operações Transacionadas Anuladas por Segundo O número de operações transacionadas executadas, cuja transação foi concluída com o resultado abortado neste serviço em cada segundo. O trabalho feito nessas 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 executadas, cuja transação foi concluída com um resultado em dúvida neste serviço. O trabalho feito com um resultado em dúvida está em um estado indeterminado. Os recursos são mantidos pendentes.
Operações Transacionadas em Dúvida por Segundo O número de operações transacionadas executadas, cuja transação foi concluída com um resultado em dúvida neste serviço em cada segundo. O trabalho feito com um resultado em dúvida está em um estado indeterminado. Os recursos são mantidos pendentes.

Contadores de desempenho de ponto de extremidade

Contador de desempenho Descrição
Fluxo de transações O número de transações fluídas para operações neste ponto de extremidade. Esse contador é incrementado sempre que transação está presente na mensagem que é enviada para o ponto de extremidade.
Fluxo de transações por segundo O número de transações fluídas para operações neste ponto de extremidade em cada segundo. Esse contador é incrementado sempre que transação está presente na mensagem que é enviada para o ponto de extremidade.

Contadores de desempenho de operação

Contador de desempenho Descrição
Fluxo de transações O número de transações fluídas para operações neste ponto de extremidade. Esse contador é incrementado sempre que transação está presente na mensagem que é enviada para o ponto de extremidade.
Fluxo de transações por segundo O número de transações fluídas para operações neste ponto de extremidade em cada segundo. Esse contador é incrementado sempre que transação está presente na mensagem que é enviada para o ponto de extremidade.

Instrumentação de Gerenciamento do Windows

O WCF expõe os 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 acesso aos dados do WMI, confira Como usar 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 Descrição
ReleaseServiceInstanceOnTransactionComplete Booliano Especifica se o objeto de serviço será reciclado quando a transação atual for concluída.
TransactionAutoCompleteOnSessionClose Booliano Especifica se as transações pendentes serão concluídas quando a sessão atual for fechada.
TransactionIsolationLevel Uma cadeia de caracteres que contém um valor válido da enumeração IsolationLevel. Especifica o nível de isolamento da transação com o qual esse serviço dá suporte.
TransactionTimeout DateTime Especifica o período dentro do qual uma transação precisa ser concluída.

O ServiceTimeoutsBehavior tem a propriedade a seguir.

Nome Tipo Descrição
TransactionTimeout DateTime Especifica o período dentro do qual uma transação precisa ser concluída.

Em uma associação, o TransactionFlowBindingElement tem as seguintes propriedades.

Nome Tipo Descrição
TransactionProtocol Uma cadeia de caracteres que contém um valor válido do tipo TransactionProtocol. Especifica o protocolo de transação a ser usado no fluxo de uma transação.
TransactionFlow Booliano Especifica se o fluxo da transação de entrada está habilitado.

Em uma operação, o OperationBehaviorAttribute tem as seguintes propriedades:

Nome Tipo Descrição
TransactionAutoComplete Booliano Especifica se haverá confirmação automática da transação atual, caso não ocorra nenhuma exceção sem tratamento.
TransactionScopeRequired Booliano Especifica se a operação requer uma transação.

Em uma operação, o TransactionFlowAttribute tem as seguintes propriedades.

Nome Tipo Descrição
TransactionFlowOption Uma cadeia de caracteres que contém um valor válido da enumeração TransactionFlowOption. Especifica até que ponto o fluxo de transação é necessário.

Rastreamento

Os rastreamentos permitem monitorar e analisar falhas em seus aplicativos transacionais. Você pode habilitar o rastreamento das seguintes maneiras:

  • Rastreamento padrão do WCF

    Esse tipo de rastreamento é o mesmo que rastrear qualquer aplicativo WCF. Para obter mais informações, consulte Configurando o rastreamento.

  • Rastreamento de WS-AtomicTransaction

    WS-AtomicTransaction rastreamento pode ser habilitado usando o Utilitário de Configuração WS-AtomicTransaction (wsatConfig.exe). Esse rastreamento fornece informações sobre o estado das transações e dos participantes em um sistema. Para habilitar também o rastreamento interno do Modelo de Serviço, você pode definir a chave do registro HKLM\SOFTWARE\Microsoft\WSAT\3.0\ServiceModelDiagnosticTracing como um valor válido da enumeração SourceLevels. Você pode habilitar o log de mensagens da mesma forma que outros aplicativos WCF.

  • Rastreamento System.Transactions

    Ao usar o protocolo OleTransactions, as mensagens de protocolo não podem ser rastreadas. O suporte ao rastreamento que a infraestrutura System.Transactions fornece (que usa OleTransactions) permite que os usuários exibam eventos que ocorreram nas transações. Para habilitar o rastreamento de um aplicativo System.Transactions, inclua o código a seguir no arquivo de configuração App.config.

    <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, pois o WCF também utiliza a infraestrutura System.Transactions.

Confira também