Nous avons un événement périodique où de nombreuses connexions sont suspendues à TM REQUEST (from sys.dm_os_waiting_tasks
) et ne progressent pas. KILL
sur les affectés session_id
ne fait rien
Le serveur exécute la mise en miroir de bases de données (2008R2). La suspension et la reprise de la mise en miroir corrigent le problème lorsqu'il se produit.
Les sessions bloquées dans cet état sont irrécupérables. La charge sur le miroir est habituelle, pas éclatante. Une fois qu'un nombre élevé de connexions est bloqué dans cet état, le système se bloque et le miroir cesse de se répliquer (toutes les requêtes sont bloquées).
Quelqu'un a déjà vu cela avant et sait ce qui en est la cause? Il n'y a rien dans les journaux d'erreurs.
sql-server
Thomas Kejser
la source
la source
fiber mode
?resource_description
décor?Réponses:
TM signifie Transaction Manager. La commande actuelle étant définie sur TM Request signifie que le thread est en train de traiter une demande DTC (Distributed Transaction Coordinator), soit pour s'inscrire dans une transaction DTC, soit pour en faire défaut, soit pour la valider, etc. Les transactions distribuées ne sont pas prises en charge pour la mise en miroir de bases de données car elles ne peuvent pas garantir l'intégrité des transactions. Supprimez vos transactions DTC et cela devrait disparaître.
la source
sp_configure 'Ad Hoc Distributed Queries'
? - Peut-être qu'un système émet des transactions entre bases de données en utilisantOPENQUERY
des relevés ad hoc ou quelque chose?Service Broker utilise le gestionnaire de transactions SQL Servers au lieu du coordinateur de transactions distribuées Microsoft (MS DTC). La transaction ne se fait pas entre les instances mais au sein d'une instance. Utilisez-vous Service Broker?
la source