tracing msdtc system.transactions escalation

tracing - Rastrear por qué una transacción se escala a DTC



msdtc system.transactions (2)

¿Hay alguna manera de determinar con precisión por qué un TrasactionScope System.Transaction se está escalando al DTC? Estamos llegando a un bache con uno de nuestros componentes que parece escalar la transacción, mientras que el resto de los componentes (que parecen engañosamente similares) no hace escalada.

¿Hay alguna información disponible sobre los motivos de la escalada y cómo pueden ser encontrados y observados? Analizador de SQL? ¿Archivos de registro? ¿O no tengo suerte en este caso?

ACTUALIZACIÓN: me estoy ejecutando contra SQL Server 2005 para obtener información


Podría intentar cerrar el servicio Distributed Transaction Cordinator y configurar su tipo de inicio en disabled. Esto causará una excepción cuando se promueva la transacción que tendrá el código del problema en la pila de llamadas.

Por supuesto, esto no ayudará si tiene otros elementos en ejecución en la máquina que requieren este servicio, pero sería posible en una máquina de depuración.


Al usar TransactionScope una transacción se escala cada vez que la aplicación abre una segunda conexión (incluso a la misma base de datos) dentro del alcance de la transacción en cuestión.