Sesi menggantung dengan REQUEST TM dan pegangan rencana 0x0000

12

Kami memiliki acara berkala di mana banyak koneksi menunggu TM REQUEST (dari sys.dm_os_waiting_tasks) dan tidak membuat kemajuan. KILLpada yang terkena session_idtidak melakukan apa-apa

Server menjalankan mirroring basis data (2008R2). Menjeda dan melanjutkan mirroring memperbaiki masalah ketika itu terjadi.

Sesi yang macet dalam kondisi ini tidak dapat dilakukan. Beban di cermin adalah yang biasa, bukan sembur. Setelah sejumlah besar koneksi macet dalam kondisi ini, sistem membeku dan cermin berhenti mereplikasi (semua pertanyaan diblokir).

Adakah yang pernah melihat ini sebelumnya dan tahu apa yang menyebabkannya? Tidak ada apa pun di log kesalahan.

Thomas Kejser
sumber
Mode apa mirroring dikonfigurasi sebagai? Apa jenis menunggu ketika masalah ini terjadi? Apakah ada kemungkinan SQL Server dikonfigurasi fiber mode?
Kin Shah
Mirroring dalam mode Sinkron. Tidak ada serat Tidak ada yang lain menunggu
Thomas Kejser
Apa yang resource_descriptionditetapkan untuk?
Thomas Stringer
Saya perhatikan ini belum terlalu lama (kami menjalankan async, tetapi kami mengubahnya untuk menyinkronkan ketika kami melakukan failover, atau menambal dll). Apakah spid tetap setelah DBs sepenuhnya disinkronkan?
Subhash Pant
SPID menghilang setelah jeda. Tetapi mereka tidak dapat diraih saat masalah sedang terjadi
Thomas Kejser

Jawaban:

9

TM adalah singkatan dari Transaction Manager. Perintah saat ini sedang diatur ke Permintaan TM berarti bahwa utas saat ini sedang melayani permintaan DTC (Koordinator Transaksi Terdistribusi), baik untuk mendaftar dalam transaksi DTC, atau cacat darinya, atau melakukan itu, atau melakukan itu, atau sebagainya. Transaksi Terdistribusi tidak didukung untuk Mirroring Database karena tidak dapat menjamin integritas transaksi. Menekan transaksi DTC Anda dan ini harus hilang.

stacylaray
sumber
Credit S. Ashwin, kolega, Dukungan Microsoft SQL
stacylaray
Bagaimana saya mendiagnosis dari mana ini berasal? Log MSDTC di server kosong
Thomas Kejser
Bisakah DTC terlibat jika saya memiliki transaksi lintas basis data pada contoh yang sama?
Thomas Kejser
@ThomasKejser - sp_configure 'Ad Hoc Distributed Queries'aktif? - Mungkin beberapa sistem mengeluarkan transaksi lintas basis data menggunakan OPENQUERYpernyataan ad-hoc atau semacamnya?
Max Vernon
1
Transaksi lintas basis data menggunakan kode dasar yang sama dengan transaksi DTC. Perbedaan utama adalah kurangnya koordinasi manajer DTC. Alih-alih, SQL Server memilih DBID terendah dalam transaksi untuk menjadi koordinator transaksi.
stacylaray
0

Pialang Layanan menggunakan manajer transaksi SQL Server alih-alih Koordinator Transaksi Terdistribusi Microsoft (MS DTC). Transaksi tidak lintas instance tetapi dalam instance. Apakah Anda menggunakan Service Broker?

stacylaray
sumber