Diagnostica di applicazioni transazionaliDiagnosing Transactional Applications

In questo argomento viene descritto come utilizzare la funzionalità di diagnostica e gestione di Windows Communication Foundation (WCF) per risolvere i problemi di un'applicazione transazionale.This topic describes how to use the Windows Communication Foundation (WCF) management and diagnostics feature to troubleshoot a transactional application.

Contatori delle prestazioniPerformance Counters

WCF fornisce un set standard di contatori delle prestazioni per misurare le prestazioni dell'applicazione transazionale.WCF provides a standard set of performance counters for you to measure your transactional application's performance. Per altre informazioni, vedere Contatori delle prestazioni.For more information, see Performance Counters.

I contatori delle prestazioni vengono definiti a tre diversi livelli: servizio, endpoint e operazione come descritto nelle tabelle seguenti.Performance counters are scoped to three different levels: service, endpoint, and operation, as described in the following tables.

Contatori delle prestazioni del servizioService Performance Counters

Contatore di prestazioniPerformance counter DescrizioneDescription
Transazioni propagateTransactions Flowed Numero di transazioni propagate alle operazioni in questo servizio.The number of transactions that flowed to operations in this service. Questo contatore viene incrementato ogni volta che è presente una transazione nel messaggio inviato al servizio.This counter is incremented any time a transaction is present in the message that is sent to the service.
Transazioni propagate al secondoTransactions Flowed Per Second Numero di transazioni propagate alle operazioni in questo servizio ogni secondo.The number of transactions that flowed to operations in this service within each second. Questo contatore viene incrementato ogni volta che è presente una transazione nel messaggio inviato al servizio.This counter is incremented any time a transaction is present in the message that is sent to the service.
Operazioni transazionali con commit eseguitoTransacted Operations Committed Numero di operazioni transazionali eseguite la cui transazione è stata completata e di cui è stato eseguito il commit del risultato nel servizio.The number of transacted operations performed, whose transaction has completed with the outcome committed in this service. Per le attività completate nell'ambito di tali operazioni viene eseguito il commit completo.Work done under such operations is fully committed. Le risorse vengono aggiornate in base alle attività completate nell'operazione.Resources are updated in accordance with the work done in the operation.
Operazioni transazionali con commit eseguito al secondoTransacted Operations Committed Per Second Numero di operazioni transazionali eseguite la cui transazione è stata completata e di cui è stato eseguito il commit del risultato nel servizio ogni secondo.The number of transacted operations performed, whose transaction has completed with the outcome committed in this service within each second. Per le attività completate nell'ambito di tali operazioni viene eseguito il commit completo.Work done under such operations is fully committed. Le risorse vengono aggiornate in base alle attività completate nell'operazione.Resources are updated in accordance with the work done in the operation.
Operazioni transazionali interrotteTransacted Operations Aborted Numero di operazioni transazionali eseguite la cui transazione è stata completata con il risultato annullato nel servizio.The number of transacted operations performed, whose transaction has completed with the outcome aborted in this service. Per le attività completate nell'ambito di tali operazioni viene eseguito il rollback.Work done under such operations is rolled back. Viene ripristinato lo stato precedente delle risorse.Resources are reverted to their previous state.
Operazioni transazionali interrotte ogni secondoTransacted Operations Aborted Per Second Numero di operazioni transazionali eseguite la cui transazione è stata completata con il risultato annullato nel servizio ogni secondo.The number of transacted operations performed, whose transaction has completed with the outcome aborted in this service within each second. Per le attività completate nell'ambito di tali operazioni viene eseguito il rollback.Work done under such operations is rolled back. Viene ripristinato lo stato precedente delle risorse.Resources are reverted to their previous state.
Operazioni transazionali incerteTransacted Operations In Doubt Numero di operazioni transazionali eseguite la cui transazione è stata completata con un risultato in dubbio nel servizio.The number of transacted operations performed, whose transaction has completed with an outcome in doubt in this service. Le attività completate con un risultato in dubbio sono in stato indeterminato.Work done with an outcome in doubt is in an indeterminate state. Le risorse vengono mantenute con risultato in sospeso.Resources are held pending outcome.
Operazioni transazionali in dubbio al secondoTransacted Operations In Doubt Per Second Numero di operazioni transazionali eseguite la cui transazione è stata completata con un risultato in dubbio nel servizio ogni secondo.The number of transacted operations performed, whose transaction has completed with an outcome in doubt in this service within each second. Le attività completate con un risultato in dubbio sono in stato indeterminato.Work done with an outcome in doubt is in an indeterminate state. Le risorse vengono mantenute con risultato in sospeso.Resources are held pending outcome.

