Sunteți pe pagina 1din 11

Week 1: Startup, Dispatcher, and Enqueue Services

Unit 3: Introduction to Dispatcher Queues


Introduction to Dispatcher Queues
Old concept prior to SAP NetWeaver 7.40

The dispatcher
 has a queue for each work process type
 Is responsible for the state of each work process
 has to find a free work process for dispatching

Each work process has a local queue


 for processing requests directly (without communication
via the dispatcher)
 for processing asynchronous request (e.g., an aRFC
response)

The communication partner has to know whether a


session is attached to a work process or whether it
has to send the request via the dispatcher

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 2


Introduction to Dispatcher Queues
New concept

A flexible request queue mechanism:


 Queues can be created/destroyed dynamically
 Multiple processes can listen to the same queue
 A process can acquire a queue for exclusive use
 Processes can attach/detach to the queue infrastructure dynamically

How do you use the new request queues?


 Create one queue for each session
 Work processes listen to different queues and take new requests
when they are free
 Sessions can specify which kind of requests they can currently
process
 Communication partners do not have to take care of whether a
session is active in a work process or not

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 3


Introduction to Dispatcher Queues
Request queues overview

Processes have their own queue


 Dispatcher / Gateway / ICM
 Work process queues (each of which is handled by the
dedicated work process)

Session request queues


 Each session has its own queue (handled by any free
work process of proper type)
 Embryo queues: 1 for each worker type; sessions are
only created when requests are processed

Dispatch queues
 When a session queue is not attached to a work
process, it is added to a “dispatch queue”.
There are 3, one for each session priority: high, medium,
low.
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 4
Introduction to Dispatcher Queues
Monitoring of request queues (1)

Request queues of server processes

SM51: Goto  Information  Queue Information

Max. no of requests = 7 x rdisp/elem_per_queue

Local Work Processes

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 5


Introduction to Dispatcher Queues
Monitoring of request queues (2)

Work process request queue Session request queues and session


request mask
SM50: Process Information (CTRL-SHIFT-F11)
 Process Information SM04: User  Technical Information

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 6


Introduction to Dispatcher Queues
Request dispatching

Finding session queues for processing:


 Each work process has to find the session queues that
need to be processed.
 Request processing should be “fair”:
– Requests for sessions of the same kind are expected to
be handled in order of arrival.
– Requests for some sessions should have higher or lower
priority (GUI or batch processing).

Dispatch queues (queues of session queues):


 Are observed by the work processes
 There are three such queues for three priorities: high,
medium, low

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 7


Introduction to Dispatcher Queues
Priorities as of 7.4x

 High: request from UI (by default only SAP GUI)


 Medium: all other requests (HTTP, RFC)
 Low: batch processing (RFC started from BTC session)

Child processes have same or lower priority as their mother


process ABAP API to set RFC/HTTP session to high priority
(by default the priority is normal)

Runtime limit for dialog request:


 rdisp/scheduler/prio_high/max_runtime Default: 10 min
 rdisp/scheduler/prio_normal/max_runtime Default: 60 min
 rdisp/scheduler/prio_low/max_runtime Default: no limit

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 8


Introduction to Dispatcher Queues
Configuration changes

High load quota:


Protect the request queue from being flooded by requests for a certain worker type
Configuration via profile parameter rdisp/high_load_quota Default: load=90, queue=5

Task limit of sessions:


Protect the request queue from being flooded by requests for a single session
Configuration via profile parameter rdisp/task_limit Default: 1000

SAP Note: 2001276 – Changed configuration as of 7.40 SP2


© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 9
Thank you.
Contact information:

open@sap.com
© 2017 SAP SE or an SAP affiliate company. All rights reserved.

No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP SE or an SAP affiliate company.

The information contained herein may be changed without prior notice. Some software products marketed by SAP SE and its distributors contain proprietary software components
of other software vendors. National product specifications may vary.

These materials are provided by SAP SE or an SAP affiliate company for informational purposes only, without representation or warranty of any kind, and SAP or its affiliated
companies shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP or SAP affiliate company products and services are those that are
set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty.

In particular, SAP SE or its affiliated companies have no obligation to pursue any course of business outlined in this document or any related presentation, or to develop or release
any functionality mentioned therein. This document, or any related presentation, and SAP SE’s or its affiliated companies’ strategy and possible future developments, products,
and/or platform directions and functionality are all subject to change and may be changed by SAP SE or its affiliated companies at any time for any reason without notice. The
information in this document is not a commitment, promise, or legal obligation to deliver any material, code, or functionality. All forward-looking statements are subject to various
risks and uncertainties that could cause actual results to differ materially from expectations. Readers are cautioned not to place undue reliance on these forward-looking statements,
and they should not be relied upon in making purchasing decisions.

SAP and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP SE (or an SAP affiliate company)
in Germany and other countries. All other product and service names mentioned are the trademarks of their respective companies.
See http://global.sap.com/corporate-en/legal/copyright/index.epx for additional trademark information and notices.