![]() Home Benchmarks Historie Forum Download Helpware Insider Dokumentation Kurs Provider-Infos Impressum |
tdbengine news vom 6.7.2000
Grundsätzliche CGI-Frage: Was passiert, wenn der Browser die Anforderung abbricht?Gemeinsam mit anderen CGI-Programmierern schwitzen wir gerade über einem Problem: Was passiert mit einem CGI-Programm, wenn der Klient in seinem Browser während des Aufbaus einer (vom CGI-Prgramm gelieferten Seite) die Stop-Taste drückt (relativ selten) oder bereits einen weiteren Link aktiviert (kommt sehr häufig vor)? In beiden Fällen wird vom Browser die aktuelle Verbindung (einseitig) aufgelöst. Was passiert mit dem gerade laufenden CGI-Programm?Hier scheint es je nach Betriebssystem/http-Server-Kombination die unterschiedlichsten Verhaltensweisen zu geben. Ganz offensichtlich reagieren die http-Server auf dieses Problem grundsätzlich erst, wenn das CGI-Programm etwas an den Klienten senden will (solange überwachen sie den CGI-Prozess nur bezüglich Zeitüberschreitung). Ist die Verbindung nicht mehr vorhanden (eben weil inzwischen Stop gedrückt wurde), gibt es zwei grundsätzlich verschiedene Reaktionen:
Was die ganze Angelegenheit noch gemeiner macht (jaja, es gibt immer noch eine Steigerung) ist, dass alle guten CGI-Programme (wie perl, tdbengine ...) die Ausgabe puffern, um eine möglichst hohe Performance zu erreichen. So kann der IO-Fehler (bzw. Programmabruch) beispielsweise erst ganz am Ende des Programms auftreten, wenn nämlich der Puffer an den Klienten übertragen wird. Dieser Zeitpunkt liegt gewöhnlicherweise noch hinter dem Ende der Prozedur Main und entzieht sich damit komplett der Kontrolle des CGI-Programmierers. Die (vorläufige) Lehren aus dieser Problematik lauten:
Portierung der tdbengine auf andere PlattformenDer Bedarf an einem schneller CGI-Interpreter mit direktem Datenbankanschluss ist sehr gross. Deshalb haben wir bei der Portierung auf andere Plattformen große Pläne:
Bei der Portierung geht es nicht nur darum, das System "irgendwie" zum Laufen zu bekommen, sondern sie vor allem in Bezug auf Performance auf jeder Plattform zu optimieren.
Version 6.2.4 für Linux und Win32Bereits in den nächsten Wochen wird es wieder eine neue Version der tdbengine geben. Die neuen Features und Verbesserungen werden in einer eigenen News vorgestellt werden. |
Newsletter
|