Show TOC

Ein Web Dispatcher, zwei Systeme: KonfigurationsbeispieleLocate this document in the navigation structure

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.

Funktionsumfang

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.

Abbildung 1: 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.

Hinweis

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.

Abbildung 2: 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

Achtung

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..

Abbildung 3: Zuordnung über Modifikationsregeln

Beispiel mit Mehrdeutigkeit in der Systemauswahl

Die sinnvollste Anwendung von Mehrdeutigkeit bei der Systemauswahl ist es, Requests auf mehrere identische Systeme zu verteilen.

Hinweis

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.

Hinweis

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.

Abbildung 4: Dispatching über mehrere Systeme

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.