1с ошибка при выполнении запроса post к ресурсу e1cib logform
Недавно столкнулся с неприятной ошибкой на одном из старых серверов с 1С. Решил записать решение, чтобы не забыть и с другими поделиться. При определенных обстоятельствах пользователь не может зайти в базу 1С, получая ошибку во время логина на нехватку памяти.
Введение
Данная ошибка может сопровождаться разным названием и описанием, но по смыслу они будут примерно одинаковые. Суть в том, что не хватает оперативной памяти для входа в базу. Но при этом совсем не очевидно, о какой памяти идет речь. Например, вот текст:
Невосстановимая ошибка
Ошибка при выполнении запроса POST к ресурсу /e1cib/login:
по причине:
Ошибка СУБД:
Microsoft SQL Server Native Client 11.0: Ошибка выделения памяти
HRESULT=80004005,
Изначально мне показалось, что проблема с нехваткой памяти для работы MSSQL сервера. Так что я пошел и отрегулировал ее потребление в настройках сервера. Но это не помогло. На следующий день пользователи опять периодически стали получать эту ошибку, хотя на сервере было достаточно свободной оперативной памяти. Стал разбираться дальше.
Неспецифицированная ошибка работы с ресурсом
Второй вариант текста той же самой ошибки выглядел следующим образом:
Неспецифицированная ошибка работы с ресурсом
Ошибка при выполнении запроса GET к ресурсу /e1cib/cmi/commands:
Недостаточно свободной памяти для выполнения операции
После этого я уже понял, что проблема не в MSSQL сервере, а в самой 1С. Поиск в интернете и анализ ситуации на сервере привел к пониманию проблемы. Суть ее вот в чем. Сервер 1С создал рабочий процесс rphost , который обслуживает подключения к базам данных. В моем случае сервер 1С 32-х битный, так что он ограничен по максимальному использованию памяти одним рабочим процессом.
Решение проблемы "недостаточно свободной памяти для выполнения операции" в 1С
В общем случае данную проблему можно решить следующим образом. Открываем консоль управления кластером, идем в раздел Рабочие серверы , выбираем свой сервер и его свойства. Меняем 2 параметра:
- Количество ИБ на процесс.
- Количество соединений на процесс.
Чтобы проблема ушла, вам необходимо уменьшить значения. Определить оптимальные сходу вряд ли получится. Для начала можете их просто уменьшить вдвое, поставив 4 и 128 соответственно.
Заключение
Если нет возможности изменить настройки из-за несоответствия лицензии, временно поможет перезапуск сервера 1С. Но работать он будет нормально до тех пор, пока очередной рабочий процесс не займет максимально возможную для себя память. На практике это в районе 3.5 Гб. После этого если не запустится новый рабочий процесс, новые подключения к базам будут невозможны. Придется раскошелиться на 64-х битный сервер.
Если у вас медленно работает сервер 1С, читайте мою статью по его профилированию - Процесс 1С rmngr.exe грузит процессор .
Помогла статья? Подписывайся на telegram канал автора
Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.
Перевод и причины дисфункции
Проблема возникает на серверной версии программы, причём после установки очередного обновления к «1С». Проблемными стали версии программы 8.3.6, 8.3.8.хх, 8.3.9.ххх, на которых рассматриваемая мной дисфункция возникает наиболее часто.
Данная ошибка возникает случайно, в большинстве случаев не имеет каких-либо закономерностей при своём появлении, чем раздражает довольно многих пользователей, заваливающих техподдержку 1С «письма счастья».
Как я уже упоминал выше, причиной возникновения ошибки запроса POST является некорректно написанный разработчиками код программы. Потому в данном случае не стоит искать причины в некорректном функционале своего ПК, а сосредоточиться на действующих вариантах решения проблемы, которые я опишу ниже.
Чтобы избавиться от ошибки рекомендую выполнить следующее:
- Выполните стандартное «Тестирование и Исправлении» (ТиИ) вашей базы данных. Данная операция осуществляется переходом в «Конфигуратор», где во вкладке «Администрирование» необходимо выбрать опцию «Тестирование и Исправление». Операцию необходимо осуществлять в монопольном режиме, потому никого кроме вас в базе быть не должно. Перед выполнением указанной процедуры рекомендуется сделать страховочную копию ваших баз данных;
- Установите наиболее свежие обновления к вашей версии 1С. Поскольку пик появления данной ошибки пришёлся на 2016-2017 годы, то с тех пор разработчиками был выпущен ряд обновлений, позволяющих устранить данную ошибку. Установите свежие апдейты для вашей «1С», и если не помогло, то идём дальше;
- Откатите программу до прежней версии. В некоторых случаях (когда у пользователей было установлены самые свежие обновления) помог откат программы до более ранней (и более стабильной) версии программы;
- При доступе к серверу 1С рекомендуется почистить кэш. Остановите на сервере службу под названием «агент сервера 1с предприятие», в каталоге кэша сервера удалите всё кроме файлов, имеющих расширение *.1 Примерный путь к каталогу может быть:
После чего вновь запустите указанную службу;
Заключение
Основным фактором возникновения ошибки запроса POST к ресурсу /e1cib/logForm является некорректно написанный разработчиками код обновления к программе «1С». Эффективным решением возникшей проблемы станет обновление вашей версии 1С до самой свежей версии, где рассматриваемая дисфункция уже исправлена, и появлений рассматриваемой ошибки более не наблюдается.
Причины ошибки в 1С
Изменяем режим запуска для пользователей
Часто ошибку можно решить довольно просто. Для этого вам необходимо войти с правами администратора и изменить настройки учетной записи пользователя. Нужно выбрать редактирование информационной базы и в поле «Основной режим запуска» поставить галочку на «Выбирать автоматически». Сохраните эти изменения, и ошибка должна пропасть.
Устранение сбоя при выполнении запроса GET к ресурсу
Из-за переполнения кэша программы, могут возникать разные ошибки. Так как для стабильной работы с новыми формами необходимо свободное пространство буфера быстрого доступа. Часто освобождение этого буфера помогает программе снова начать работу без каких-либо проблем.
- Чтобы очистить кэш, вам нужно в 1С найти к нему путь. Он находится в той же папке, что и программа;
- Выберите кнопку «Настройки»;
- Найдите путь в этом окне. Вы можете скопировать путь и вставить его в проводнике, чтобы быстро попасть в нужную папку;
- В ней будут файлы с длинными случайными наборами символов в качестве имен. Их все нужно удалить. Это и есть кэш 1С.
Если ошибку получится удалить этим способом, вы можете использовать настройки программы таким образом, что при каждом запуске кэш будет удаляться автоматически. И вам не придется каждый раз его чистить.
Запуск утилит для исправления ошибок 1С
В программном комплексе 1С включены специальные утилиты, которые могут помочь пользователю решить проблемы при работе. Если вам еще не удалось устранить дисфункцию при выполнении запроса GET к ресурсу e1c/ibc/micommands:
Каждый из параметров позволяет выполнять дополнительные проверки над теми или иными данными программы:
- Реиндексация таблиц — ревизия индексов таблиц. В ходе тестирования будет произведена реиндексация. Не убирайте с него галочку. Эта процедура пойдет программе на пользу;
- Проверка целостности базы — база данных будет перепроверена. Если будут найдены неполадки, утилита исправит их. Также полезная функция, которая не будет лишней при запуске;
- Проверка базы ссылок — будут найдены неверные указатели, ссылки и действия над ними передаются пользователю;
- Реструктуризация таблиц — эта процедура занимает много времени. Поэтому применять нужно только в случае реальной необходимости. В результате её действия структура таблицы будет пересоздана;
- Сжатие таблиц — также полезный параметр, в процессе удаляются элементы данных, в которых уже нет необходимости.
Добавление памяти для 1С
Ошибки в 1С Предприятие часто имеют дополнительный параметр «Недостаточно памяти». С ней встречались, наверное, все, кто долгое время работал с программой. Нехватка памяти появляется из-за обновления конфигурации, загрузки объемных баз данных, при создании отчетов и т.д.
Чтобы избавиться от ошибки с памятью:
- Откройте меню «Пуск». Запишите в пустой строке поиска «Командная строка»;
- Выберите её в результатах ПКМ и запустите от имени администратора;
- Введите команду: CMD и нажмите клавишу ввода;
- Курсор перейдет на другую строку, в ней запишите: bcdedit /set increaseuserva 3072 и нажмите ENTER. В цифрах выражается память в мегабайтах. Здесь вы можете указать свое значение, относительно установленной в компьютере оперативной памяти;
- В системных настройках можно узнать, сколько памяти есть в компьютере. Для этого нажмите вместе WIN+PAUSE.
После этих действий перезагрузите компьютер и проверьте, появляется ли ошибка при выполнении запроса GET к ресурсу e1cib/cmi/commands.
При свертке базы во время выполнения второго пункта 1С отваливается с ошибкой: "Невосстановимая ошибка Ошибка при выполнении запроса POST к ресурсу /e1cib/logForm по причине:" и всё на этом.а
База весит 100Гб, оперативной памяти на сервере 64Гб, в настройках кластера снимал ограничение(-1) про максимальный объем памяти, не помогло.up. Попробовал обновить сервер и платформу до 8.3.14.1976, не помогло, та же самая ошибка.
(4) но памяти не хватает.
Может у тебя клиент, с которого свертку запускаешь, она на 32-бит, т.е. ошибка не на сервере, а на клиенте?
(5) Всё x64, свертку запускаю прямо на сервере. Есть подозрение конечно, что тупо памяти не хватает, в процессах рождаются rphost в количестве 7 штук, один основной отъедает 1,4Гб оперативы, другие по 300-500Мб, разрешено памяти на один процесс до 20Гб, после какого-то времени 1С падает с ошибкой и эти процессы сокращаются.
(7) А есть статистика, что этот рпхост перед падением доходит до предела памяти?
Тут как бы возникает специфический вопрос. На фоне террабайтных дисков для установки во всякие там компы, которые можно купить в розницу за относительно небольшие деньги,
получается, что 100 гб в базе вроде бы и не так много. Однако, процессы с таким размером памяти работать не хотят.
А может быть, с учетом того, что базу надо изнасиловать, обеспечить этому событию абсолютную монопольность на сервере?
Ну и убрать при этом любые ограничения на использование памяти, конечно.
Вообще, Заказчику в подобной ситуации нужно понимать, что одного сервера для нормальной работы в режиме 24/7 при таком размере баз и процессов уже не хватит.
И если КОРП версию 1С покупать по стоимости просто неадекватно, то может быть имеет смысл купить просто еще одну лицензию на сервер 1С
и запускать всякие системные и сервисные вопросы на дополнительном компьютере.
Например, этот дополнительный сервер можно поставить на линукс платформе (это такой ненавязчивый намек)
Читайте также: