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.


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.


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?

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.