Ошибка СУБД. Экземпляру ядра СУБД SQL Server не удается получить ресурс LOCK в 1С 8
 
Описание ошибки:
Ошибка СУБД: Microsoft SQL Server Native Client 11.0: Экземпляру ядра СУБД SQL Server не удается получить ресурс LOCK в данный момент времени. Запустите инструкцию повторно, когда число активных пользователей уменьшится. Попросите администратора баз данных проверить конфигурацию блокировки и памяти для данного экземпляра либо выполнить проверку давно выполняющихся транзакций. HRESULT=80040E14, SQLSrvr: SQLSTATE=42000, state=4, Severity=13, native=1204, line=1

Найденные решения:

Если у Вас не был настроен язык при установке платформы 1С, то по умолчанию на английском ошибка будет звучать и читаться так:

Microsoft SQL Server Native Client 11.0: The instance of the SQL Server Database Engine cannot obtain a LOCK at this time. Rereun your statement when there are fewer active users. Ask the database administrator to check the lock and memory configuration for this instance, or to check for long-running transactions.
HRESULT=80040E14, SQLSrvr: SQLSTATE=42000, state=4, Severity=13, native=1204, line=1

Нажатие на изображении увеличит его

Рис.1. Текст ошибки на английском языке. Изображение использовано с forum.infostart.ru 

С данной ошибкой столкнулись в процессе выполнения регламентного задания, которое по своей сути было достаточно "тяжелым", если можно так выразиться для системы - в процессе него выполнялась загрузка в документы (в каждом из документов почти 90 тыс. строк) и их проведение. 

Нажатие на изображении увеличит его
как исправить, устранить ошибку СУБД в 1С 8, Экземпляру ядра СУБД SQL Server не удается получить ресурс LOCK
Рис. 2. Пример возникновения ошибки при выполнении регламентного задания

В конкретном данном примере помогло избавиться от ошибки элементарное увеличение объема оперативной памяти на сервере с базами 1С. Но, если пока Вам этот вариант не доступен или не возможен, то может помочь одна из ниже приведенных рекомендаций.

На сайте Microsoft мы найдем рекомендацию по этой ошибке 1204, т.к. мы находим в описании ошибки параметр "native=1204":

​​If you're using a non-default value for locks, use sp_configure to change the value of locks to its default setting by using the following statement:

Если вы используете для блокировок значение, отличное от значения по умолчанию, используйте sp_configure, чтобы изменить значение блокировок на значение по умолчанию, используя следующую инструкцию:

EXEC sp_configure 'locks', 0

Нажатие на изображении увеличит его
1С 8 Error 1204, Severity: 19, State: 1 The SQL Server cannot obtain a LOCK resource at this time как исправить
Рис. 3. Описание решения для ошибки на сайте microsoft.com

Сама Microsoft отмечает, в чем может быть причина ошибки - нехватка памяти и ограничение количества блокировок:

Во время выполнения запросы часто захватывают и снимают блокировки ресурсов, к которым они обращаются. Получение блокировки использует структуры блокировки из доступного пула структур блокировки. Если невозможно получить новые блокировки из-за отсутствия в пуле доступных структур блокировки, возвращается сообщение об ошибке 1204.
Эта проблема может быть вызвана любой из следующих причин:

  • SQL Server не может выделить больше памяти либо потому, что ее используют другие процессы, либо потому, что SQL Server израсходовал всю свою память и достиг значения, настроенного с помощью параметра конфигурации max server memory​.
  • Диспетчер блокировок не будет использовать более 60 процентов памяти, доступной для SQL Server, и пороговое значение уже достигнуто.​
  • Вы установили блокировки параметров конфигурации системной хранимой процедуры sp_configure на нестандартное, нединамическое значение.
  • Вы включили флаги трассировки 1211, 1224 или оба на вашем SQL Server для управления поведением эскалации блокировки, и вы выполняете запросы, требующие много блокировок.

