
Решаем задачи автоматизации
На базе программ 1С
И собственных решений
А потом обслуживаем
По разумным ценам
Исключение "простоев" сотрудников. Исключение "плохих" блокировок"
Тема блокировок данных в 1С и СУБД играет большую роль в крупных многопользовательских системах. Ведь чем больше пользователей одновременно обращается к данным, тем больше шанс на попытку одновременного использования одной информации разными сессиями. Ситуация, когда две или более транзакций ожидают завершения друг друга, называется «взаимная блокировка» или «deadlock». Подобные ситуации всегда являются серьезной ошибкой, поэтому необходимо понимать суть этого явления и возможные пути решения взаимоблокировок.
В первую очередь отметим: если транзакции вызывают взаимоблокировку ресурсов, то существуют проблемы в конфигурации 1С. Если у вас немного пользователей, то вы можете годами не встречаться с этим явлением даже с серьезнейшими ошибками в коде. Но как только повышается количество одновременных действий с данными, вам придется начать поиск проблем. Можно выделить следующие наиболее подходящие условия для возникновения взаимных блокировок:
Используя технологический журнал, взаимоблокировки можно отследить и установить, какие действия пользователей или фоновых заданий их вызывают. Найти их можно по специальному событию – “TDEADLOCK”. Вместе с наименованием, журнал дает нам следующую важную информацию:
Сложнее оперативно решить подобные проблемы, ведь чаще всего конфигурация уже в работе, и сотрудники компании ее используют. Но даже в этом случае программист 1С должен исправить проблемы максимально быстро, для чего нужны соответствующие знания. При этом помните, что любые действия с конфигурацией нужно выполнять, имея резервную копию.
Многие разработчики и администраторы 1С задаются этим вопросом, так как эти ситуации существенно затрудняют работу и рождают недовольство пользователей. Заранее все ситуации предусмотреть невозможно, поэтому важно знать, какими приемами можно минимизировать риск возникновения взаимоблокировок. При возникновении этих неприятных ситуаций обычно применяют следующие методы:
Исполнение вышеперечисленных рекомендаций потребует определенного уровня знаний и опыта от разработчика 1С. Неверные действия могут не только не улучшить ситуацию, но и существенно увеличить количество ошибок и взаимоблокировок в конфигурации. Если вы не обладаете соответствующей квалификацией и достаточными знаниями о транзакциях и блокировках, то лучше довериться профессионалам.
Подпишитесь на рассылку и получайте самые свежие статьи 1 раз в месяц специально для вас