Für jeden der Fehlercodes können Sie eine HTML-Seite anlegen, die dann bei Auftreten dieses Fehlers an den Client geschickt wird. Hier können Sie sowohl statische Seiten (Endung .html) als auch dynamische Seiten (Endung .shtml) hinterlegen.
Zudem können Sie eine Datei ICMERR-EDEFAULT.{html,shtml} in dem durch icm/HTTP/error_templ_path spezifizierten Verzeichnis anlegen. Der ICM / Web Dispatcher gibt dann deren Inhalt zurück, wenn es für den Fehler kein anderes Template gibt.
Wenn in den Fehlertemplates externe Ressourcen (z.B. Bilder) verwendet werden, so können diese mit dem File Access Handler vom ICM geliefert werden.
Weitere Informationen: icm/HTTP/file_access_<xx>.
Um die dynamische Fehlerbehandlung des ICM / Web Dispatchers zu verwenden, müssen Sie den Profilparameter icm/HTTP/error_templ_path auf das Verzeichnis mit den Fehlertemplate-Dateien setzen: z.B.
icm/HTTP/error_templ_path = /usr/sap/B6M/D13/data/icmerror
Falls Sie den Internet Explorer als Web-Browser verwenden, muss die Option Show friendly HTTP messages deaktiviert sein. Dies können Sie über unter Browsing einstellen.
Legen Sie für die gewünschten Fehlercodes die Dateien ICMERR-<Fehlercode> .(s)html im entsprechenden Verzeichnis an. Sie können statische oder dynamische Fehlerseiten anlegen.
Statische Fehlerseiten
Ist zu einem Fehler eine statische Fehlerseite hinterlegt (Endung .html), so wird diese an den Client zurückgegeben.
Dynamische Fehlerseiten
Die dynamischen Seiten unterstützen folgende SSI-Kommandos (Serverside Includes, Dokumentation finden Sie im Internet).
Für die dynamischen Ersetzungen muss die gesamte Datei nach den SSI-Tags " <!--" durchsucht werden. Dieser Aufwand ist linear mit der Größe der Datei. Die dynamischen Seiten können auch nicht in den Cache eingelagert werden.
Im folgenden werden die unterstützten SSI-Kommandos erläutert.
ECHO
<!--#echo var="variable" -->
Die folgenden Variablen können eingesetzt werden:
Variablenname |
Bedeutung |
DATE_LOCAL |
Aktuelle Zeit/Datum: Tue Mar 26 17:15:32 2002 |
DATE_GMT
|
Aktuelle GMT Zeit/Datum: Tue Mar 26 17:15:32 2002 |
LAST_MODIFIED |
Letzter Modifikationszeitpunkt der aktuellen Datei |
FILE_SIZE |
Größe der aktuellen Datei in Bytes |
SERVER_SOFTWARE |
SAP Web Application Server 6.30 |
SERVER_NAME |
Name des Servers |
SERVER_PORT |
Port des Servers |
PATH_TRANSLATED |
URL-Pfad (ohne Parameter) |
ICM_SERVER |
Rechnername und Port, mit dem dieser Server erreicht werden kann; z.B. ls3022.wdf.sap-ag.de:1080 |
ICM_INSTANCE |
Instanzname: ls3022_BIN_12 |
ICM_ERR_CODE |
Aufgetretener Fehler (numerisch) |
ICM_ERR_VERSION |
ICM Version |
ICM_ERR_COMPONENT |
Komponente |
ICM_ERR_MODULE |
Modulname |
ICM_ERR_LINE |
Zeile |
ICM_ERR_DETAIL |
Detail zu dem aufgetretenen Fehler |
Nicht alle Felder stehen bei allen Fehlern zur Verfügung.
Beim Fehler ICMEOVERLOAD beispielsweise wurde der Request noch nicht gelesen, daher ist das Feld PATH_TRANSLATED nicht gesetzt.
Sie können zum Beispiel in Ihrer Seite schreiben:
<tr><td>Server:</td><td><!--#echo var="ICM_SERVER" ></td></tr>
</tr><tr><td background="http://<!--#echo var="ICM_SERVER" >/images/graybar_tile.jpg" height="31">
INCLUDE
Mit diesem Kommando kann eine andere Datei an dieser Stelle eingefügt werden.
<!--#include file="file name" -->
Ihre Fehlerseite kann beispielsweise von den beiden INCLUDE-Anweisungen eingerahmt sein:
<!--#include file="header.html" -->
...
<!--#include file="footer.html" -->
Die Datei darf sich nicht selbst inkludieren! Rekursive Inklusion führt zum Abbruch des ICM!
Ein Beispiel für eine dynamische Fehlerseite und die zugehörige .shtml-Datei finden Sie unter Beispiel für eine dynamische Fehlerseite.