параметрами, которые зависят от каждой функции. В соответствии с требованиями приложения и доступными ресурсами администратор должен определить, какой конкретный процесс и сколько процессов будут реализовывать сервис для каждой инстанции. Планировщик запускает эти процессы и управляет ими. В случае отказа планировщика вся инстанция перестает функционировать. Планировщик играет роль интерфейса между уровнями презентаций и приложений. Все запросы с уровня презентаций (т. е. из SAP GUI) принимаются планировщиком и присваиваются доступным в данной инстанции рабочим процессам (см. рис. 1.8).
Рис. 1.8.
Если рассмотреть структуру рабочего процесса, то можно видеть, что он реализуется путем совместного выполнения обработчика задач, процессора обработки экранов, процессора АВАР и интерфейса SQL, которые используют специальные области основной памяти. Обработчик задач координирует операции в рабочих процессах. В зависимости от выполняемой задачи обработка передается процессору экранов, процессору АВАР (он отвечает за программы на АВАР — языке программирования SAP) или интерфейсу SQL для обмена данными с БД.
Рабочие процессы различаются по своим задачам. Процессы диалога реализуют запросы активных пользовательских сеансов. Для выполнения необходимых внутренних процедур SAP R/3 каждая инстанция SAP R/3 должна иметь, по крайней мере, два процесса диалога. Планировщик не назначает процесс диалога только одному пользователю (SAP GUI). На самом деле планировщик инстанции назначает выполнение каждого шага диалога свободному процессу диалога. Данные пользователя, необходимые для выполняемой обработки (например, авторизации), сохраняются в контексте пользователя в оперативной памяти (в доступных для рабочих процессов областях). В системе R/3 шаг диалога рассматривается как обработка одного экрана. Процесс диалога обычно занят только во время обработки шага диалога одного пользователя. Этот механизм позволяет процессу диалога обслуживать нескольких пользователей.
Задачи, которые необходимо осуществлять в фоновом режиме, реализуются
По соображениям производительности служба обновления делится на подклассы. Для менее важных частей обновления существует отдельная
Запросы вывода передаются
В системе должен быть доступен, по крайней мере, один процесс спула. Каждая инстанция может иметь любое число таких процессов.
Процессы спула координируют все процессы вывода, такие как запросы на печать и отправку факса. В зависимости от конфигурации запросы вывода могут передаваться на физический носитель или обрабатываться с помощью системы спулинга ОС. В обоих случаях осуществляется контроль вывода — его мониторинг, а системные сообщения записываются в системные журналы SAP R/3.
Если это возможно, сервер блокировок (Enqueue Server) и сервер сообщений (Message Server) должны выполняться на одной инстанции, поскольку функционируют они в тесном «сотрудничестве». Сервер блокировок управляет логическими блокировками для
► Атомарность (Atomic)
LUWs составляют элементарную единицу работы. LUW может выполняться только целиком.
► Непротиворечивость (Consistent)
LUW переводит непротиворечивую БД в новое непротиворечивое состояние, т. е. после выполнение LUW достигается корректное состояние.
► Изолированность (Isolated)
LUW выполняются независимо друг от друга. Они могут работать параллельно. Если несколько LUW пытаются работать с одними и теми же ресурсами, то они могут сделать это только при последовательном выполнении.
► Долговечность (Durable)
Результаты успешно выполненных LUW сохраняются и хранятся постоянно. Например, на результат не влияют возможные системные ошибки.
Для удовлетворения этих требований необходим сервер блокировок. Запросы блокировок, генерируемые в результате транзакций SAP R/3, передаются серверу сообщений, который, в свою очередь, передает их на выполнение серверу блокировок. Для снижения дополнительной нагрузки на сеть лучше размещать сервер сообщений и сервер блокировок на одной инстанции. Сервер блокировок работает с блокировками в специально выделенной области оперативной памяти. Таким образом, отказ сервера блокировок приводит к потере всех блокировок SAP R/3, а следовательно — к автоматическому откату