Timeout-Optionen für ICM und Web Dispatcher 
Es gibt zwei Timeouts, die mit dem Parameter icm/server_port_<xx> konfigurierbar sind: den Netzwerk-Timeout TIMEOUT und den Bearbeitungs-Timeout PROCTIMEOUT.
Außerdem gibt es noch den Timeout für den Verbindungsaufbau icm/conn_timeout.
Der Keepalive-Timeout gibt an, wie lange nach der erfolgreichen Bearbeitung eines Requests die Netzwerkverbindung erhalten bleiben soll, damit bei eventuell eintreffenden weiteren Requests der TCP/IP Verbindungsaufbau nicht mehr nötig ist.
Empfehlung
Der Keepalive-Timeout sollte so hoch eingestellt sein, dass bei kurz aufeinander folgenden Anfragen kein erneuter Verbindungsaufbau erfolgt, aber auch so niedrig, dass keine unnötig hohe Zahl an ungenutzten TCP/IP Verbindungen bestehen bleibt.
Der Zeitraum wird beim Parameter icm/server_port_<xx> mit der Option <timeout> (in Sekunden) angegeben.
Der Wert -1 deaktiviert den Timeout, der Wert 0 bedeutet, dass der Wert durch den Parameter icm/keep_alive_timeout festgelegt wird.
Wertebereich |
Einheit |
Standardeinstellung |
|---|---|---|
-1, 0, 10 - 32000 |
Sekunden |
30 |
Das Zeitlimit gilt für folgende Fälle:
Die Zeit zwischen dem Erhalt von TCP-Paketen bei Anfragen
Die Zeit zwischen den Bestätigungen von TCP-Paketen, die als Antwort vom Server geschickt werden.
Je nach Netzwerkanbindung (intern, LAN, WAN) kann es sinnvoll sein, diesen Parameterwert zu erhöhen, jedoch sollte der Wert nicht kleiner als 10 Sekunden sein. Bei einem zu hoch eingestelltem Parameterwert kann der Durchsatz des Servers durch extrem langsame Netzwerkverbindungen deutlich sinken.
Achtung
Requests an den AS ABAP: Beachten Sie, dass nach Ablauf dieser Zeitspanne nicht der Benutzerkontext im Workprozess abgebaut wird! Dies geschieht nach Ablauf der Zeitspanne, die durch den Profilparameter rdisp/plugin_auto_logout festgelegt wird. Wird rdisp/plugin_auto_logout = 0 gesetzt, so wird der Kontext im Workprozess gar nicht gelöscht.
Der Verarbeitungs-Timeout gibt den Timeout zwischen dem Abschicken eines HTTP-Requests und dem Erhalt einer HTTP-Response an.
ICM als HTTP-Server: Wenn der ICM einen Request bekommen und zur Bearbeitung weitergegeben hat (an den AS ABAP oder den AS Java), wartet er solange auf die Antwort vom Server, bis dieser Timeout abgelaufen ist. Der Kontext im Workprozess wird dann abgebaut, der Client bekommt einen Connection Timeout gemeldet (Fehler ETIMEOUT, vgl. Fehlerbehandlung).
ICM als HTTP-Client: Wenn der ICM für den betreffenden HTTP-Request als Client dient, also eine ausgehende Anfrage des SAP NetWeaver AS weiterleitet, dann gibt der Bearbeitungs-Timeout die Zeit an, die ICM wartet, bis eine Antwort aus dem Netz erhalten wird. Diese kann ebenfalls bei langlaufenden Anwendungen im Netz überschritten werden.
Der Wert wird mit dem Parameterwert <proctimeout> in Sekunden angegeben, der Wert -1 deaktiviert den Timeout.
Wertebereich |
Einheit |
Standardeinstellung |
|---|---|---|
-1, 1 - 32000 |
Sekunden |
30 |
Hinweis
Wenn der Parameter PROCTIMEOUT nicht angegeben wird, definiert TIMEOUT (oder icm/keepalive_timeout) sowohl den Verarbeitungs-Timeout als auch den Keepalive-Timeout. Zudem wird dann der Keepalive-Timeout auf maximal 30 Sekunden begrenzt.
Empfehlung
In einem System, wo die Timeout-Standardeinstellungen von 30 Sekunden für den Keepalive-Timeout und für den Bearbeitungs-Timeout wegen langlaufender Anwendungen nicht ausreichen, empfiehlt SAP, an den betroffenen Services beide Parameter TIMEOUT und PROCTIMEOUT zu setzen, damit sie unabhängig voneinander konfigurierbar sind. Außerdem sollte der TIMEOUT-Wert nicht unnötig hoch sein.
Wir empfehlen beispielsweise folgende Einstellung:
icm/server_port_0 = PROT=HTTP,PORT=1080,TIMEOUT=30,PROCTIMEOUT=600
um eine maximale Verarbeitungszeit von 10 Minuten zuzulassen.
Für den SAP Web Dispatcher stehen die gleichen Timeout-Parameter zur Verfügung wie für den ICM. Sie können in der Profildatei des SAP Web Dispatcher geändert werden (z.B. sapwebdisp.pfl).
Empfehlung
Es wird empfohlen, die Parameter in SAP Web Dispatcher und ICM identisch zu setzen.
Ausnahme: Sie haben im Web Dispatcher Connection Pooling konfiguriert durch wdisp/HTTP/use_pool_for_new_conn = 1.
Weitere Informationen: Parametrisierung des SAP Web Dispatchers