Меню

Ошибка транзакции не удалось заблокировать базу данных

Ошибка: Конфликт блокировок при выполнении транзакции: Не удалось заблокировать

Я
   p_morozoff

22.11.10 — 13:10

Коллеги, у клиента с завидным постоянством возникает ошибка:

Конфликт блокировок при выполнении транзакции: Не удалось заблокировать таблицу ‘_DOCUMENT***’»

Конфа УТ 10.3.8.9, платформа 81.15.14, 2 лицензии, файловый вариант, работа ведется с двух компов в локальной сети, 2-ой комп подключается к базе через сетевой диск (папка с базой на 1-ом коме расшарена)

Ошибка возникает когда на обоих компах одновременно проводятся документы.

Тестирование и исправление не помогло.

Тестирование и исправление с отметкой «реструктуризация таблиц инф. базы» привела к ошибке работы процедуры, и обработка зависла… навсегда… 🙁

Чекдбфл — не помог.

Буду очень рад Вашим предложениям и «делением» опытом в решении этой проблемы 🙂

Заранее благодарен.

   detec

1 — 22.11.10 — 13:11

(0) Переводить базу в клиент-сервер.

   Михей

2 — 22.11.10 — 13:11

«Ошибка возникает когда на обоих компах одновременно проводятся документы.» — отсюда ноги растут

   Рыжий Лис

3 — 22.11.10 — 13:12

Файловый режим не предназначен для паралельной работы.

   igork1966

4 — 22.11.10 — 13:18

(3) Мда… точнее нужно со словами

   p_morozoff

5 — 22.11.10 — 13:33

(1) просто я думал что это баг базы, и его можно лечить, по крайней мере в тырнете нашел советы по выгрузке/загрузке, тестирование и исправление, чекдбфл — правда они не помогли ((

   tdm

6 — 22.11.10 — 13:44

(5) дам еще один бесполезный совет — зайти в конфигуратор — администрирование — настройки инф.базы — время ожидание блокировки попробуйте увеличить)))
а вообще управляемые блокировки — хотя в файловом варианте они не работают(

   tdm

7 — 22.11.10 — 13:45

(0) а диск случайно не внешний usb ?

   Живой Ископаемый

8 — 22.11.10 — 13:47

2(1,3) Ну-ка расскажите как клиент-серверный режим избавляет от блокировок. В чем суть механизма.

   Dmitrii

9 — 22.11.10 — 13:48

(0) Конфа типовая?

>> когда на обоих компах одновременно проводятся документы.

Какие документы (любые/какие-то конкретные) и как проводятся (интеративно/групповой обработкой)?

   Dmitrii

10 — 22.11.10 — 13:49

+ к (9) Имя таблицы именно так и выглядит ‘_DOCUMENT***’ ?

   Шапокляк

11 — 22.11.10 — 13:50

(8) В файловой сразу вся таблица блокируется, а в клиент-серверном варианте СУБД несколько мягче все это делает 🙂

   Dmitrii

12 — 22.11.10 — 13:52

(3) >> Файловый режим не предназначен для паралельной работы.

Для двух пользователей? Ну, ну…

   Живой Ископаемый

13 — 22.11.10 — 13:53

2(11) мне показалось что ответившие говорят что перевод на клиент-сервер безусловно избавит от каких-либо блокировок… Ну если мне так только показалось — извините

   Шапокляк

14 — 22.11.10 — 13:58

(13) Может, показалось, а может и нет, кто ж их разберет… А вообще прикольная организация труда у автора — два юзверя постоянно встречаются на одном типе документов при проведении. Или у них такая конгениальность, или обработка проведения приводит к получасовой транзакции. Не каждому дано такое наблюдать.

   Живой Ископаемый

15 — 22.11.10 — 14:03

2(14) так отож.. А ему сразу советуют(может неявно, но все-таки) начать тратить деньги.

   p_morozoff

16 — 22.11.10 — 14:06

(7) уверенно сказать не могу…
но по-моему нет, не усб

   hhhh

17 — 22.11.10 — 14:10

(14) вдруг они сами написали обработку проведения. Тогда вполне может быть.

   Шапокляк

18 — 22.11.10 — 14:13

(17) «так отож». Наверно эти два юзера и написали. Коллективнымм разумом.

   p_morozoff

19 — 22.11.10 — 14:13

(9) конфа типовая

на одном компе проводятся доки реализация товаров и услуг, на втором компе запускается внеш обработка, которая из заказов покупателей лепит и проводит доки «реализация товаров и услуг»

(10) имя таблицы ‘_DOCUMENT213’ — ну т.е. в место зведочек цифры :), иногда ругается на таблицу «ЖурналДокументов» (DocumentJournal — как-то так)

   denis_jj