Contatori delle prestazioni dell'endpointEndpoint Performance Counters

Contatore di prestazioniPerformance counter DescrizioneDescription
Transazioni propagateTransactions Flowed Numero di transazioni propagate alle operazioni in questo endpoint.The number of transactions that flowed to operations at this endpoint. Questo contatore viene incrementato ogni volta che è presente una transazione nel messaggio inviato all'endpoint.This counter is incremented any time a transaction is present in the message that is sent to the endpoint.
Transazioni propagate al secondoTransactions Flowed Per Second Numero di transazioni propagate alle operazioni in questo endpoint ogni secondo.The number of transactions that flowed to operations at this endpoint within each second. Questo contatore viene incrementato ogni volta che è presente una transazione nel messaggio inviato all'endpoint.This counter is incremented any time a transaction is present in the message that is sent to the endpoint.

Contatori delle prestazioni per l'operazioneOperation Performance Counters

Contatore di prestazioniPerformance counter DescrizioneDescription
Transazioni propagateTransactions Flowed Numero di transazioni propagate alle operazioni in questo endpoint.The number of transactions that flowed to operations at this endpoint. Questo contatore viene incrementato ogni volta che è presente una transazione nel messaggio inviato all'endpoint.This counter is incremented any time a transaction is present in the message that is sent to the endpoint.
Transazioni propagate al secondoTransactions Flowed Per Second Numero di transazioni propagate alle operazioni in questo endpoint ogni secondo.The number of transactions that flowed to operations at this endpoint within each second. Questo contatore viene incrementato ogni volta che è presente una transazione nel messaggio inviato all'endpoint.This counter is incremented any time a transaction is present in the message that is sent to the endpoint.

Strumentazione gestione WindowsWindows Management Instrumentation

WCF espone dati di ispezione di un servizio in fase di esecuzione tramite un provider di Strumentazione gestione Windows (WMI) di WCF.WCF exposes inspection data of a service at run time through a WCF Windows Management Instrumentation (WMI) provider. Per ulteriori informazioni sull'accesso ai dati WMI, vedere tramite Strumentazione gestione Windows per la diagnostica.For more information about accessing WMI data, see Using Windows Management Instrumentation for Diagnostics.

Un numero di proprietà WMI in sola lettura indica le impostazioni della transazione applicate per un servizio.A number of read-only WMI properties indicate the applied transaction settings for a service. Nella tabelle seguenti vengono elencate tutte queste impostazioni.The following tables list all of these settings.

In un servizio, ServiceBehaviorAttribute dispone delle proprietà seguenti.On a service, the ServiceBehaviorAttribute has the following properties.

NomeName TipoType DescrizioneDescription
ReleaseServiceInstanceOnTransactionCompleteReleaseServiceInstanceOnTransactionComplete BooleanoBoolean Specifica se l'oggetto servizio viene riciclato al completamento della transazione corrente.Specifies whether the service object is recycled when the current transaction completes.
TransactionAutoCompleteOnSessionCloseTransactionAutoCompleteOnSessionClose BooleanoBoolean Specifica se alla chiusura della sessione corrente vengono completate le transazioni in sospeso.Specifies whether pending transactions are completed when the current session closes.
TransactionIsolationLevelTransactionIsolationLevel Stringa che contiene un valore valido dell'enumerazione IsolationLevel.A string that contains a valid value of the IsolationLevel enumeration. Specifica il livello di isolamento della transazione supportato dal servizio.Specifies the transaction isolation level that this service supports.
TransactionTimeoutTransactionTimeout DateTime Specifica il periodo di tempo entro il quale deve essere completata una transazione.Specifies the period within which a transaction must complete.

ServiceTimeoutsBehavior dispone della proprietà seguente.The ServiceTimeoutsBehavior has the following property.

NomeName TipoType DescrizioneDescription
TransactionTimeoutTransactionTimeout DateTime Specifica il periodo di tempo entro il quale deve essere completata una transazione.Specifies the period within which a transaction must complete.

In un'associazione, TransactionFlowBindingElement dispone delle proprietà seguenti.On a binding, the TransactionFlowBindingElement has the following properties.

