Compartir vía


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 RegistroHKLM\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.

Consulte también