20 — 22.11.10 — 14:15

не понятно зачем в данной ситуации проводить тестирование и реструктуризацию и «Чекдбфл — не помог» чем может это помочь.

   p_morozoff

21 — 22.11.10 — 14:17

конкретно клиент привел в пример именно ситуацию когда на одном компе выполняется внеш обработка, а на другом руками проводят какой-либо документ.

но на словах так же сказал, что подобный «конфликт блокировок» возникает когда на 1-ом и 2-ом компе доки проводятся руками, причем разные типы доков.

   p_morozoff

22 — 22.11.10 — 14:18

(20) ну если воспользоваться гуглом, то можно таки найти подобные рекомендации

   Живой Ископаемый

23 — 22.11.10 — 14:21

(22) покажите ссылку?

   p_morozoff

24 — 22.11.10 — 14:24

Вот выдержка из одного форума:

ХХХ — В последнее время после 14 часов выдает ошибку «Конфликт блокировок при выполнении транзакции. Не удалось заблокировать таблицу _AccntReg5577»
Как это лечиться?

УУУ -Возможно это связано с возрастающей загрузкой сети. На форумах по 1С встречался мне подобный материал. К сожалению не могу сейчас его найти и дать вам ссылку.

ХХХ — походу действительно так. пережал базу — ошибка пропала.

   denis_jj

25 — 22.11.10 — 14:24

(22) а если воспользоваться мозгом? Иногда это лучше гугла.

   p_morozoff

26 — 22.11.10 — 14:24

   p_morozoff

27 — 22.11.10 — 14:25

   p_morozoff

28 — 22.11.10 — 14:26

(25) при всем моем уважении — воспользуйтесь сами своим советом, и напишите что-нибудь по теме

   hhhh

29 — 22.11.10 — 14:28

21) ну так чего пишете, что типовая, если у вас работает явно нетиповая обработка, которая наверняка на полдня захватывает все документы реализации, и которая наверняка написана коллективным разумом выеуказанных двух юзеров?

   dva1c

30 — 22.11.10 — 14:29

(29) это было сказано еще в (19)

   p_morozoff

31 — 22.11.10 — 14:31

(29) дык я ж говорю — обработка, это как частный случай, т.к. ошибка возникает и при ручном проведении доков, просто обработка, как вы правильно заметили, захватывает на полдня доки, и вероятность возникновения ошибки при выполнении этой обработки намного выше, по-этому клиент в первую очередь и пожаловался на обработку.

   denis_jj

32 — 22.11.10 — 14:32

при всём моём уважении — из вопроса ясно, что его автор абсолютно не понимает механизма блокировок платформы 1С.  Почитайте теорию.

   Dmitrii

33 — 22.11.10 — 14:36

(31) Уверены, что у вас типовая конфа? Просто устроить блокировку при интерактивной параллельной работе всего лишь двух пользователей надо очень постараться, ну или специально, вводя большие документы с кучей строк в табличных частях, жать кнопку «Провести» одновременно.

   Dmitrii

34 — 22.11.10 — 14:40

(32) ОФФ. Послушай, уважающий. Лучше бы чего-нибудь дельного сказал, чем многозначительные фразы кидать о том, что кругом все идиоты и не в теме. Ну или промолчал бы.

Ну или расскажи почему ТиИ с реструктуризацией выдает ошибку. Или это типа нормально.

   Живой Ископаемый

35 — 22.11.10 — 14:46

