В процессе многопользовательской работы с файловыми базами 1С:Предприятие 7.7 (DBF) в среде современных серверных операционных систем (Windows Server 2012 R2 и новее) системные администраторы часто сталкиваются с ситуацией, когда сеанс конкретного пользователя намертво зависает. При этом диспетчер задач показывает, что процесс 1cv7s.exe активен и не находится в статусе «Не отвечает», а другие пользователи могут продолжать работу либо также сталкиваются с блокировками. Разберем по шагам причины такого поведения платформы и детальные методы устранения зависаний.
Когда программа перестает реагировать на действия пользователя, первым делом необходимо выяснить, какую именно операцию выполняет система. В файловом режиме блокировки и длительные расчеты часто выглядят как полное зависание окна приложения.
Для локализации проблемы выполним следующие действия:
каталог_базы\Syslog\*.mlg. Если размер файла журнала превышает сотни мегабайт, движок 7.7 начинает существенно тормозить при записи каждого действия. Очистку журнала следует выполнять штатными средствами через Монитор 1С.Файловый движок базы данных 1С 7.7 (CodeBase) имеет жесткие технические ограничения. Главное из них — ограничение на максимальный размер любого файла таблицы *.DBF и файла индексов *.CDX в 2 Гб, а также лимиты на максимальное количество записей в таблице.
Разберем регламент проверки и исправления файловой структуры:
*.CDX раздуваются и фрагментируются, что приводит к замедлению выборки данных в десятки раз и взаимным блокировкам.*.cdx. При следующем входе в монопольном режиме платформа автоматически выполнит полное перестроение индексов заново.Одной из частых причин «зависания» базы для одного или нескольких пользователей является некорректная организация кода в конфигурации:
Проанализируем две ключевые проблемы программного кода:
НачатьТранзакцию(), вся база или отдельные таблицы блокируются на уровне файловой системы на все время, пока пользователь не нажмет кнопку в диалоге. Другие сеансы при попытке записи в те же таблицы встают в глухую очередь ожидания.Если в информационной базе используется механизм УРБД (Управление распределенными информационными базами), зависания часто происходят в момент фонового или интерактивного обмена данными.
Рассмотрим, почему это происходит:
Для стабильной работы устаревшего 32-битного движка 1С 7.7 на 64-битной серверной ОС выполним системные настройки:
1cv7s.exe может аварийно зависать из-за работы аппаратного DEP. Добавим исполняемые файлы 1С в исключения DEP или настроим режим включения DEP только для основных программ Windows.*.tmp.ordnochk.prm в каталоге базы данных или в каталоге BIN платформы, чтобы исключить зависания при несовпадении региональных настроек сортировки операционной системы.