عند تسجيل الدخول تظهر رسالة Database transaction isolation level is not correct (TIL is READ COMMITTED)؟

Viewed 2

عند تسجيل الدخول أو فتح نافذة جديدة تظهر رسالة الخطأ التالية:

Database transaction isolation level is not correct, please contact our support team and provide them the following message: TIL is READ COMMITTED

ما الحل؟


Originally posted at https://answers.namasoft.com/question/432/ on 2018-11-26.

1 Answers

السبب في هذه المشكلة هو مستوى عزل المعاملات (Transaction Isolation Level).

قم بإيقاف تشغيل التومكات ثم شغّل الجملة التالية (بعد استبدال DBNAME باسم قاعدة بيانات العميل الصحيح):

USE [master];
DECLARE @kill varchar(8000) = '';
SELECT @kill = @kill + 'kill ' + CONVERT(varchar(5), session_id) + ';'
FROM sys.dm_exec_sessions
WHERE database_id = db_id('DBNAME')

EXEC(@kill);

ALTER DATABASE DBNAME
SET READ_COMMITTED_SNAPSHOT ON;

ALTER DATABASE DBNAME
SET ALLOW_SNAPSHOT_ISOLATION ON;

ALTER DATABASE DBNAME
SET MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT ON;

إذا كانت نسخة الـ SQL Server هي 2014 أو أقل، قد تحدث معك مشكلة بسبب الجملة الأخيرة:

ALTER DATABASE DBNAME
SET MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT ON;

قم بحذفها من الاستعلام وشغّله مرة أخرى إذا ظهرت معك رسالة خطأ.

ملاحظة (لإصدار SQL Server 2008): استخدم نفس الجمل مع استبعاد الجملة الأخيرة، ويمكن إنهاء الجلسات بالاعتماد على اسم الجهاز (host_name) بدلاً من معرّف قاعدة البيانات:

USE [master];
DECLARE @kill varchar(8000) = '';
SELECT @kill = @kill + 'kill ' + CONVERT(varchar(5), session_id) + ';'
FROM sys.dm_exec_sessions
WHERE host_name = ('DBNAME')

EXEC(@kill);

ALTER DATABASE DBNAME
SET READ_COMMITTED_SNAPSHOT ON;

ALTER DATABASE DBNAME
SET ALLOW_SNAPSHOT_ISOLATION ON;

Originally posted at https://answers.namasoft.com/question/432/ on 2018-11-26.