
Server Selection and Load Balancing Using the SAP Web Dispatcher
An HTTPS request is assigned to a server in two levels. HTTPS requests are discussed at the end of this documentation.
Determining the Server Group
If no J2EE server is active, in the stateless case the request is passed to the next SAP Web AS in the queue according to load balancing. The server group that can process the request is the internal group !ALL of all SAP Web AS in the system. If it is a stateful connection, the system selects the SAP Web AS that is processing the transaction.
If a J2EE server is active, the system looks through the list of ICF prefixes. If the URL starts with a prefix that is in the HTTP service tree, the request is passed to the server group !DIAG. If not, it is passed to the group !J2EE. The groups are described in
SAP Web Dispatcher under Functions.The start page and the root directory are handled in a special way, since when you search through the list of prefixes, you cannot search through the root directory (it would always be found because all URLs begin with /). If the URL is a root URL, the profile parameter
is/HTTP/default_root_hdl determines which root directory should be used. Permitted values are abap and j2ee, although the value can also be changed dynamically using Transaction RZ11 or SMMS.The following flow diagram shows the algorithm that is used.

The decision whether it is a SAP prefix is described in detail below. With URL
http://hostname:port/A/B/C the prefix to be examined is the character string /A/B/C.The SAP Web dispatcher must therefore decide whether it is an SAP prefix, which should be sent to the ABAP server (the ICF), or if it is a prefix that is not recognized by the ICM, in which case it is sent to the J2EE application server. To do this, the following process is used.


If you enter the URL
Working with Logon Groups in the SAP System
If the request should be sent to an SAP Web AS, then you must check whether a logon group (maintained in Transaction SMLG) has been defined for this URL. The SAP Web dispatcher checks the list of logon groups to see if one has been defined. If it does find one, the load balancing must be executed within this logon group.

Since with HTTP there are many requests, this logon group must have the attribute "external RFC" so that no one server is flooded with requests.
Load Balancing in the Server Group
Capacity is assigned to every application server. With the SAP Web AS ABAP server, this depends on the number of dialog work processes. With the SAP J2EE application server, the capacity is determined in a similar way. The requests are distributed in turn to the server, depending on its capacity. If Server A has twice as much capacity as Sever B, then A will receive twice as many requests as B.
Server Selection and Load Balancing for HTTPS Requests
Since with HTTPS requests the SAP Web dispatcher is unable to read the URL, it can only distribute HTTPS requests in turn to the HTTPS-enabled servers in the system. This also takes into consideration the capacity of each server. To be able to process J2EE requests, each HTTPS-enabled server must have integrated the J2EE server.
The ICM of the server that receives the HTTPS request can encode the URL and then decide whether the request should be sent to the ICF or to the integrated J2EE server.
See also:
SAP Web Dispatcher and SSL