Жаропонижающие средства для детей назначаются педиатром. Но бывают ситуации неотложной помощи при лихорадке, когда ребенку нужно дать лекарство немедленно. Тогда родители берут на себя ответственность и применяют жаропонижающие препараты. Что разрешено давать детям грудного возраста? Чем можно сбить температуру у детей постарше? Какие лекарства самые безопасные?
Не редко при работе в 1С возникает ошибка «Конфликт блокировок при выполнении транзакций: Превышено максимальное время ожидания предоставления блокировки». Суть ее кроется в том, что несколько сеансов пытаются одновременно выполнить похожие действия, затрагивая один и тот же ресурс. Сегодня мы разберемся как исправить данную ошибку
Большое количество выполняемых операций
Первым делом при поиске причин следует уточнить, сколько же одновременно работающих пользователей находится в той информационной базе, в которой выдается подобная ошибка. Как мы знаем, максимальное их количество может быть довольно большим. Это и тысяча, и пять тысяч.
Механизм блокировок и транзакций описан в руководстве разработчика. Их используют при обращении нескольких сеансов к одним и тем же данным одновременно. Логично, что одни и те же данные не могут изменяться разными пользователями в один и тот же момент.
Так же следует проверить, не запущено ли у кого-то из пользователей обработки по массовому изменению данных. Это может быть как , закрытие месяца и тому подобное. В таком случае после окончания работы обработки ошибка пропадет сама по себе.
Регламентные задания
Не редки случаи, когда причина ошибки кроется в , которое обрабатывает большое количеств данных. Рекомендуется подобные вещи делать ночью. Задайте расписание выполнение таких регламентных заданий во внерабочее время.
Таким образом, и пользователи будут работать в стабильной системе, и сами регламентные задания будут завершаться успешно, так как снизится вероятность возникновения конфликтов с пользовательскими сеансами.
«Зависшие сеансы»
Проблема «зависших сеансов» пользователей знакома практически каждому, кто сталкивался с обслуживанием 1С. Пользователь мог уже давно выйти из программы, или закрыть какой-либо документ, но его сеанс по-прежнему остается в системе. Проблема чаще всего единичная и достаточно завершить подобный сеанс через консоль администратора. Такие же проблемы могут возникнуть и с фоновыми заданиями.
По многочисленным комментариям на просторах интернета подобные ситуации чаще встречаются при использовании сетевых ключей защиты. Если ситуация с «зависающими сеансами» повторяется систематически, это причина произвести тщательную проверку и обслуживание системы и серверов (если база клиент-серверная).
Ошибки при написании конфигурации
Все типовые конфигурации разработаны квалифицированными специалистами и экспертами. Каждая система тщательно тестируется и оптимизируется для более быстрой и корректной работы в ней.
В связи с этим причина ошибки может крыться в неоптимальном коде, написанном сторонним разработчиком. Это может быть «тяжелый» запрос, который будет блокировать данные на длительный промежуток времени. Так же нередки случаи построения алгоритмов с низкой производительностью и нарушением логики.
Большая вероятность, что конфликт блокировки возник именно из-за ошибок разработчика, если он возник после обновления программы. Для проверки можно просто «откатить» доработки, либо произвести рефакторинг кода.
«Конфликт блокировок при выполнении транзакции: Превышено максимальное время ожидания предоставления блокировки» — достаточно часто встречающая ошибка в 1С 8.3 и 8.2, связанная с конкуренцией за использование ресурсов в системе.
Система 1С позволяет работать параллельно большому количеству пользователей: как показывают нагрузочные тестирования, сегодня это количество не ограничивается и пятью тысячами пользователей, одновременно работающих в системе. Однако чтобы база данных 1С 8 могла одновременно поддерживать большое количество пользователей, конфигурация должна быть правильно разработана.
Получите 267 видеоуроков по 1С бесплатно:
Выполнение большого количества операций
Вполне вероятно, что какой-либо пользователь запустил, например, за большой период в одной транзакции. Архитектура 1С 8.3 предполагает, что система не дает изменять данные, которые используются в одной транзакции другим пользователем, и блокирует их.
Возможно, это временная ошибка, которая перестанет возникать, когда другой пользователь завершит производить действия в системе. Если эта ошибка появляется часто, то, скорее всего, дело в другом.
Ошибка в конфигурации
Кроме ошибок в коде часто встречаются методически неверные решения. Например, — он сам по себе подразумевает последовательное проведение документов. Партионный учет можно заменить на РАУЗ — этим Вы серьезно повысите производительность системы.
Как исправить эту ошибку в 1С 8.3?
В любом случае, появление ошибки «Конфликт блокировок при выполнении транзакции» говорит о необходимости инспекции системы, особенно для средних и крупных информационных систем в клиент-серверном режиме работы (MS SQL, PostgreSQL и т.д.). Если это проигнорировать на раннем этапе, возможны необратимые последствия позже, когда работа системы будет особенно важна (в период сдачи отчетности).
Для аудита и исправления ошибок лучше всего выбрать надежного партнера. Просто позвоните нам, и мы решим любые Ваши задачи в кратчайшие сроки. Подробности на странице .
Вопрос: УТ11.1. Пакетное создание Реализаций. Конфликт блокировок
Добрый день! Конфигурация УТ11.1. Клиент-серверный вариант. Настройки 1С Сервера и SQL Сервера по умолчанию. Программно формируем реализации. На этапе записи документов периодически возникает конфликт блокировок. Подскажите каким образом решаются подобные вопросы? Используются транзакции c управляемыми блокировками? Заранее спасибо.
Ответ:
не надо выключать) переведи их на ночь - там может и расчет себестоимости и индексы поиска считаются.
Вопрос: Конфликт блокировок при выполнении транзакции
Каждый день почти в одно и тоже время при проведении документа на 5-10 минут выскакивает данная ошибка 1С 8.3.10.26.99 УТ11(11.4.1.261):
Конфликт блокировок при выполнении транзакции:
Microsoft Sql Server Native Client 11.0: Превышено время ожидания запроса на блокировку.
HERESULT=80040E31, SqlServer: SQLSTATE=HYT00, state=38, Severity=10, native=1222, line=1
Подскажите от куда начинать копать?
Ответ:
() Включи профайлер в это время на события Lock:Acquired и Lock:Escalation. Потом доложи что поймал.
Вопрос: Восстановление базы (конфликт блокировок)
Добрый день. База помирает. Серверная.
Выяснилось не сразу, т.к. все работало кроме документа сф выданный. А его не так часто создают. Поэтому бекап не актуален (прошло уже видимо несколько дней), пытались разворачивать копию 2х дневной давности - полдня было нормально, а потом вылезла та же проблема.
Симптомы: при попытке отмены проведения сф получаем конфликт блокировок, даже если один пользователь в базе. ТИИ (проверка логической и ссылочной целостности) валится с конфликтом блокировок, создание бекапа через sql management studio - то же ("Превышено время ожидания типа кратковременной блокировки буфера 3 для страницы").
Хотим попробовать залить cf недельной давности, но что-то надежд мало.
Ответ:
тут проблемы с сервером баз данных, а не 1С, версий конфигурации и пр. ни при чем.
Возможно не обслуживаемый скул жил как мог покуда хватало ресурсов, а теперь у автора начинается новый этап освоения знаний.
Если размер позволяет - выгружайте в файловую и начинайте изучать sql глубже.
Вопрос: УТ10. Конфликт блокировок
Добрый день! Клиент-серверный вариант. Мне досталась в наследство сильно доработанная конфигурация БитАвто (автосервис на базе УТ10). В обработчике проведения документа "заказ-наряд", основного для мастеров-приемщиков и менеджеров, завернуто формирование подчиненных документов (реализация, счет-фактура, требование накладная), расчет з/п механиков, резервирование товара, если новый документ, то создание заказа-покупателя и еще некоторый функционал. База выросла и часто стал возникать конфликт блокировок. По выходным, когда народа меньше конфликтов нет.
Подозреваю, что при таком количестве анализа, во время проведения документ, длительное время блокирует какой-нибудь журнал документов, хотя вроде полностью блокируется журнал заказов.
Если обработчиком кнопки "Ок" сделать свою процедуру, где последовательно запускать "ОбработкаПроведения", а потом процедуру, например, СформироватьПодчиненныеДокументы, затем РассчитатьЗарплату и т.п. Не уверен, что такой вариант поможет. Добавлять кнопки на которые навешивать формирование документов не подойдет, т.к. пользователи будут забывать про нее.
Ответ:
Zerro |
---|
vde69, Дак это наверное какая-нибуть Раруская фигня |
Нет, это не Рарус, это БитАвто
Вопрос: 1c конфликт блокировок при открытии формы документа
УПП
С недавнего времени раз в 2-3 дня возникает блокировка на документе Требование-накладная. Т.е. ни один документ этого типа не открывается. Все время
Другие документы работают нормально.
В отладчике проблем не нашел, ни в одном модуле не успевает остановиться - сразу конфликт блокировок.
Я подозреваю какую-то проблему в SQL.
Ответ: Проблема была в не завершившемся задании обслуживания индексов.
Вопрос: ошибка SQL2000 в процессе выполнения транзакции в 1С77
в MSSQL база 1С77(релиз 27) ТиС. Регулярно при выполнении проводок выскакивает ошибка:
При выполнении транзакции произошла ошибка!
SQL State: HYT00
Native:0 Message: Время ожидания истекло.
в итоге провести документ не удается. Это может длиться 20 мин., а может и 1 час.
Как с этим бороться, где копать?
С Уважением,
Steve242
К сообщению приложен файл. Размер - 21Kb
Ответ:
штатный perfmonitor винды показал что на Терминальнике идет адовая загрузка системного диска C:\.
Все остальное: Память, CPU - на обоих серверах(терминальник и скуля) практически никаких аномальных всплесков не отображает.
я создал RAMdrive на 2Gb (из 12Gb, имеющихся на терминальном сервере физически) и пытаюсь перенаправить туда tempовые системные каталоги профилей пользователей терминала.
пока как-то так.
Вопрос: Еще раз, про Конфликт блокировок при выполнении транзакции
Ответ:
Вопрос: Блокировки при подписке на РТиУ
Ответ:
Вопрос: Linux, Postgres, Розница 2.0.5.1 Украина РИБ по магазину - ошибка блокировки...
Может кто-то подскажет? Настраиваю обмен по магазину. Все нормально работает, руками получается делать обмен. 4-5 сообщений пересылаются. Потом настраиваю сценарий по расписанию и начинаются качели... Первая ошибка:
"Ошибка записи данных в файл сообщения обмена: {Обработка.КонвертацияОбъектовРаспределенныхИнформационныхБаз.МодульОбъекта()}: Error calling context method (ЗаписатьИзменения): Lock conflict during the transaction:
Maximum idle time for lock access has been exceeded due to the wait for the session"
Все последующие:
"Ошибка записи данных в файл сообщения обмена: {Обработка.КонвертацияОбъектовРаспределенныхИнформационныхБаз.МодульОбъекта()}: Ошибка при вызове метода контекста (ЗаписатьИзменения): Конфликт блокировок при выполнении транзакции:
Превышено максимальное время ожидания предоставления блокировки"
Ни переиндексация, ни закрытие сеансов не помогает. Блокировок в 1С не стоит. Помогает только удаление базы и создание снова.
Как я понял блокировка проходит в СУБД? Использую Postgress на Linux, 1 база, 4Гб оперативки. Если я прав, вопрос - Неправильно настроен Postgress или нехватка памяти? Или может вообще проблема не в этом?
Ответ:
() Так то свежий - это 8.3.10.2375
Вопрос: Ошибка блокировок при очистке регистра сведений
Запросом выбираю записи РС, далее:
НаборЗаписей.Загрузить(РезультатЗапроса.Выгрузить());
НаборЗаписей.Очистить();
НаборЗаписей.Записать();
При попытке записать вываливается ошибка:
"Конфликт блокировок при выполнении транзакции".
Регистр не периодический, регистратору не подчинен.
В чем причина ошибки?
Ответ:
()"Я почему-то был уверен, что отбор применяется только в момент чтения, а записывается соответственно то, что попало в отбор." - где у тебя в коде хоть раз используется слово "отбор"?
Что такое блокировки в 1С, зачем они нужны и как избежать проблем при работе с ними
Наверняка многие из Вас при использовании информационных систем 1С Предприятие (1С 7.7, 1С 8.1, 1С 8.2, 1С 8.3) сталкивались с таким явлением, как блокировки. Причем, как правило, все называют это явление по-разному: «Блокировки 1С», «Конфликт блокировок 1С», «Ошибки блокировок 1С», «Блокировки транзакций 1С» и прочие названия. Давайте кратко разберемся в том, что такое блокировки (не взаимоблокировки), зачем они нужны и как избежать проблем при работе с ними.
Сами по себе блокировки (в том числе в 1С и в других системах) полезный инструмент, который обеспечивает возможность последовательной работы с общими ресурсами. Для примера, понятие «общие ресурсы» окружает нас по жизни, например, пока Вы управляете автомобилем никто другой не может им управлять. Следовательно, автомобиль – общий ресурс. А второй водитель ожидает пока Вы приедете, например, Ваша жена/муж. Вы оба конкурируете за общий ресурс – автомобиль. Кто будет управлять автомобилем в текущий момент Вы определяете на понятийном уровне, а как нам быть в автоматизированных системах??? Для этого и придумали инструмент блокировки , которые обеспечивают организацию процесса доступа к общему ресурсу и определяют очередь. Как правило в жизни, как и в информационных системах (1С 7.7, 1С 8.1, 1С 8.2, 1С 8.3), общих ресурсов очень много, поэтому и блокировок тоже много. Теперь второй важный момент – как долго будет ждать освобождение вашего автомобиля жена/муж, логично предположить, что не вечно. Поэтому для блокировок задается предельное время ожидания – иначе время таймаута. Таймаут - это максимальное время ожидание конкурирующим участником (вашей жены/мужа) освобождения общего ресурса. Дальше либо он продолжает ждать еще такое же время, либо идет пешком. В информационных системах 1С истечение таймаута заканчивается сообщением «Конфликт блокировок 1С», «Ошибки блокировок 1С», «Блокировки транзакций 1С», «Таймаут при блокировке».
Важная деталь, которую также следует помнить, блокировки (в частности в 1С) бывают явные (задаются пользователем) и неявные (задаются платформой SQL). В статье мы говорим о явных блокировках, поэтому они всегда используются в транзакции, отсюда выходит, что «Блокировка 1С» и «Блокировка транзакций 1С» синонимы.
Мы определились, что при превышении таймаута пользователю выводиться сообщение об ошибке, сам процесс ожидания для него выглядит залипанием экрана информационной системы 1С. На вероятность появления сообщения о таймауте (ошибки 1С у пользователя) влияют следующие показатели:
- Множество блокировок 1С в транзакции;
- Длительность транзакции.
Для минимизации сообщений, связанных с ошибками блокировок, необходимо либо уменьшать множество блокировок (оптимизировать селективность), либо уменьшать длительность транзакций.
Теперь определимся каким образом на эти показатели можно влиять в реальной информационной системе 1С.
Для уменьшения множества блокировок:
В 1С:Предприятие 7.7:
Информационная система 1С 7.7. для блокировок используют табличные блокировки, которые парализуют работу пользователей. Как правило более 50 человек в одной базе данных не могут безошибочно работать, при этом проблемы могут появляться и в базах данных от 20 пользователей.
Решение:
- Гибкие блокировки 1С от компании «Софтпоинт». С их помощью вы не только оптимизируете множество блокировок (замена табличных блокировок на пользовательские), но и ускорите подборы, поиски и отчеты.
Информационная система 1С 8.1., 1С 8.2., 1С 8.3. в автоматическом режиме использует избыточные блокировки вида (REPEATABLEREAD, SERIALIZABLE). Это приводит к ухудшению работы пользователей от 100.
Решение:
- Управляемые блокировки 1С – встроенное средство платформы 1С для более селективной настройки блокировок. Чтобы его использовать, программист должен сам прописать в нужных местах кода специальные операторы, чтобы заблокировать нужные (по его мнению! ) записи в таблицах информационной системы;
- Гибкие блокировки 1С – технология компании Софтпоинт для замены стандартных блокировок на пользовательские.
Для уменьшения длительности транзакций:
Для любых информационных систем 1С (1С 7.7., 1С 8.1, 1С 8.2, 1С 8.3) как и для других информационных систем применяется схожие подходы:
Проверка и правильная настройка регламентного обслуживания базы данных (обслуживание файлов, индексов, статистик, базы временных таблиц, настройка Windows и SQLServer);
Анализ и оптимизация тяжелых запросов 1С и SQL (индексный тюнинг, переписывание запросов);
Проверка на избыточность транзакций. Во многих случаях необоснованно в транзакцию включают операции не осознавая, как это повлияет на длительность, а вместе с ней на производительность.
- Если Вы хотите самостоятельно разбираться с техническими проблемами производительности 1С (1С 7.7, 1С 8.1, 1С 8.2, 1С 8.3) и других информационных систем , то для Вас уникальный список технических статей в нашем Альманахе (Блокировки и взаимоблокировки, большая нагрузка на CPU и диски, обслуживание баз данных и индексный тюнинг - лишь малая часть технических материалов, которые Вы там найдете).
- сли Вы хотите обсудить с нашим экспертом проблемы производительности или заказать решение мониторинг производительности PerfExpert , то оставьте заявку и мы свяжемся с Вами в кратчайшие сроки.