Блокировка данных объекта при редактировании. Файловая база 1С + Apache + RedOS (Linux).
Ошибка: Происходит блокировка при работе файловой базы 1С , опубликована через Apace, на RedOS(Linux)
У нас 1С:Предприятие 8.3 (8.3.20.1838)
Управление нашей фирмой, редакция 1.6 (1.6.27.190)
База файловая, расположили её на RedOS Выпуск MUROM (7.3.1) 64-разрядный
Опубликовали через Apache/2.4.53.
Запустили одного пользователя работать.
Он создает документ, проводит , закрывает его, заходит в него снова, пытается отредактировать и
при работе одного пользователя , выскакивает данная ошибка.
Ошибка: "Происходит блокировка при работе файловой базы 1С , опубликована через Apace, на RedOS(Linux)"
У нас 1С:Предприятие 8.3 (8.3.20.1838)
Управление нашей фирмой, редакция 1.6 (1.6.27.190)
База файловая, расположили её на RedOS Выпуск MUROM (7.3.1) 64-разрядный
Опубликовали через Apache/2.4.53.
Запустили одного пользователя работать.
Он создает документ, проводит , закрывает его, заходит в него снова, пытается отредактировать и
при работе одного пользователя , выскакивает данная ошибка.
В пользователях (в ошибке) указан он же. Объект блокируется от 5 мин до 2ух часов.
Работать жутко не удобно.
Подскажите как это можно исправить ? Я так понимаю проблема довольно старая.
И проблема в Apache на системах Linux. Но ни одно решение из существующих не подошло.
У нас 1С:Предприятие 8.3 (8.3.20.1838)
Управление нашей фирмой, редакция 1.6 (1.6.27.190)
База файловая, расположили её на RedOS Выпуск MUROM (7.3.1) 64-разрядный
Опубликовали через Apache/2.4.53.
Запустили одного пользователя работать.
Он создает документ, проводит , закрывает его, заходит в него снова, пытается отредактировать и
при работе одного пользователя , выскакивает данная ошибка.
Ошибка: "Происходит блокировка при работе файловой базы 1С , опубликована через Apace, на RedOS(Linux)"
У нас 1С:Предприятие 8.3 (8.3.20.1838)
Управление нашей фирмой, редакция 1.6 (1.6.27.190)
База файловая, расположили её на RedOS Выпуск MUROM (7.3.1) 64-разрядный
Опубликовали через Apache/2.4.53.
Запустили одного пользователя работать.
Он создает документ, проводит , закрывает его, заходит в него снова, пытается отредактировать и
при работе одного пользователя , выскакивает данная ошибка.
В пользователях (в ошибке) указан он же. Объект блокируется от 5 мин до 2ух часов.
Работать жутко не удобно.
Подскажите как это можно исправить ? Я так понимаю проблема довольно старая.
И проблема в Apache на системах Linux. Но ни одно решение из существующих не подошло.
Прикрепленные файлы:
Найденные решения
По итогу получилось убрать блокировки и зависания.
Плотно пообщались с поддержкой RedOS. Спасибо ребятам за оперативную работу!
По итогу оказалось что база у нас была опубликована средствами конфигуратора.
Мы ее переопубликовали средствами apache через терминал.
Проверьте данные параметры модуля mpm_event_module:
<IfModule mpm_event_module>
ServerLimit 5
StartServers 100
MinSpareThreads 1
MaxSpareThreads 1
MaxRequestWorkers 1
ThreadsPerChild 1
MaxRequestsPerChild 1000
ThreadsPerChild 1
KeepAlive Off
</IfModule>
После этого блокировки ушли полностью !
Плотно пообщались с поддержкой RedOS. Спасибо ребятам за оперативную работу!
По итогу оказалось что база у нас была опубликована средствами конфигуратора.
Мы ее переопубликовали средствами apache через терминал.
Проверьте данные параметры модуля mpm_event_module:
<IfModule mpm_event_module>
ServerLimit 5
StartServers 100
MinSpareThreads 1
MaxSpareThreads 1
MaxRequestWorkers 1
ThreadsPerChild 1
MaxRequestsPerChild 1000
ThreadsPerChild 1
KeepAlive Off
</IfModule>
После этого блокировки ушли полностью !
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Apache, как известно, для обработки запросов стартует 5-10 процессов. И каждый отдельно загружает модуль 1c и открывает базу...вот тут то и происходит блокировка - повторное открытие документа происходит через другой процесс apache, и 1с думает что это кто-то другой, хотя запрос пришёл от того же клиента. Также это объясняет, почему блокировка снимается через день-два. Это происходит изза перезапуска своих дочерних процессов, это апач иногда делает.
В общем недоработка 1Сников.
Её можно обойти, указав в настройке апача кол-во процессов = 1 (mpm-worker) и блокировки вроде пропадут. Вот только производительность должна пострадать немного (хотя я не заметил на 1-2х клиентах)
В общем недоработка 1Сников.
Её можно обойти, указав в настройке апача кол-во процессов = 1 (mpm-worker) и блокировки вроде пропадут. Вот только производительность должна пострадать немного (хотя я не заметил на 1-2х клиентах)
(9) Все верно, не помогло.
И также в партнерском форуме тоже нашел похожую проблему где писали про лимит процессов апаче и тоже не помогло.
И также в партнерском форуме тоже нашел похожую проблему где писали про лимит процессов апаче и тоже не помогло.
Корень проблемы - в отсутствии/недоработке синхронизации между модулями 1С внутри процессов веб-сервера под линукс.
Проблема не проявляется в SQL базах, т.к. блокировки выполняются на уровне сервера приложений.
Проблема не проявляется под windows, т.к. там используется другой модуль для управления процессами/потоками (mpm_winnt_module)
Что можно сделать: добавить в mpm_event.conf параметр
ServerLimit 1
Проблема не проявляется в SQL базах, т.к. блокировки выполняются на уровне сервера приложений.
Проблема не проявляется под windows, т.к. там используется другой модуль для управления процессами/потоками (mpm_winnt_module)
Что можно сделать: добавить в mpm_event.conf параметр
ServerLimit 1
Начиная не помню с какого релиза платформы, окно сообщения о блокировке (на win) выглядит иначе: есть кнопка "все рано продолжить", т.е. "перехватить" документ у заблокировавшего пользователя. Возможно в УНФ старый уровень совместимости платформы. Если так - можете попробовать обновить УНФ, или на копии попробовать выставить режим совместимости "не использовать".
(16) Нашел, 8.3.15. Вряд ли тогда поможет
Изменения
В клиентском приложении (тонкий, толстый и веб-клиент) реализована возможность снимать объектную блокировку, установленную другим пользователем или этим же пользователем, но в другом сеансе. Под «объектной блокировкой» понимается блокировка, установленная интерактивно, при редактировании объекта в форме, или методами Заблокировать(), ЗаблокироватьДанныеДляРедактирования(), ЗаблокироватьДанныеФормыДляРедактирования().
При обнаружении блокировки реализована возможность начать обсуждение с инициатором блокировки по системе взаимодействия (если информационная база подключена к системе взаимодействия).
В клиентском приложении (тонкий, толстый и веб-клиент) реализована возможность снимать объектную блокировку, установленную другим пользователем или этим же пользователем, но в другом сеансе. Под «объектной блокировкой» понимается блокировка, установленная интерактивно, при редактировании объекта в форме, или методами Заблокировать(), ЗаблокироватьДанныеДляРедактирования(), ЗаблокироватьДанныеФормыДляРедактирования().
При обнаружении блокировки реализована возможность начать обсуждение с инициатором блокировки по системе взаимодействия (если информационная база подключена к системе взаимодействия).
(19)
ЗЫ: вроде как фреш на постгресе и линухе, но да - там серверный вариант. Видимо те, кто переходит на Линух, почти все на серверном варианте живут.
вроде не мало фирм стали переходить на linux сервера, ни у кого такой проблемы не было что ли ?
Видимо были, поэтому в инете столько мануалов, которые в Вашем персональном случае по какой-то причине не работают (ну или Вы что-то делаете не так, что тоже нельзя исключить).
ЗЫ: вроде как фреш на постгресе и линухе, но да - там серверный вариант. Видимо те, кто переходит на Линух, почти все на серверном варианте живут.
Так работает
<IfModule mpm_event_module>
ServerLimit 1
StartServers 1
MinSpareThreads 1
MaxSpareThreads 1
MaxRequestWorkers 1
MaxConnectionsPerChild 0
</IfModule>
Без этого - такая же ситуация как и в (1).
На ИТС про ServerLimit 1 тоже есть информация.
Учитывая, что работа с файловой базой через веб сервер носит исключительно однопоточный характер(если один пользователь запустил что-то на 2-5 мин., все остальные терпеливо ждут), то можно попробовать автономный сервер, до трех сеансов с файловой базой. Если до пяти, то мини сервер. А дальше - как пойдет... :)
Сантименты и сентенции по поводу "у клиента нет денег на сервер 1С" - довольно слабая аргументация, захотят комфортно работать - найдут.
<IfModule mpm_event_module>
ServerLimit 1
StartServers 1
MinSpareThreads 1
MaxSpareThreads 1
MaxRequestWorkers 1
MaxConnectionsPerChild 0
</IfModule>
Без этого - такая же ситуация как и в (1).
На ИТС про ServerLimit 1 тоже есть информация.
Учитывая, что работа с файловой базой через веб сервер носит исключительно однопоточный характер(если один пользователь запустил что-то на 2-5 мин., все остальные терпеливо ждут), то можно попробовать автономный сервер, до трех сеансов с файловой базой. Если до пяти, то мини сервер. А дальше - как пойдет... :)
Сантименты и сентенции по поводу "у клиента нет денег на сервер 1С" - довольно слабая аргументация, захотят комфортно работать - найдут.
(21) Ну вообще блокировки ушли , теперь стала база зависать ) просто колесико крутится, но я так понимаю, теперь апач их выстаивает в очередь , сеансы. Работают около 5 пользователей.
Такое я думаю подойдет для работы 1-2 пользователей.
Я думаю лучше уже не сделать))
И самое верное решение для клиентов, у которых будет apache и ОС Linux ( RedOS), это 1С сервер.
Тебе большое спасибо!
Такое я думаю подойдет для работы 1-2 пользователей.
Я думаю лучше уже не сделать))
И самое верное решение для клиентов, у которых будет apache и ОС Linux ( RedOS), это 1С сервер.
Тебе большое спасибо!
По итогу получилось убрать блокировки и зависания.
Плотно пообщались с поддержкой RedOS. Спасибо ребятам за оперативную работу!
По итогу оказалось что база у нас была опубликована средствами конфигуратора.
Мы ее переопубликовали средствами apache через терминал.
Проверьте данные параметры модуля mpm_event_module:
<IfModule mpm_event_module>
ServerLimit 5
StartServers 100
MinSpareThreads 1
MaxSpareThreads 1
MaxRequestWorkers 1
ThreadsPerChild 1
MaxRequestsPerChild 1000
ThreadsPerChild 1
KeepAlive Off
</IfModule>
После этого блокировки ушли полностью !
Плотно пообщались с поддержкой RedOS. Спасибо ребятам за оперативную работу!
По итогу оказалось что база у нас была опубликована средствами конфигуратора.
Мы ее переопубликовали средствами apache через терминал.
Проверьте данные параметры модуля mpm_event_module:
<IfModule mpm_event_module>
ServerLimit 5
StartServers 100
MinSpareThreads 1
MaxSpareThreads 1
MaxRequestWorkers 1
ThreadsPerChild 1
MaxRequestsPerChild 1000
ThreadsPerChild 1
KeepAlive Off
</IfModule>
После этого блокировки ушли полностью !
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот