|
Рисунок 16. Асинхронное обновление
Примечание: транзакция соответствует логической единице обработки (LUW).
Различают элементарные шаги обработки (LUW) в системе SAP и эти же шаги в системе базы данных (SAP-LUW/DB-LUW). DB-LUW либо полностью выполняется, либо обновление данных не происходит (выполняется откат). DB - LUW перемещает базу данных из одного согласованного состояния в другое. Это означает, что данные должны быть логическими и корректными, как до, так и поле LUW; это справедливо, как для DB - LUW, так и SAP - LUW.
Т.к. один шаг диалога обрабатывается одним рабочим процессом, поэтому DB-LUW не может длиться дольше этого шага диалога. SAP-LUW состоит из нескольких диалоговых шагов, т.о. в процессе выполнения обрабатываются несколько DB-LUW.
Запуск приложения SAP является также и началом SAP-LUW. Как было описано выше, каждый шаг диалога в SAP-LUW обрабатывается одним рабочим процессом, как и в случае с DB-LUW. Каждое изменение в базе данных выполняется в своем собственном DB-LUW.
Асинхронное обновление, обычно используемое в SAP - LUW, позволяет системе временно накопить изменения, выполненные пользователем в отдельных диалоговых шагах, а затем при завершении фазы диалога, внести изменения в базу данных посредством отдельного рабочего процесса обновления (рисунок 16). Для обеспечения непротиворечивости данных итоговое изменение базы данных (включающее в себя каждое "изменение шага диалога") выполняется только в одном заключительном DB - LUW.
ABAP-программы длительного выполнения.
Рисунок 17. Блокировка диалоговых процессов программами длительного выполнения
В диалоговом режиме в системе SAP нельзя выполнять программы с большим временем выполнения, т.к. тогда эти рабочие процессы будут недоступны другим пользователям (рисунок 17). Оставшимся диалоговым рабочим процессам придется обрабатывать намного большее количество пользователей, что скажется на значительном снижении времени реакции системы.
В системе существует специальный параметр «максимальное время выполнения диалога» (значение по умолчанию 300 сек), который устанавливает максимальное время шага диалога, разрешенное для нахождения в диалоговом рабочем процессе. Если это время превышено более чем вдвое, шаг диалога прерывается и запущенная транзакция завершается с ошибкой. Это позволяет администратору гарантировать то, что операции, требующего длительного времени выполнения, будут выполняться пользователями только в фоновых рабочих процессах, которые и необходимо использовать для таких типов операций.
Дата добавления: 2015-12-07; просмотров: 119 | Нарушение авторских прав