Бот для загрузки информационной базы большим количеством сеансов.

Пара программ, для проверки производительности информационной базы с конфигурацией УТ 11.1 при большом количестве сеансов.

В целях проведения наблюдения за поведением информационной базы УТ-11.1 при работе с большим количеством сеансов потребовалось разработать решение, которое бы загрузило ее задачами наиболее приближенными к реальному режиму работы. Выход, как показалось, состоял в написании обработки, которая могла бесконечно создавать несколько типов документов в ИБ, с заданной периодичностью. При этом если остатки на складе достигают нулевых значений, то обработка сама эти остатки добавляет. Выборка номенклатуры, которая попадает в расходный и приходный документ осуществляется случайным образом. В результате недолгих измышлений мной была написана обработка, которая при старте своей основной формы запускает обработчик ожидания, в процедуре которого раз в 5 минут бесконечно выполняется такая последовательность операций:
Получается случайным образом соглашение с покупателем из справочника соглашений.
Выбираются остатки товаров на складе (10 записей остатков из регистра).
Если остатки есть, то выполняется формирование документа реализации ТМЦ и счета-фактуры.
Если остатков нет или количество позиций по остаткам номенклатуры менее номинального значения (10 строк), то выполняется формирование документа поступление ТМЦ от поставщика по случайному соглашению.
Оценка производительности сервера осуществляется визуально (насколько комфортно можно работать при такой нагрузке), а также средствами ОС.
Обработка, собственно, не имеет интерфейса, т.к. выполняется при запуске ИБ. Все параметры выполнения заданы на уровне кода.
Вместе с тем, возникла задача многократного запуска информационной базы с разными сеансами. Для решения этой задачи на C++ была написана небольшая программка, которая позволяет циклически выполнить запуск заданного количества сеансов пользователей вместе с указанной в параметре обработкой.
Количество сеансов, а также задержка между запусками сеансов может быть задана на форме.
Причиной отказа от использования пакетного файла является то, что между запуском сеансов должна быть временная задержка, иначе возникают ошибки, связанные с доступом к файлам кэша. Длина задержки – индивидуальна для каждого компьютера.
Интерфейс программы выглядит так:

Имеется возможность запуска инф. Баз в файловом и клиент-серверном режимах.
Настройки запуска, при закрытии формы через «крестик» сохраняются в файле «1cStressTestSettings.ini», расположенном в директории программы.
Имеется возможность запуска программы через командную строку с единственным параметром «-r». В этом случае программа сразу после запуска начнет инициализировать сеансы с ИБ, согласно настройкам, сохраненным при последнем ее запуске в файле настроек. Например: F: МультизапускDebugМультизапуск.exe –r
Если данная тема вызовет некий интерес, то планируется поддержка разработки. (Написание обработок-ботов для разных конфигураций, расширение перечня формируемых ими документов, расширение функционала стартера (например, выбор инф. баз из списка)).

Прилагается 2 архива для скачивания «Мультизапуск» и «Бот». «Мультизапуск» – это исходники к стартеру, а «Бот» — это скомпилированный стартер и обработка, которая и вершит основное действо.

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *