
Sie haben verschiedene Möglichkeiten, den Web Dispatcher für mehrere System zu konfigurieren.
Sie können verschiedene Ports und / oder IP-Adressen für die verschiedenen System verwenden.
Sie können die Systeme über verschiedene URL-Präfixe (Beginn des URL-Pfades) ansteuern.
Sie können den Modification Handler verwenden. Dieses ist das flexibelste Vorgehen: Sie müssen hier nur einen Port am Web Dispatcher öffnen und die Systeme über beliebige Regeln auseinandersteuern, beispielsweise über verschiedene Aliase des Rechnernamens.
Im folgenden Beispiel gibt es zwei Systeme mit den System-IDs ERP und CE1 mit folgenden Eigenschaften:
ERP ist ein ABAP-only-System, CE1 ein Java-only-System mit Verwendungsart EP (SAP NetWeaver Portal). Da die Systemtypen sich nicht überschneiden, gilt die Einschränkung bezüglich gleichen Servernamen nicht.
Der Message-Server des ERP-Systems läuft auf dem Rechner ms_erp und hat den HTTP-Port 8082 zum Datenaustausch mit dem Web Dispatcher geöffnet. Beim System CE1 sind Host und HTTP-Port des Message-Servers ms_ce1 und 8127.
Der Host, auf dem der Web Dispatcher läuft, heißt webdisp und hat die IP-Adresse 1.2.3.4.
Steuerung über Ports/IP-Adressen
Sie können die eintreffenden Requests nach dem Port oder der IP-Adresse, unter der sie den Web Dispatcher erreichen, auf die angeschlossenen Systeme abbilden.
Steuerung über Ports
Sie konfigurieren zwei HTTP-Ports im Web Dispatcher:
icm/server_port_0 = PROT=HTTP, PORT=8888
icm/server_port_1 = PROT=HTTP, PORT=7777
Ferner pflegen Sie die Systemzuweisungen wie folgt:
wdisp/system_0 = SID=ERP, MSHOST=ms_erp, MSPORT=8082, SRCSRV=*:8888
wdisp/system_1 = SID=CE1, MSHOST=ms_ce1, MSPORT=8127, SRCSRV=*:7777
Dann gehen alle Requests, die über den Port 8888 hereinkommen, an das ERP-System, und die Requests von Port 7777 an das CE1-System.
Die folgende Abbildung zeigt diese Zuordnung über Eingangsports.

Steuerung über IP-Adressen
Ein Beispiel für die Steuerung über verschiedene IP-Adressen finden Sie unter SAP Web Dispatcher für mehrere Systeme
Steuerung über URL-Präfixe
Sie können auch für jedes System ein URL-Präfix definieren, um die Requests auseinanderzusteuern. Hierbei kann es sinnvoll sein, durch den Parameter wdisp/system_conflict_resolution = 1 festzulegen, dass die Systemauswahl in einer vorgegebenen Reihenfolge durchgeführt wird.
Die einfachste Konfiguration dafür sieht zum Beispiel aus wie folgt:
Sie definieren einen HTTP-Port für den Web Dispatcher:
icm/server_port_0 = PROT=HTTP, PORT=8888
Mit dem folgenden Parameter legen Sie fest, dass Mehrdeutigkeit aufgelöst wird, indem das erste passende System ausgewählt wird:
wdisp/system_conflict_resolution = 1
Sie legen die Zuordnung zu den Systemen fest:
wdisp/system_0 = SID=ERP, MSHOST=ms_erp, MSPORT=8082, SRCURL=/sap/
wdisp/system_1 = SID=CE1, MSHOST=ms_ce1, MSPORT=8127, SRCURL=/
Dann gehen alle Requests, deren URL-Pfad mit /sap/ beginnt, an das ABAP-System ERP, und alle anderen Requests an das EP-System CE1.
Würde in diesem Beispiel die Standardeinstellung wdisp/system_conflict_resolution = 0 verwendet, würde der Web Dispatcher mit einer Fehlermeldung abbrechen, da die Systemauswahl z.B. für das URL-Präfix /sap/webdynpro nicht eindeutig wäre.
Die folgende Abbildung zeigt diese Zuordnung über URL-Präfixe.