NomeName TipoType DescrizioneDescription
TransactionProtocolTransactionProtocol Stringa che contiene un valore valido del tipo TransactionProtocol.A string that contains a valid value of the TransactionProtocol type. Specifica il protocollo di transazione da utilizzare per la propagazione di una transazione.Specifies the transaction protocol to use in flowing a transaction.
TransactionFlowTransactionFlow BooleanoBoolean Specifica se è attivato il flusso delle transazioni in ingresso.Specifies whether incoming transaction flow is enabled.

In un'operazione, OperationBehaviorAttribute dispone delle proprietà seguenti:On an operation, the OperationBehaviorAttribute has the following properties:

NomeName TipoType DescrizioneDescription
TransactionAutoCompleteTransactionAutoComplete BooleanoBoolean Specifica se eseguire automaticamente il commit della transazione corrente se non si verifica alcuna eccezione non gestita.Specifies whether to automatically commit the current transaction if no unhandled exceptions occur.
TransactionScopeRequiredTransactionScopeRequired BooleanoBoolean Specifica se l'operazione richiede una transazione.Specifies whether the operation requires a transaction.

In un'operazione, TransactionFlowAttribute dispone delle proprietà seguenti.On an operation, the TransactionFlowAttribute has the following properties.

NomeName TipoType DescrizioneDescription
TransactionFlowOptionTransactionFlowOption Stringa che contiene un valore valido dell'enumerazione TransactionFlowOption.A string that contains a valid value of the TransactionFlowOption enumeration. Specifica in che misura è richiesto il flusso delle transazioni.Specifies the extent to which transaction flow is required.

TracciaTracing

Le tracce consentono di controllare e analizzare errori nelle applicazioni transazionali.Traces enable you to monitor and analyze faults in your transactional applications. È possibile attivare la traccia nei modi seguenti:You can enable tracing using the following ways:

  • Traccia di WCF standardStandard WCF tracing

    Questo tipo di traccia è equivalente alla traccia di qualsiasi applicazione WCF.This type of tracing is the same as tracing any WCF application. Per altre informazioni, vedere Configuring Tracing.For more information, see Configuring Tracing.

  • Traccia WS-AtomicTransactionWS-AtomicTransaction tracing

    Traccia WS-AtomicTransaction può essere abilitata utilizzando il utilità configurazione WS-AtomicTransaction (wsatConfig.exe).WS-AtomicTransaction tracing can be enabled by using the WS-AtomicTransaction Configuration Utility (wsatConfig.exe). Tale traccia consente di comprendere lo stato delle transazioni e di conoscere i partecipanti all'interno di un sistema.Such tracing provides insight into the state of transactions and participants within a system. Per attivare anche la traccia del modello di servizi interna, è possibile impostare la chiave del Registro di sistema HKLM\SOFTWARE\Microsoft\WSAT\3.0\ServiceModelDiagnosticTracing su un valore valido dell'enumerazione SourceLevels.To also enable internal Service Model tracing, you can set the HKLM\SOFTWARE\Microsoft\WSAT\3.0\ServiceModelDiagnosticTracing registry key to a valid value of the SourceLevels enumeration. È possibile abilitare la registrazione nello stesso modo di altre applicazioni WCF dei messaggi.You can enable message logging in the same way as other WCF applications.

  • Traccia System.TransactionsSystem.Transactions tracing

    Quando si utilizza il protocollo OleTransactions, i messaggi di protocollo non possono essere tracciati.When using the OleTransactions protocol, protocol messages cannot be traced. Il supporto di traccia fornito dall'infrastruttura System.Transactions, che utilizza OleTransactions, consente agli utenti di visualizzare gli eventi che si sono verificati nelle transazioni.The tracing support the System.Transactions infrastructure provides (which uses OleTransactions) allows users to view events that occurred to the transactions. Per attivare la traccia per un'applicazione System.Transactions, includere il codice seguente nel file di configurazione App.config.To enable tracing for a System.Transactions application, include the following code in the App.config configuration file.

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

    Ciò consente inoltre la traccia di WCF, come WCF utilizza anche il System.Transactions dell'infrastruttura.This also enables WCF tracing, as WCF also utilizes the System.Transactions infrastructure.

Vedere ancheSee Also

Amministrazione e diagnosticaAdministration and Diagnostics
Configurazione delle funzionalità di tracciaConfiguring Tracing
Utilità di configurazione WS-AtomicTransaction (wsatConfig.exe)WS-AtomicTransaction Configuration Utility (wsatConfig.exe)