Web-Schnittstelle - Rückgabe von Fehlerseiten
Web-Schnittstelle - Rückgabe von Fehlerseiten Rückgabe einer Fehlerseite an den Browser
Kommt es zu einem Laufzeitfehler, kann an den Browser eine Fehlerseite übermittelt werden. Die Fehlerseiten können für jede Applikation in einem eigenen Verzeichnis abgelegt werden. Das Verzeichnis wird in der Konfigurationsdatei im Eintrag web_error_path festgelegt. Ist kein solcher Eintrag vorhanden oder konnte die Applikation nicht identifiziert werden, wird eine Fehlerseite aus dem Verzeichnis der Datei c16_web.dll gelesen.
Ist ein Fehler aufgetreten, wird zunächst nach einer CONZEPT 16 spezifischen Fehlerseite gesucht. Der Name der Seite setzt sich dabei wie folgt zusammen: error_c16_<nr>.htm. Wobei <nr> der Betrag der entsprechenden Fehlernummer ist. Soll zum Beispiel bei einer Division durch Null (Fehlerwert -181) eine bestimmte Seite zurückgegeben werden, muss in dem Fehlerverzeichnis eine Seite mit dem Namen error_c16_181.htm erstellt werden. Folgende Laufzeitfehler werden von dem System generiert:
-
Code: Beschreibung
-
-1:_ErrGeneric -
-20:_ErrFsiNoFile -
-21:_ErrFsiNoPath -
-22:_ErrFsiOpenOverflow -
-23:_ErrFsiAccessDenied -
-24:_ErrFsiHdlInvalid -
-25:_ErrFsiDriveInvalid -
-26:_ErrFsiCurrentDir -
-27:_ErrFsiSharingViolation -
-28:_ErrFsiLockViolation -
-29:_ErrFsiOpenFailed -
-170:_ErrNoProcInfo -
-171:_ErrNoGlobalInfo -
-172:_ErrDataSpaceDiff -
-173:_ErrDataSpaceFree -
-174:_ErrNoSub -
-175:_ErrArgumentsDiff -
-176:_ErrNoFld -
-177:_ErrFldType -
-178:_ErrArrayIndex -
-179:_ErrValueOverflow -
-180:_ErrStringOverflow -
-181:_ErrDivisionByZero -
-182:_ErrMathArgument -
-183:_ErrValueRange -
-184:_ErrNoFile -
-185:_ErrNoSbr -
-186:_ErrNoKey -
-187:_ErrNoLink -
-188:_ErrValueInvalid -
-189:_ErrNoKeyFld -
-190:_ErrNoLinkFld -
-191:_ErrHdlInvalid -
-192:_ErrNoArgument -
-193:_ErrLinkInvalid -
-194:_ErrFileInvalid -
-50025: Die maximale Anzahl der Verbindungen ( web_max_connections ) ist überschritten. -
-50026: Das eingetragene Sessionlimit ( Web_max_sessions ) wurde überschritten. -
-50032: Das eingetragene Verbindungslimit der Applikation ( c16_max_connections ) wurde überschritten. -
-50034: Die Applikation konnte nicht identifiziert werden. -
-50051: Die verwendete Request-Methode wird nicht unterstützt. Es sind nur die Methoden GET, POST und HEAD zulässig. -
-50053: Die Daten des Request konnten nicht gelesen werden. -
-50054: Der Benutzer wurde aufgrund eines Timeouts entfernt.
Wird zum entsprechenden Fehlerwert keine Seite gefunden, wird aufgrund des HTTP-Statuscodes im gleichen Verzeichnis eine Datei mit dem Namen error_http_<nr>.htm gesucht. <nr> entspricht dabei dem ermitteltem HTTP-Status. Der zurückgegebene Status hängt wesentlich von der verwendeten Protokollversion ab. Welche Statuscodes zurückgegeben werden, können dem RFC 1945 und RFC 2068 entnommen werden. Vom Client selbst werden nur folgende Statuscodes zurückgegeben:
400: Es wurde ein Request mit einer anderen Methode als GET, POST oder HEAD gestellt (nur bei HTTP/1.0)404: Die angegebene Applikation wurde nicht gefunden405: Es wurde ein Request mit einer anderen Methode als GET, POST oder HEAD gestellt (nur bei HTTP/1.1)500: Dieser Status wird zurückgegeben, wenn eine Prozedur einen Laufzeitfehler generiert oder nicht genügend Speicher allokiert werden konnte503: Dieser Status wird zurückgegeben, wenn sich zu viele Benutzer angemeldet haben
Beispiel:
error_http_500.htm
Da keine weiteren Statuscodes von der Schnittstelle zurückgegeben werden, müssen auch nur für diese entsprechende Fehlerseiten erstellt werden. Wird auch diese Datei nicht gefunden, wird die Datei error.htm zurückgegeben. Diese Datei kann verwendet werden, um unbekannte oder unspezifische Fehlermeldungen an den Browser zu übergeben. Existiert auch diese Datei nicht, generiert der Client eine Fehlerseite, welche den HTTP-Status und den Laufzeitfehlercode enthält:
