Wir haben ein regelmäßiges Ereignis, bei dem viele Verbindungen an TM REQUEST hängen (von sys.dm_os_waiting_tasks
) und keine Fortschritte machen. KILL
Auf die Betroffenen session_id
wirkt nichts
Der Server führt die Datenbankspiegelung aus (2008R2). Das Anhalten und Fortsetzen der Spiegelung behebt das Problem, wenn es auftritt.
Die in diesem Zustand festgefahrene Sitzung kann nicht beendet werden. Die Belastung des Spiegels ist die übliche, nicht platzende. Sobald eine große Anzahl von Verbindungen in diesem Zustand blockiert ist, friert das System ein und der Spiegel wird nicht mehr repliziert (alle Abfragen werden blockiert).
Hat jemand das schon einmal gesehen und weiß, was es verursacht? In den Fehlerprotokollen ist nichts.
sql-server
Thomas Kejser
quelle
quelle
fiber mode
?resource_description
Set?Antworten:
TM steht für Transaction Manager. Der aktuelle Befehl, der auf TM-Anforderung festgelegt ist, bedeutet, dass der Thread derzeit eine DTC-Anforderung (Distributed Transaction Coordinator) bearbeitet, um eine DTC-Transaktion zu registrieren oder einen Fehler daraus zu beheben oder ein Commit auszuführen. Verteilte Transaktionen werden für die Datenbankspiegelung nicht unterstützt, da dadurch die Transaktionsintegrität nicht garantiert werden kann. Unterdrücken Sie Ihre DTC-Transaktionen und dies sollte verschwinden.
quelle
sp_configure 'Ad Hoc Distributed Queries'
an? - Möglicherweise gibt ein System datenbankübergreifende Transaktionen mitOPENQUERY
Ad-hoc-Anweisungen aus oder so?Service Broker verwendet den SQL Server-Transaktionsmanager anstelle von Microsoft Distributed Transaction Coordinator (MS DTC). Die Transaktion ist nicht instanzübergreifend, sondern innerhalb einer Instanz. Verwenden Sie Service Broker?
quelle