Bagikan melalui


MSSQLSERVER_3988

Berlaku untuk: SQL Server

Detail

Atribut Nilai
Nama Produk SQL Server
ID Peristiwa 3988
Sumber Kejadian MSSQLSERVER
Komponen SQLEngine
Nama Simbolis XACT_UNSUPPORT_PARALLEL_TRAN2
Teks Pesan Transaksi baru tidak diperbolehkan karena ada utas lain yang berjalan dalam sesi.

Penjelasan

Kesalahan ini terjadi saat Anda menjalankan kueri terdistribusi yang menggabungkan beberapa tabel yang dihosting oleh instans jarak jauh SQL Server saat XACT_ABORT pengaturan sesi AKTIF. Pesan kesalahan yang mirip dengan yang berikut ini dilaporkan kepada pengguna:

Msg 3988, Level 16, State 1, Line #
Transaksi baru tidak diperbolehkan karena ada utas lain yang berjalan dalam sesi.

Penyebab

Ada beberapa batasan desain dalam cara SQL Server menangani kueri terdistribusi (DQ) ketika kondisi berikut ini benar:

  • SQL Server menggabungkan beberapa tabel dari satu sumber data SQL Server jarak jauh.
  • Sesi yang mengeluarkan kueri tidak terdaftar dalam transaksi terdistribusi.

Dalam situasi ini, upaya untuk menjalankan kueri dapat menimbulkan salah satu dari dua kesalahan yang disebutkan di bagian Penjelasan .

Tindakan pengguna

Untuk mengatasi masalah ini, sertakan kueri terdistribusi dalam pernyataan 'mulai transaksi terdistribusi':

BEGIN DISTRIBUTED TRANSACTION
/*The actual Distributed Query goes next, outside of comments*/
COMMIT TRANSACTION