Книга: SAP R/3 Системное администрирование

9.1. Концепции

9.1. Концепции

Фоновая обработка

Обычно все недиалоговые программы можно выполнять в фоновом режиме. Этот метод полезно применять, если обработка отнимает много времени и поэтому должна выполняться, когда система имеет низкую загрузку. Онлайновая обработка блокирует диалоговый процесс на все время выполнения и косвенно мешает другим диалоговым пользователям.

Чтобы пользователи не выполняли длительно выполняющиеся отчеты интерактивно (см. рис. 9.1), шаги диалогового режима имеют ограничение по времени выполнения. Это ограничение задано по умолчанию равным 600 сек. Обработка прекращается после завершения этого периода времени. Можно задать это ограничение в системном профиле (параметр rdisp/max_wprun_time). Фоновая обработка не имеет таких ограничений.


Рис. 9.1. Длительная задача в диалоговом режиме

Автоматическая обработка, требующая периодического выполнения определенных задач, является другим очевидным применением фоновой обработки. Для фоновой обработки в системе R/3 предусмотрена служба фонового выполнения с фоновыми рабочими процессами, которые называют просто фоновыми процессами. В отличие от диалоговой обработки, когда каждая логическая единица работы (LUW—Logical Unit of Work; см. главу 1)) присваивается следующему свободному процессу диалога, при фоновой обработке один процесс присваивается фоновому заданию на все время выполнения. Время запуска фонового задания определяет системный администратор или обычный пользователь. Задание можно запускать не только при наступлении указанного времени, но и по какому-то событию.

Планировщик фоновых заданий по времени

Для запуска задания в конкретное время нужно запланировать его выполнение. Каждая инстанция системы R/3, сконфигурированная для выполнения фоновых рабочих процессов, имеет активный планировщик заданий по времени. Через определенные интервалы времени он проверяет наличие фонового задания для обработки. Описания ожидающих заданий хранятся в центральных таблицах в базе данных. Планировщик — это программа АВАР, интерпретируемая и обрабатываемая заданным диалоговым процессом, который автоматически выбирается при запуске системы R/3. По умолчанию интервал активизации планировщика фоновых заданий составляет 60 сек. Администратор может его настроить, для чего в профиле инстанции устанавливается параметр rdisp/btctime. Таким образом, задание может запускаться с точностью до интервала активизации планировщика фоновых заданий. Если задержка слишком длительная, интервал можно уменьшить. С другой стороны, если задержка запуска задания не столь важна, лучше увеличить этот интервал времени, хотя уменьшение частоты запуска планировщика фоновых заданий мало влияет на производительность системы.

Планировщик фоновых заданий на основе событий

Планировщик на основе событий функционирует в системе R/3 на уровне приложений. Он запускает соответствующее фоновое задание в ответ на определенное событие. Планировщик заданий на основе событий также обрабатывается диалоговым рабочим процессом. Инстанцию для него можно выбрать с помощью параметра rdisp/btcname = <имя_сервера> в стандартном профиле системы R/3 (DEFAULT.PFL).

Системные события

Сначала необходимо определить события, на которые должна реагировать система R/3. В стандартной системе R/3 уже определены многие виды событий. Для вывода списка этих событий можно использовать ?Event Maintenance. События, определенные для стандартной системы, называются системными. Они часто используются для внутреннего управления R/3, но могут применяться и пользователями R/3 для своих целей.

Пользовательские события

С помощью того же меню пользователь может определить свои собственные новые события. Подобные события называются пользовательскими. Для определения события нужно создать запись в таблице.

Инициация события (триггеры)

Инициировать событие можно следующими способами:

? Вручную с целью тестирования — с помощью ?Trigger Event

? Используя в программе АВАР в системе R/3 функциональный модуль BP_EVENT_RAISE

? Посредством внешней программы sapevt

Программа sapevt

Программа sapevt позволяет инициировать событие в системе R/3 из внешней программы. Эта программа доступна в стандартном каталоге SAP для исполнимых программ (см. главу 1). Вызывается она так:

? sapevt <идентификатор события> [-р <параметр>] [-t] [pr = <профиль> name = <имя_системы R/3> nt = <номер_системы R/3>]

Параметр -t задает запись файла журнала dev_evt в тот каталог, откуда вызывалась программа sapevt. Параметр -р можно использовать для указания модуля R/3, например F1. Это позволяет присваивать события прикладным областям. Это присваивание имеет только описательную природу и не обладает другими функциями.

Например, вызов:

? sapevt SAP_TRIGGER_RDDIMPDP name=Q01 nr=00

инициирует событие SAP_TRIGGER_RDDIMPDP в системе Q01.

В самой системе R/3 управление событиями используется, например, для переноса объектов между системами R/3. Перенос выполняется в несколько этапов с помощью программы управления переносом tp. Кроме фактического импорта данных нередко возникает необходимость сгенерировать или активизировать отдельные объекты. Программа tp инициирует событие SAP_TRIGGER_RDDIMPDP при завершении импорта данных. В системе R/3 задание RDDIMPDP всегда планируется как зависимое от события SAP_TRIGGER_RDDIMPDP. Если наступает это событие, то в фоновом режиме выполняется задание RDDIMPDP.

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

Оглавление книги


Генерация: 0.184. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз