Anfang des Inhaltsbereichs

Hintergrunddokumentation Wie kann ich für lang laufende Prozesse einen Timeout abfangen?   Dokument im Navigationsbaum lokalisieren

Frage

In einer BSP-Applikation kann es aufgrund von großen Datensammlungen im OnInitialization-Eventhandler auf der folgenden Seite zu einem Timeout kommen. Dieser Timeout soll abgefangen werden und eine passende Fehlermeldung soll ausgegeben werden, ohne dass der Session-Kontext verloren geht.

Antwort

Das Problem der lang laufenden Prozesse können Sie durch das Starten der langen Prozesse in einem zweiten Thread lösen, so dass der Frontend-Thread schnell die nächste HTML-Seite im Browser ausgeben kann. In ABAP entspricht dies dem Aufruf call function … in background task.

Auf dieser Folgeseite können Sie den HTML-Refresh-Mechanismus einsetzen, d.h. diese Seite wird automatisch z.B. nach 20 Sekunden aktualisiert. Zusätzlich wird eine Fortschrittsanzeige eingeblendet und eine freundliche Meldung, die besagt, dass das System noch beschäftigt ist.

Die Synchronisation des Frontend-Task mit dem Prozess-Task geschieht durch die Datenbank.

Ende des Inhaltsbereichs