вторник, 27 октября 2015 г.

1С: Эксперт. Решение билета №8

Вопрос 08.1
В метаданных конфигурации определена последовательность «ПартионныйУчет» с измерением «Организация». Обработчик проведения документа содержит следующий код:

Отбор = Новый Структура;
Отбор.Вставить(«Организация», Организация);
Последовательности.ПартионныйУчет.УстановитьГраницу(ТекущаяДата(), Отбор);

В каком случае документы этого вида смогут проводится параллельно разными пользователя, а в каком нет? Обоснуйте свой ответ. Как можно повысить параллельность работы в этом случае?

Ответ: 
Смогут проводится документы разными пользователями только если организации различаются.
Параллельность можно повысить двумя способами:
1) Убрать смещение границы последовательности из обработки проведения. Делать это оптимальнее с помощью фоновых заданий в нерабочее время.
2) Добавить в последовательность еще один реквизит (например контрагент или договор) в этом случае параллельность также повысится.



Вопрос 08.2
Что такое транзакция? Для чего она нужна? В каком случае открывается транзакция? Поддерживаются ли вложенные транзакции?

Ответ:
В качестве ответа приведу фрагмент книги "Настольная книга эксперта по технологическим вопросам".
Транзакция в информатике это группа логически объединенных последовательных операций по работе с данными, обрабатываемая или отменяемая целиком. 
Все Транзакции могут быть явными и неявными. Средствами языка «1С» явные транзакции начинаются процедурой глобального контекста НачатьТранзакцию() , завершаются процедурой глобального контекста ЗафиксироватьТранзакцию() , отменяются процедурой ОтменитьТранзакцию() .
Неявные транзакции начинаются, завершаются и отменяются средствами
платформы. Любые операции, изменяющие данные (например — проведение и отмена проведения документов) выполняются только в транзакции. В неявной транзакции выполняются обработчики следующих событий прикладных объектов конфигурации (но не форм!), вызываемые как через модули этих прикладных объектов, так и через подписки на события:
ПередЗаписью() ;
ПриЗаписи() ;
ОбработкаПроведения() ;
ОбработкаУдаленияПроведения() ;
ПередУдалением() ;
ПередВыполнением() .

Вложенные транзакции не поддерживаются.



Вопрос 08.3
Имеется автоматизированный многопользовательский нагрузочный тест, который выполняется по следующему сценарию: все пользователи выполняют и проводят один и тот же вид документов. Документы, проводимы разными пользователями, таким образом «разнесены» по данным, чтобы не возникало никаких ожиданий на блокировках.

Во время тестирования измеряется общая пропускная способность системы: общее количество строк документов (от всех пользователей), обработанных за единицу времени.
Тестировщик выполнил тест для различного количества одновременно работающих пользователей и получил следующий график:




В чем может быть причина уменьшения общей пропускной способности при количестве одновременно работающих пользователей более 150?

Ответ:
Причина скорее всего в сильной загруженности оборудования.  В  этом  случае  необходимо  настроить  мониторинг  загруженности оборудования.
Так  же  узким  местом  здесь  может  выступать  рабочий  процесс.  Если  рабочий  процесс создан  1,  то  он  может  являться  причиной  медленной  работы  системы.  В  этом  случае необходимо  добавить  еще один или несколько  рабочих  процессов  в  кластере.


Комментариев нет:

Отправить комментарий