Diagnóstico de aplicaciones transaccionales
En este tema se describe cómo utilizar la característica de diagnóstico y administración de Windows Communication Foundation (WCF) para solucionar problemas de una aplicación transaccional.
Contadores de rendimiento
WCF proporciona un conjunto estándar de contadores de rendimiento para medir el rendimiento de la aplicación transaccional. Para más información, consulte Performance Counters.
Los contadores de rendimiento tienen tres niveles de alcance diferentes: servicio, punto de conexión y operación, tal y como se describe en las tablas siguientes.
Contadores de rendimiento de los servicios
Contador de rendimiento | Descripción |
---|---|
Flujo de transacciones | Número de transacciones que fluyen a las operaciones de este servicio. Este contador se incrementa siempre que se encuentra una transacción en el mensaje enviado al servicio. |
Flujo de transacciones por segundo | El número de transacciones que fluyeron a las operaciones en este servicio en cada segundo. Este contador se incrementa siempre que se encuentra una transacción en el mensaje enviado al servicio. |
Operaciones de transacción confirmadas | El número de operaciones confirmadas realizadas, cuya transacción se ha completado con el resultado confirmado en este servicio. Se confirma totalmente el trabajo hecho bajo tales operaciones. Los recursos se actualizan de acuerdo con el trabajo hecho en la operación. |
Operaciones de transacción confirmadas por segundo | El número de operaciones confirmadas realizadas, cuya transacción se ha completado con el resultado confirmado en este servicio en cada segundo. Se confirma totalmente el trabajo hecho bajo tales operaciones. Los recursos se actualizan de acuerdo con el trabajo hecho en la operación. |
Operaciones de transacción anuladas | El número de operaciones confirmadas realizadas, cuya transacción se ha completado con el resultado anulado en este servicio. El trabajo hecho bajo tales operaciones se deshace. Los recursos se devuelven a su estado anterior. |
Operaciones de transacción anuladas por segundo | El número de operaciones confirmadas realizadas, cuya transacción se ha completado con el resultado anulado en este servicio en cada segundo. El trabajo hecho bajo tales operaciones se deshace. Los recursos se devuelven a su estado anterior. |
Operaciones de transacción dudosas | El número de operaciones confirmadas realizadas, cuya transacción se ha completado con un resultado bajo duda en este servicio. El trabajo hecho con un resultado bajo duda está en un estado indeterminado. Los recursos se mantienen pendientes del resultado. |
Operaciones de transacción dudosas por segundo | El número de operaciones confirmadas realizadas, cuya transacción se ha completado con un resultado bajo duda en este servicio en cada segundo. El trabajo hecho con un resultado bajo duda está en un estado indeterminado. Los recursos se mantienen pendientes del resultado. |
Contadores de rendimiento del extremo
Contador de rendimiento | Descripción |
---|---|
Flujo de transacciones | Número de transacciones de flujo a las operaciones en este punto de conexión. Este contador se incrementa siempre que se encuentra una transacción en el mensaje enviado al punto de conexión. |
Flujo de transacciones por segundo | El número de transacciones que fluyeron a operaciones en este punto de conexión en cada segundo. Este contador se incrementa siempre que se encuentra una transacción en el mensaje enviado al punto de conexión. |
Contadores del rendimiento de las operaciones
Contador de rendimiento | Descripción |
---|---|
Flujo de transacciones | Número de transacciones de flujo a las operaciones en este punto de conexión. Este contador se incrementa siempre que se encuentra una transacción en el mensaje enviado al punto de conexión. |
Flujo de transacciones por segundo | El número de transacciones que fluyeron a operaciones en este punto de conexión en cada segundo. Este contador se incrementa siempre que se encuentra una transacción en el mensaje enviado al punto de conexión. |
Instrumental de administración de Windows
WCF también expone datos de la inspección de un servicio en tiempo de ejecución mediante un proveedor del Instrumental de administración de Windows (WMI) de WCF. Para más información sobre el acceso a los datos de WMI, consulte Uso del Instrumental de administración de Windows para el diagnóstico.
Varias propiedades WMI de solo lectura indican los valores de transacción aplicados para un servicio. Las tablas siguientes hacen una lista de todos estos valores.
En un servicio, ServiceBehaviorAttribute
tiene las propiedades siguientes.
Nombre | Escribir | Descripción |
---|---|---|
ReleaseServiceInstanceOnTransactionComplete | Boolean | Especifica si el objeto de servicio se recicla cuando la transacción actual completa. |
TransactionAutoCompleteOnSessionClose | Boolean | Especifica si las transacciones pendientes se completan cuando la sesión actual se cierra. |
TransactionIsolationLevel | Una cadena que contiene un valor válido de la enumeración IsolationLevel. | Especifica el nivel de aislamiento de transacción que este servicio admite. |
TransactionTimeout | DateTime | Especifica el período dentro del que una transacción se debe completar. |
El ServiceTimeoutsBehavior
tiene la siguiente propiedad.
Nombre | Escribir | Descripción |
---|---|---|
TransactionTimeout | DateTime | Especifica el período dentro del que una transacción se debe completar. |
En un enlace, el TransactionFlowBindingElement
tiene las propiedades siguientes.
Nombre | Escribir | Descripción |
---|---|---|
TransactionProtocol | Una cadena que contiene un valor válido del tipo TransactionProtocol. | Especifica el protocolo de transacción a utilizar para que una transacción fluya. |
TransactionFlow | Boolean | Especifica si el flujo de transacciones entrantes está habilitado. |
En una operación, el OperationBehaviorAttribute
tiene las propiedades siguientes:
Nombre | Escribir | Descripción |
---|---|---|
TransactionAutoComplete | Boolean | Especifica si confirmar automáticamente la transacción actual si no se produce ninguna excepción no controlada. |
TransactionScopeRequired | Boolean | Especifica si la operación requiere una transacción. |
En una operación, el TransactionFlowAttribute
tiene las propiedades siguientes:
Nombre | Escribir | Descripción |
---|---|---|
TransactionFlowOption | Una cadena que contiene un valor válido de la enumeración TransactionFlowOption. | Especifica hasta qué punto se requiere el flujo de la transacción. |
Seguimiento
Las trazas le permiten supervisar y analizar los errores de sus aplicaciones transaccionales. Puede habilitar el seguimiento mediante las maneras siguientes:
Seguimiento estándar de WCF
Este tipo de seguimiento es igual que seguir cualquier aplicación de WCF. Para obtener más información, consulta Configuring Tracing.
Trazado de WS-AtomicTransaction
El seguimiento de WS-AtomicTransaction se puede habilitar con la utilidad WS-AtomicTransaction Configuration (wsatConfig.exe). Tal seguimiento proporciona una visión sobre el estado de las transacciones y participantes de un sistema. Para también permitir el seguimiento de Service Model, puede establecer la clave del Registro
HKLM\SOFTWARE\Microsoft\WSAT\3.0\ServiceModelDiagnosticTracing
en un valor válido de la enumeración SourceLevels. Puede habilitar el registro de mensajes de la misma manera que en otras aplicaciones de WCF.Seguimiento de
System.Transactions
Si se usa el protocolo OleTransactions, no se pueden seguir los mensajes de protocolos. La compatibilidad de seguimiento que proporciona la infraestructura System.Transactions (que utiliza OleTransactions) permite a los usuarios ver eventos que ocurrieron a las transacciones. Para habilitar el seguimiento para una aplicación System.Transactions, incluya el siguiente código en el archivo de configuración
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>
Este código también habilita el seguimiento de WCF, puesto que WCF también utiliza la infraestructura System.Transactions.