2(26) ну хорошо… А почему вы подумали что вам подойдет именно этот совет, а не например, взять за основу это объяснение?
«Простейший пример возникновения: одна транзакция накладывает блокировку на таблицу БД, а вторая на другую, но для продолжения работы первой транзакции нужна та таблица, на которую наложила блокировка вторая, а для продолжения работы второй — наоборот.
Очевидным образом такие взаимоблокировки неразрешимы и после определенного таймаута, как правило, сервер БД выдает ошибку.»

Ведь в указанной вами цитате речь идет о регистре сведений а не о таблице документов?

   p_morozoff

36 — 22.11.10 — 14:48

(33) пардон,я слукавил, сказав, что конфа типовая:
в конфе в справочник «контрагенты» добавлен реквизит типа строка, и изменена печатная форма дока «заказ покупателя»
модули обработки нигде не задеты

но по правде говоря такую конфу я обычно считаю за типовую 🙂

   Живой Ископаемый

37 — 22.11.10 — 14:51

2(36) еще момент — на данном этапе вы для себя уже поняли что в подобной (0) поведении практически нет никакой ошибки, и причину такого поведения уже восприняли? На всякий случай спрашиваю, потому что как по-мне, то уже все ясно и дальнейшее обсуждение — это переливание из пустого в порожнее…
🙂

   p_morozoff

38 — 22.11.10 — 14:53

(35) ответ про взаимные блокировки прочитал только что, видимо после того как я апнул тему там написали ответ.

ну ведь можно провести параллели между этими блокировками.

   Живой Ископаемый

39 — 22.11.10 — 14:57

2(38) «провести параллели » — уж если вы выдумываете новый термин в конфо-строении, то не сочтите за труд — дайте ему определение…

   p_morozoff

40 — 22.11.10 — 14:57

(37) я понимаю что это не ошибка, а обработка платформой конфликта блокировки.
я хочу избавиться от этого конфликта.
вот еще ссылка на обсуждение подобной проблемы, и там тоже есть изложенные в (0) рекомендации:
http://forum.nov.ru/index.php?showtopic=244886

   Dmitrii

41 — 22.11.10 — 15:00

(36) Ну если только это, то, вроде как, отношения к обсуждаемой проблеме это не должно иметь.

Тогда надо разбираться как именно возникают блокировки. Либо там действительно большие документы или пользователи вводят их с такой скоростью, что блокировки для них нормальное явление, либо где-то железо/сеть тупит, либо…

Честно говоря видел достаточно конторок, ведущих учет на файловой УТ с количеством пользователей до 10 человек. Блокировки конечно иногда появляются, но случается это достаточно редко. Но вот чтобы два пользователя постоянно не могли одну таблицу поделить…

Ну и остается проблема с ошибкой ТиИ с реструктуризацией. Такого быть не должно. С этим что-то надо делать. Пытаться выгрузить/загрузить базу, делать ТиИ chkdbfl.

   Живой Ископаемый

42 — 22.11.10 — 15:02