Steuerung über Modifikationsregeln
Die Modifikationsregeln sind das mächtigste Werkzeug, um Requests auf Systeme zu verteilen. Sie wenden eine Regel auf den Request an, und setzen abhängig vom Ergebnis das Pseudo-Headerfeld x-sap-webdisp-target-sid auf das System, zu dem der Request gehen soll.
Sie können zum Beispiel das Headerfeld in Abhängigkeit von Headerfeld Host setzen. Sie benötigen dazu lediglich für jedes System einen Alias des Web-Dispatcher-Rechnernamens, keine eigene IP-Adresse. Das Headerfeld Host enthält dann den Alias, unter dem der Request hereingekommen ist.
Wenn der Web Dispatcher neben webdisp noch die Aliasnamen wd_erp und wd_ce1 trägt, können Sie die folgende HTTP-Modifikation definieren:
if %{HTTP_HOST} regimatch wd_erp*
SetHeader x-sap-webdisp-target-sid ERP [break]
if %{HTTP_HOST} regimatch wd_ce1*
SetHeader x-sap-webdisp-target-sid CE1 [break]
RegForbiddenUrl ^/(.*)
Damit weisen Sie
Requests mit dem Host-Header wd_erp dem ERP-System zu (verwenden Sie regimatch wd_erp*, damit die Bedingung auch mit vollqualifiziertem Hostnamen erfüllt ist)
Requests mit dem Host-Header wd_ce 1 dem CE1-System zu (verwenden Sie regimatch wd_ce1*, damit die Bedingung auch mit vollqualifiziertem Hostnamen erfüllt ist)
Requests mit einem anderen Host-Header sind verboten.
Sie benötigen dann einen Port im Web Dispatcher:
icm/server_port_0 = PROT=HTTP, PORT=8888
Die Systemzuweisungen benötigen dann nur die Angaben der SIDs und zugehörigen Message-Servern:
wdisp/system_0 = SID=ERP, MSHOST=ms_erp, MSPORT=8082
wdisp/system_1 = SID=CE1, MSHOST=ms_ce1, MSPORT=8127
Ohne die Steuerung in der Aktionsdatei werden die Requests nicht an ein System weitergegeben.
Die folgende Abbildung zeigt diese Zuordnung über das Host-Headerfeld und die Aktionsdatei..

Beispiel mit Mehrdeutigkeit in der Systemauswahl
Die sinnvollste Anwendung von Mehrdeutigkeit bei der Systemauswahl ist es, Requests auf mehrere identische Systeme zu verteilen.
Das folgende Beispiel stellt keine empfohlene Systemkonfiguration dar, sondern soll die Möglichkeit von sich überschneidenden Konfigurationen, sowie die Bedeutung des Einstellung wdisp/system_conflict_resolution = 2 veranschaulichen.
Der Web Dispatcher läuft auf dem Rechner webdisp. Im Profil des Web Dispatchers sind zwei HTTP-Ports gepflegt: 8888 und 7777. Für die eingehenden Anfragen und die Weiterleitung zu den beiden Systemen sind durch den wdisp/system_ <xx> Parameter folgende Regeln definiert:
Requests, die am Web Dispatcher Port 8888 ankommen, sollen an das System ERP gehen
Requests, die auf Port 8888 oder 7777 ankommen und deren URL-Pfad mit dem Präfix /irj/ beginnt, sollen an das System CE1 gehen.
Da diese Konfiguration Mehrdeutigkeiten enthält, ist sie nur möglich, wenn wdisp/system_conflict_resolution = 2 gesetzt ist. Bei wdisp/system_conflict_resolution = 1 wird der erste passende Eintrag genommen (s.o.) , bei der Standardeinstellung wdisp/system_conflict_resolution = 0 startet der Web Dispatcher nicht.
Das Profil enthält also die folgenden Parameter:
|
# SAP Web Dispatcher Ports icm/server_port_0 = PROT=HTTP,PORT=8888 icm/server_port_1 = PROT=HTTP,PORT=7777 ... wdisp/system_conflict_resolution = 2 ... # accessible systems and port mappings wdisp/system_0 = SID=ERP, MSHOST=ms_erp,MSPORT=8082, SRCSRV=*:8888 wdisp/system_1 = SID=CE1, MSHOST=ms_ce1, MSPORT=8127, SRCURL=/irj/, SRCSRV=*:8888;*7777 |
Die folgende Abbildung zeigt diese Konfiguration, die Mehrdeutigkeit erlaubt.

Die folgenden Tabelle zeigt beispielhaft, was der Web Dispatcher bei dieser Konfiguration mit verschiedenen Requests macht.
|
Request-URL |
Mögliche Systeme |
Aktivität des Web Dispatchers |
|---|---|---|
|
http://webdisp:7777/irj/sap/info |
CE1 |
Der Web Dispatcher wählt einen Applikationsserver des Systems CE1 aus und leitet den Request an diesen Server weiter. |
|
http://webdisp:8888/irj/index.htm |
ERP, CE1 |
Der Web Dispatcher trifft seine Serverwahl unter allen Applikationsservern der Systeme ERP und CE1 und leitet den Request an diesen Server weiter. |
|
http://webdisp:8888/sap/bc/abap/docu |
ERP |
Der Web Dispatcher wählt einen Applikationsserver des Systems ERP aus und leitet den Request an diesen Server weiter. |
|
http://webdisp:7777/sap/public/ping |
keines |
Es ist kein System für die URL definiert. Der Web Dispatcher gibt den Fehler Dispatching Error zurück. |
|
http://webdisp:7777/sap/irj/index.htm |
keines |
Es ist kein System für die URL definiert. Der Web Dispatcher gibt den Fehler Dispatching Error zurück. |