Изменить значение параметра "max server memory" возможно и в SQL Server Management Studio. Таким же образом возможно изменить и значение параметра "":

  1. В «Обозревателе объектов» (Object Explorer) щелкните сервер правой кнопкой мыши и выберите пункт «Свойства» («Properties»).
  2. Выберите страницу «Память» (Memory) в окне «Свойства сервера» (Server Properties). Отображаются текущие значения Минимальная память сервера (Minimum server memory) и Максимальная память сервера (Maximum server memory).
  3. В "Параметрах памяти сервера" (Server memory options) введите нужные значения для "Минимальной памяти сервера" (Minimum server memory) и "Максимальной памяти сервера" (Maximum server memory). Рекомендации см. в разделах ниже "Минимальной памяти сервера (МБ)" и "Максимальной памяти сервера (МБ)" в той же статье.

Нажатие на изображении увеличит его
как изменить параметр max server memory в SQL
Рис. 4. Изменение параметра "max server memory" в SQL Server Management Studio.
Сделан скриншот страницы сайта
learn.microsoft.com/RU-RU/sql/database-engine/configure-windows/
server-memory-server-configuration-options?view=sql-server-2016#max_server_memory

Так же подходящее решение, которое помогло некоторым пользователям обнаружилось на форуме infostart - все таки изменить значение параметра "Максимальная степень параллелизма" на значение = 0. Отдельно и дополнительно изменить значение параметра блокировки, увеличить его.

Нажатие на изображении увеличит его
как исправить, устранить в 1С 8 ошибку СУБД, руководство, инструкция, описание, Microsoft SQL Server Native Client 11.0: Экземпляру ядра СУБД SQL Server не удается получить ресурс LOCK
Рис. 5. Другой возможный вариант решения проблемы.

В вопросе изменения параметра "Максимальная степень параллелизма" (Max Degree of Parallelism) в SQL можно подробнее обратиться на сайте microsoft - "Configure the max degree of parallelism (server configuration option)" (Настройте максимальную степень параллелизма (параметр конфигурации сервера)) Если коротко, то делается по шагам просто в SQL Server Management Studio:

Чтобы настроить параметр максимальной степени параллелизма
Эти параметры изменяют MAXDOP для экземпляра.

  1. В "Обозревателе объектов" (Object Explorer) щелкните правой кнопкой мыши нужный экземпляр и выберите «Свойства» («Properties»).
  2. Выберите узел «Дополнительно» («Advanced»).
  3. В поле «Максимальная степень параллелизма» («Max Degree of Parallelism») выберите максимальное количество процессоров, которые будут использоваться при параллельном выполнении плана.

А для изменения параметра блокировок на примере возможно, как указано в статье у microsoft - Настройка блокировок (параметр конфигурации сервера)

Задание параметра locks

  1. Установите соединение с компонентом Компонент Database Engine.
  2. На панели «Стандартная» нажмите Создать запрос.
  3. Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить. В этом примере описывается использование процедуры sp_configure для присвоения параметру locks значения, позволяющего установить число блокировок, доступных всем пользователям, равным 20000.

Use AdventureWorks2012 ;
GO
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'locks', 20000;
GO
RECONFIGURE;
GO

Нажатие на изображении увеличит его
как изменить параметр настройки блокировки конфигурации сервера SQL
Рис. 6. Изменение параметра блокировки SQL.

После изменений параметров, чтобы они вступили в силу потребуется перезапуск сервера SQL.

На практике при изменении значения параметра в интерактивном режиме через свойства конфигурации сервера наблюдалась проблема, что SQL не дает изменить значение параметра в прежнее значение - 0. Но это остается возможным так же через выполнение запроса со значением 'locks' устанавливаемым в значение 0. Более подробно о решении данной проблемы можно почитать в смежной статье по этой теме "В SQL не получается изменить настройку параметра Блокировки в значение 0".

Оцените, помогло ли Вам предоставленное описание решения ошибки?

© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

29-06-2023

Журавлев А.С. (Сайт azhur-c.ru)

 
 

Здесь можно
приобрести лицензии

1С 8
​ и типовые решения

ural-rosaudit.ru - Аудит в сфере ЖКХ, www.ural-rosaudit.ru
azhur-blog.ru - мошенничество в интернете, www.azhur-blog.ru
info-compas.ru - каталог, инфокурсы, видеокурсы, видео курсы, обучение он-лайн, www.info-compas.ru
https://vk.com/effective_ideas - Группа вКонтакте Методы заработка и работы при помощи Интернет

 

Проверить аттестат
Cистема приема платежей, касса для сайта
Cистема управления контентом Santafox&trade. Санкт-Петербург, Ленинский проспект, д. 23 (812) 545-47-48
Яндекс.Метрика