Это обсуждается изо дня в день и  на этом форуме…
(например: v8: До какого объема можно доводить объем SQL базы на УТ конфе?
Но для того чтобы что-то научиться решать в этом вопросе..Я считаю мало читать обсуждения.. Потому что постоянно в этих обсуждениях будешь попадать в тупиковые ветки типа той, как вы уже попали, попытавшись решить проблему при помощи ТиИ…

То что вам реально может помочь
http://v8.1c.ru/metod/books/book.jsp?id=63
Глава 4 и 5.

   denis_jj

43 — 22.11.10 — 15:04

(34) проблема, указанная в топике, решается разделением использования ресурсов. Есть несколько способов реализации:
1. Разделение обработок по времени — запускать обработку когда документы не проводят.
2. Уменьшение пространства блокировок — переписать обработку формирования так, чтобы в один промежуток времени обрабатывалась только небольшая часть документов. Вызывать обработку циклически например регламентным заданием.
Файловую базу необходимо перевести в серверную — SQL лучше работает с блокировками (блокирует диапазон записей, а не таблицу как файловая версия).
3. Разделить по времени проведение по регистрам — механизм отложенных движений (см. типовую конфигурацию).

Вариантов много, зависит от конкретной задачи. В любом случае стратегия на разделение ресурсов.

«Ну или расскажи почему ТиИ с реструктуризацией выдает ошибку. Или это типа нормально.» — а вот это не понял о чём. Если вы имеете ввиду (24) _AccntReg5577, то тут скорее всего речь об итогах, которые в 1С записываются в физические таблицы с разделением, и реструктуризация приводит приводит к пересчету итогов и  свертке разделенных записей. А чем меньше записей в таблицах, тем меньший диапазон записей будет блокировать SQL и ситуация с блокировками в целом немного улучшиться.

   Живой Ископаемый

44 — 22.11.10 — 15:04

ошибку реструктуризации можно решить переносом данных с помощью обработки выгрузказагрузкаданныххмл.епф в новую, пустую базу с такой же конфой, но годную.

   p_morozoff

45 — 22.11.10 — 15:11

(41) при ТиИ с пометкой «реструктуризация» выдает вот такое сообщение:
————-
В процессе обновления информационной базы произошла критическая ошибка.
по причине:
Ошибка СУБД:
Ошибка SQL: Запись значения NULL в поле, не допускающее NULL ‘_FLD2437_TYPE’
по причине:
Ошибка SQL: Запись значения NULL в поле, не допускающее NULL ‘_FLD2437_TYPE’
————-
тестирование физической, логической целостности и чекдбфл эту ошибку не исправили…

я конечно прямой связи с конфликтом блокировки здесь не вижу, но для начала думаю надо избавиться от этой ошибки

   tdm

46 — 22.11.10 — 15:13

(40) еще можно попробовать покопаться  с «железом»; может антивирусы еще дополнительно картину «портят»; для начала я бы попробовал исключить сеть (т.е. на одном ПК запустить два сеанса и промоделировать паралельную работу); запустить монитор ресурсов на диск, сеть  и т.д.
про usb-диск тоже спросил неспроста, т.к. сталкивался с тем что базу хранили на таком диске да еще и на бюджетной модели маршрутизатора, там все просто переодически падало, только перенесли на базу на ПК проблема исчезла;
ну и наконец никто не отменял конфигуратор и отладчик — и смотреть что у вас дольше всего отрабатывает;

   p_morozoff

47 — 22.11.10 — 15:15

(44) я сделал стандартным способом выгрузку данных(конфигуратор-администрирование-…), затем загрузил её в пустую конфу, эта процедура ошибку оставляет?

   Живой Ископаемый

48 — 22.11.10 — 15:17

2(44) легко ведь проверить, какая разница что я отвечу.

   Живой Ископаемый

49 — 22.11.10 — 15:17

то есть (47)

  

p_morozoff

50 — 22.11.10 — 15:18

комрады, спасибо за советы, на сегодня позвольте откланяться — пойду колдовать с базой.

I am a noob on an i5 desktop. I could not update my system. Terminal reads as follows, after I type and enter «sudo pacman -Syu»

[sudo] password for user-name: ********
:: Synchronizing package databases...
error: failed to update core (unable to lock database)
error: failed to update extra (unable to lock database)
error: failed to update community (unable to lock database)
error: failed to update multilib (unable to lock database)
error: failed to synchronize all databases

Help!!

asked Mar 2, 2020 at 6:08

Thế Huynh Phạm's user avatar

Thế Huynh PhạmThế Huynh Phạm

4611 gold badge4 silver badges11 bronze badges

If you’ve already deleted /var/lib/pacman/db.lck, like OP posted, and still got the same problem, try this:

sudo rm /var/tmp/pamac/dbs/db.lck

answered Nov 16, 2022 at 4:44

his dudeness's user avatar

This can be solved by quitting Software Update program from task manager.
This worked for me.

answered Feb 16, 2021 at 17:32

TECH VINEYY's user avatar

I am a noob on an i5 desktop. I could not update my system. Terminal reads as follows, after I type and enter «sudo pacman -Syu»

[sudo] password for user-name: ********
:: Synchronizing package databases...
error: failed to update core (unable to lock database)
error: failed to update extra (unable to lock database)
error: failed to update community (unable to lock database)
error: failed to update multilib (unable to lock database)
error: failed to synchronize all databases

Help!!

asked Mar 2, 2020 at 6:08

Thế Huynh Phạm's user avatar

Thế Huynh PhạmThế Huynh Phạm

4611 gold badge4 silver badges11 bronze badges

If you’ve already deleted /var/lib/pacman/db.lck, like OP posted, and still got the same problem, try this:

sudo rm /var/tmp/pamac/dbs/db.lck

answered Nov 16, 2022 at 4:44

his dudeness's user avatar

This can be solved by quitting Software Update program from task manager.
This worked for me.

answered Feb 16, 2021 at 17:32

TECH VINEYY's user avatar

Иногда при работе в 1С может возникнуть ошибка «Конфликт блокировок при выполнении транзакции: превышено максимальное время ожидания предоставления блокировки». Рассмотрим как исправить данную ошибку.

Содержание

  • Конфликт блокировок при выполнении транзакции в 1С: причины и пути их устранения
    • Причина 1. Одновременная работа пользователей с большим объемом данных
    • Причина 2. Зависшие блокировки в 1С
    • Причина 3. Ошибка в конфигурации

Причина 1. Одновременная работа пользователей с большим объемом данных

При одновременной работе нескольких пользователей с одной и той же информационной базой могут возникнуть ситуации, когда несколько пользователей пытаются внести в данные какие-то изменения. И в таких случаях, если не предусмотреть возможности подключения специальных механизмов системы, могут возникнуть проблемы с информационной базой, ее целостностью. При обращении нескольких сеансов к одним и тем же данным одновременно используются механизмы блокировок и транзакций.

Блокировка — это информация о том, что данный объект занят пользователем для выполнения какого-то действия. Смысл блокировки в запрете определенных действий над объектом на ограниченное время. Благодаря этим запретам сохраняется целостность и непротиворечивость информационной базы, предсказуемость работы пользователей.

Механизм объектных блокировок — обеспечивает конкурентный доступ пользователей к данным 1С, как правило, это работа пользователей в формах — создание новых объектов, их редактирование, удаление и др.

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

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

Причина 2. Зависшие блокировки в 1С

Иногда возникают такие ситуации, что пользователь уже давно закрыл документ, вышел из программы, а его сеанс по-прежнему остается в системе. Т.е. какой-то сеанс поставил блокировку и не убрал ее. Такие ситуации чаще встречаются при использовании сетевых ключей защиты.

Оптимальный вариант решения проблемы — это найти и завершить сеанс, заблокировавший необходимые данные. В этом нам помочь может раздел Администрирование — Обслуживание, где можем посмотреть активных пользователей и при необходимости заблокировать их работу, т.е. отключить.

При большом количестве компьютеров, проблему можно решить завершив подобный сеанс через консоль администратора. С ее помощью можно управлять подключенными сеансами определенной информационной базы, управлять блокировками. В консоли администрирования можно посмотреть такие зависшие сеансы и удалить их. Эта утилита входит в состав 1С Предприятия.

Запустить ее можно из папки common 1CV8Servers.

Причина 3. Ошибка в конфигурации

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

Если такого рода ошибки появляются часто, то разобравшись в причине, из-за которой возникает конфликт блокировок в 1С, необходимо их ликвидировать — определить уязвимые места в системе, оптимизировать конфигурацию, а также работу пользователей.

См. также:

  • Недостаточно памяти 1С: как исправить
  • Неверный формат хранилища данных 1С 8.3: как исправить
  • Ошибка формата потока 1С 8.3: как исправить
  • Ошибка СУБД: файл базы данных поврежден в 1С 8.3
  • Не найден файл внешней компоненты в 1С 8.3: как исправить

Если Вы еще не являетесь подписчиком системы БухЭксперт8:

Активировать демо-доступ бесплатно →

или

Оформить подписку на Рубрикатор →

После оформления подписки вам станут доступны все материалы по 1С Бухгалтерия, записи поддерживающих эфиров и вы сможете задавать любые вопросы по 1С.

Подписывайтесь на наши YouTube и Telegram чтобы не пропустить
важные изменения 1С и законодательства

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибка тони вендиса книга
  • Ошибка тони вендиса кинопоиск