Diagnostica di applicazioni transazionali
In questo argomento viene illustrato come utilizzare la funzionalità di gestione e di diagnostica di Windows Communication Foundation (WCF) per risolvere i problemi di un'applicazione transazionale.
Contatori delle prestazioni
WCF fornisce un set standard di contatori delle prestazioni per misurare le prestazioni delle applicazioni transazionali. Per ulteriori informazioni, vedere Contatori delle prestazioni di WCF.
I contatori delle prestazioni vengono definiti a tre diversi livelli: servizio, endpoint e operazione come descritto nelle tabelle seguenti.
Contatori delle prestazioni del servizio
Contatore prestazioni | Descrizione |
---|---|
Transazioni propagate |
Numero di transazioni propagate alle operazioni in questo servizio. Questo contatore viene incrementato ogni volta che è presente una transazione nel messaggio inviato al servizio. |
Transazioni propagate al secondo |
Numero di transazioni propagate alle operazioni in questo servizio ogni secondo. Questo contatore viene incrementato ogni volta che è presente una transazione nel messaggio inviato al servizio. |
Operazioni transazionali con commit eseguito |
Numero di operazioni transazionali eseguite la cui transazione è stata completata e di cui è stato eseguito il commit del risultato nel servizio. Per le attività completate nell'ambito di tali operazioni viene eseguito il commit completo. Le risorse vengono aggiornate in base alle attività completate nell'operazione. |
Operazioni transazionali con commit eseguito al secondo |
Numero di operazioni transazionali eseguite la cui transazione è stata completata e di cui è stato eseguito il commit del risultato nel servizio ogni secondo. Per le attività completate nell'ambito di tali operazioni viene eseguito il commit completo. Le risorse vengono aggiornate in base alle attività completate nell'operazione. |
Operazioni transazionali interrotte |
Numero di operazioni transazionali eseguite la cui transazione è stata completata con il risultato annullato nel servizio. Per le attività completate nell'ambito di tali operazioni viene eseguito il rollback. Viene ripristinato lo stato precedente delle risorse. |
Operazioni transazionali interrotte ogni secondo |
Numero di operazioni transazionali eseguite la cui transazione è stata completata con il risultato annullato nel servizio ogni secondo. Per le attività completate nell'ambito di tali operazioni viene eseguito il rollback. Viene ripristinato lo stato precedente delle risorse. |
Operazioni transazionali incerte |
Numero di operazioni transazionali eseguite la cui transazione è stata completata con un risultato in dubbio nel servizio. Le attività completate con un risultato in dubbio sono in stato indeterminato. Le risorse vengono mantenute con risultato in sospeso. |
Operazioni transazionali in dubbio al secondo |
Numero di operazioni transazionali eseguite la cui transazione è stata completata con un risultato in dubbio nel servizio ogni secondo. Le attività completate con un risultato in dubbio sono in stato indeterminato. Le risorse vengono mantenute con risultato in sospeso. |
Contatori delle prestazioni dell'endpoint
Contatore prestazioni | Descrizione |
---|---|
Transazioni propagate |
Numero di transazioni propagate alle operazioni in questo endpoint. Questo contatore viene incrementato ogni volta che è presente una transazione nel messaggio inviato all'endpoint. |
Transazioni propagate al secondo |
Numero di transazioni propagate alle operazioni in questo endpoint ogni secondo. Questo contatore viene incrementato ogni volta che è presente una transazione nel messaggio inviato all'endpoint. |
Contatori delle prestazioni per l'operazione
Contatore prestazioni | Descrizione |
---|---|
Transazioni propagate |
Numero di transazioni propagate alle operazioni in questo endpoint. Questo contatore viene incrementato ogni volta che è presente una transazione nel messaggio inviato all'endpoint. |
Transazioni propagate al secondo |
Numero di transazioni propagate alle operazioni in questo endpoint ogni secondo. Questo contatore viene incrementato ogni volta che è presente una transazione nel messaggio inviato all'endpoint. |
Strumentazione gestione Windows
WCF espone dati di ispezione di un servizio in fase di esecuzione tramite un provider di Strumentazione gestione Windows (WMI) WCF. Per ulteriori informazioni su sull'accesso a dati WMI, vedere Utilizzo di Strumentazione gestione Windows (WMI) per la diagnostica.
Un numero di proprietà WMI in sola lettura indica le impostazioni della transazione applicate per un servizio. Nella tabelle seguenti vengono elencate tutte queste impostazioni.
In un servizio, ServiceBehaviorAttribute dispone delle proprietà seguenti.
Nome | Tipo | Descrizione |
---|---|---|
ReleaseServiceInstanceOnTransactionComplete |
Booleano |
Specifica se l'oggetto servizio viene riciclato al completamento della transazione corrente. |
TransactionAutoCompleteOnSessionClose |
Valore booleano |
Specifica se alla chiusura della sessione corrente vengono completate le transazioni in sospeso. |
TransactionIsolationLevel |
Stringa che contiene un valore valido dell'enumerazione IsolationLevel. |
Specifica il livello di isolamento della transazione supportato dal servizio. |
TransactionTimeout |
Specifica il periodo di tempo entro il quale deve essere completata una transazione. |
ServiceTimeoutsBehavior dispone della proprietà seguente.
Nome | Tipo | Descrizione |
---|---|---|
TransactionTimeout |
DateTime |
Specifica il periodo di tempo entro il quale deve essere completata una transazione. |
In un'associazione, TransactionFlowBindingElement dispone delle proprietà seguenti.
Nome | Tipo | Descrizione |
---|---|---|
TransactionProtocol |
Stringa che contiene un valore valido del tipo TransactionProtocol. |
Specifica il protocollo di transazione da utilizzare per la propagazione di una transazione. |
TransactionFlow |
Valore booleano |
Specifica se è attivato il flusso delle transazioni in ingresso. |
In un'operazione, OperationBehaviorAttribute dispone delle proprietà seguenti:
Nome | Tipo | Descrizione |
---|---|---|
TransactionAutoComplete |
Valore booleano |
Specifica se eseguire automaticamente il commit della transazione corrente se non si verifica alcuna eccezione non gestita. |
TransactionScopeRequired |
Valore booleano |
Specifica se l'operazione richiede una transazione. |
In un'operazione, TransactionFlowAttribute dispone delle proprietà seguenti.
Nome | Tipo | Descrizione |
---|---|---|
TransactionFlowOption |
Stringa che contiene un valore valido dell'enumerazione TransactionFlowOption. |
Specifica in che misura è richiesto il flusso delle transazioni. |
Traccia
Le tracce consentono di controllare e analizzare errori nelle applicazioni transazionali. È possibile attivare la traccia nei modi seguenti:
Traccia WCF standard
Questo tipo di traccia è equivalente alla traccia di qualsiasi applicazione WCF. Per ulteriori informazioni, vedere Configurazione delle funzionalità di traccia.
Traccia WS-AtomicTransaction
È possibile attivare la traccia WS-AtomicTransaction tramite Utilità di configurazione WS-AtomicTransaction (wsatConfig.exe). Tale traccia consente di comprendere lo stato delle transazioni e di conoscere i partecipanti all'interno di un sistema. 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. È possibile attivare la registrazione messaggi nella stessa modalità utilizzata per altre applicazioni WCF.
Traccia System.Transactions
Quando si utilizza il protocollo OleTransactions, i messaggi di protocollo non possono essere tracciati. 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. Per attivare la traccia per un'applicazione System.Transactions, includere il codice seguente nel file di configurazione 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>
In tal modo si attiva inoltre la traccia WCF, poiché anche WCF utilizza l'infrastruttura System.Transactions.
Vedere anche
Riferimento
Utilità di configurazione WS-AtomicTransaction (wsatConfig.exe)
Concetti
Amministrazione e diagnostica
Configurazione delle funzionalità di traccia