Tenemos un evento periódico en el que muchas conexiones cuelgan de TM REQUEST (from sys.dm_os_waiting_tasks
) y no avanzan. KILL
en el afectado session_id
no hace nada
El servidor ejecuta la creación de reflejo de la base de datos (2008R2). Pausar y reanudar la duplicación corrige el problema cuando ocurre.
La sesión atascada en este estado es imposible de matar. La carga en el espejo es la habitual, no estalló. Una vez que una gran cantidad de conexiones están bloqueadas en este estado, el sistema se congela y el espejo deja de replicarse (todas las consultas se bloquean).
¿Alguien ha visto esto antes y sabe qué lo está causando? No hay nada en los registros de errores.
sql-server
Thomas Kejser
fuente
fuente
fiber mode
?resource_description
set?Respuestas:
TM significa Transaction Manager. El comando actual que se establece en TM Request significa que el hilo actualmente está atendiendo una solicitud de DTC (Coordinador de transacciones distribuidas), ya sea para alistarse en una transacción de DTC, o abandonarla, o confirmarla, etc. Las transacciones distribuidas no son compatibles con el reflejo de la base de datos porque no puede garantizar la integridad de la transacción. Suprima sus transacciones de DTC y esto debería desaparecer.
fuente
sp_configure 'Ad Hoc Distributed Queries'
? - ¿Quizás algún sistema está emitiendo transacciones entre bases de datos utilizandoOPENQUERY
declaraciones ad-hoc o algo así?Service Broker utiliza el administrador de transacciones de Servidores SQL en lugar del Coordinador de transacciones distribuidas de Microsoft (MS DTC). La transacción no es a través de instancias sino dentro de una instancia. ¿Estás utilizando Service Broker?
fuente