SAP R/3 Системное администрирование
Шрифт:
Пока обновление не выполнено, измененные объекты остаются заблокированными; другие пользователи не могут получить доступ к этим объектам, или, по крайней мере, они не могут их изменять в зависимости от типа используемой блокировки. Поскольку проблемы обновления могут разрушить всю систему, их разрешение всегда имеет наивысший приоритет.
Определение
В среде R/3 термин обновление означает выполнение изменений в базе данных R/3, которые система SAP производит обычно асинхронно после того, как данные были введены или изменены. Для отображения LUW R/3 в транзакции базы данных требуется специальная
Например, если пользователь вводит данные, то они сначала передаются процессу диалога. Самим процессом диалога изменения в БД не вносятся; для этого используются специальные процессы обновления, записывающие изменения асинхронно (см. рис. 10.1).
Рис. 10.1. Асинхронное обновление
Когда SAP LUW обрабатывается в диалоге, сделанные изменения сохраняются как модули (определенные как функциональные модули и соответствующие данные) в запросе обновления. В заключение диалоговой части транзакции SAP запрос обновления закрывается, записывается заголовок обновления (см. рис. 10.2), и вызывается сама задача обновления, которая выполняет изменения в базе данных, как определено в запросе обновления. Заблокированные записи от диалоговой или фоновой обработки наследуются задачей обновления, которая разблокирует объекты, когда завершается обновление.
Пользователи могут заметить, что асинхронные изменения по сравнению с синхронными дают более высокую производительность системы. Пользователь может быстро модифицировать, ввести или удалить данные — ему не нужно ждать, пока будут выполнены эти запросы, а изменения асинхронно поступят в БД. Подобные запросы обрабатываются в фоновом режиме специальными процессами. Асинхронное обновление особенно выгодно при внесении в данные обширных изменений, например при крупной модификации корпоративных данных или создании заказов. Оно улучшает масштабируемость системы R/3. Обычно пользователи никак не могут повлиять на то, как именно вносятся изменения в БД — асинхронно или синхронно. Это зависит от применяемой программы АВАР.
Рис. 10.2. Запрос обновления
Запрос обновления
Данные, которые будут изменены SAP LUV, сохраняются в запросе обновления (называемом также записью обновления). Запросы обновления состоят из заголовка обновления, одного или нескольких V1, V2 и модулей групповой обработки (см. рис. 10.2).
Таблицы обновления
Информация о запросах обновления сохраняется в таблицах обновления:
► VBHDR — Заголовки обновления
► VBMOD — Модули обновления
► VBDATA — Данные, перенесенные в модули
► VBERROR — Информация об ошибках, которая порождается, если обновление прерывается.
Так как эти таблицы постоянно изменяются, то для них не нужно генерировать какие-либо статистики базы данных (см. главу 15). Программы обработки созданы для работы с относительно небольшими таблицами обновления. Это другая причина, почему валено контролировать задачу обновления и
Режим обновления
Программы ABAP поддерживают три типа обновлений:
► Локальные обновления
► Асинхронные обновления
► Синхронные обновления
Программа ABAP определяет используемый режим, который не могут изменить ни администратор, ни пользователь.
Локальные обновления
Во время локального обновления изменения в базе данных выполняются непосредственно из соответствующего рабочего процесса, обходя описанные выше механизмы. Эти обновления не видны при контроле обновлений (см. раздел 10.3), и ими нельзя управлять.
Асинхронные обновления
Асинхронное обновление является наиболее часто используемым режимом обновления и предлагает наилучшую производительность для диалоговых приложений. Необходимо контролировать систему обновления и ее запросы на обновление, чтобы обеспечить функциональность этой системы.
Синхронное обновление
Синхронное обновление использует тот же механизм, что и асинхронное. Однако в этом случае, после того как запрос обновления послан задаче обновления, вызывающая программа ждет, пока рабочий процесс обновления вернет статус обновления. Синхронные обновления отмечаются соответственно в информационном столбце системы управления обновлениями.
Обновления V1 и V2
Система различает модули обновления V1 и V2. Существует также групповая обработка для часто используемых функциональных модулей, называемая иногда обновлением V3. Обновление V1 включает в себя критические изменения управляющих функций. Подобные обновления используются для бизнес-операций, например для изменения в имеющихся на складе материалах. Изменения в такие объекты должны вноситься как можно быстрее. Обновления V2, напротив, используются в основном для целей статистики и поэтому имеют более низкий приоритет, чем обновления V1.
Каждый модуль обновления соответствует модулю функции обновления. Будет ли использоваться обновление V1, V2 или V3, зависит от модуля функции и не может изменяться администратором.
На уровне системы обработку модулей V1 и V2 можно распределить по отдельным рабочим процессам обновления в классах UPD и UPD2 (см. главу 15). Для определения числа обновленных процессов UPD и UPD2 используются профильные параметры. Проверить распределение рабочих процессов можно с помощью ►Process Overview (см. главу 15). Если в системе не сконфигурированы рабочие процессы UDP2, то обновление V2 выполняется в рабочем процессе UDP.
Обновления V2 не обязательно выполняются только после обновлений V1. Когда обрабатывается компонент V1, система автоматически пытается обработать компоненты V2 этого запроса обновления.
Модули групповой обработки
В модулях групповой обработки (V3) обновление выполняется не в процессе обновления — оно выполняется асинхронно в пакетном задании (отчет RSM13005). При таком подходе сначала консолидируют собранные вызовы функционального модуля. Если одна и та же запись изменяется несколько раз, то сначала вычисляется получающееся значение и только оно записывается в базу данных один раз. В остальном же администрирование и управление функциональными модулями идентичны модулям обновления V2. В частности, это означает, что запросы обновления остаются в таблицах обновления, пока они не будут обработаны при групповой обработке.